您现在的位置是:课程

SDRAM和重定位relocate—1.ARM裸机全集第五部分

2023-06-29 20:45课程 人已围观

课程目标
本期课程的主要目标是掌握汇编调用C语言、指令cache、关闭看门狗等,重点知识是代码重定位与链接脚本、DDR的初始化,并且将整个裸机程序重定位到DDR中。
适用人群
本课程为ARM裸机学习课程中的第五部分,接之前四个部分,继续讲解关看门狗、汇编调用C程序、SDRAM初始化、重定位与连接脚本等,适合看过前四部分的同学继续学习。如果没有学习前面部分,建议从头开始学习,否则可能会听不懂。
课程简介

嵌入式绝对是当前IT领域最炙手可热的话题了。其主要应用领域涵盖与人类相关的各行各业:

* 消费电子(手机、平板电脑、游戏机)

* 物联网(智能家居、智慧城市)

* 工业自动化(无人工厂、工业机器人)

可以毫不客气的说,IT发展的未来在于嵌入式。巨大的商机和人才缺口导致嵌入式软件工程师的薪资居高不下,引得无数青年才俊、高校学子相继加入、苦苦钻研。

本期课程继续来编写汇编程序。首先是关看门狗、汇编调用C程序、指令cache等基础内容,然后重点介绍链接脚本与代码重定位问题,并且在iRAM中实现简单的代码重定位;最后讲了DRAM的初始化,并在初始化DRAM后将代码重定位到DRAM中去运行。

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

朱有鹏老师《嵌入式工程师养成计划系列》,欢迎加入我们的学员QQ群(群号:397164505)和其他志同道合的朋友一起学习、一起讨论。明天的收获,源自于今天的付出!!!

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

课程特色

*完全零基础,降低学习门槛。

*深入浅出,通俗易懂。不怕学不会,就怕你不学习。

*思路清晰、语言风趣,对着视频看也不会想睡觉······

*视频 + 文档 + 练习题 + 答疑,全方位保证学习质量。

*基础知识 + 思路引导的教学方式,授之以鱼更授之以渔。

*系列课程。本教程只是入门篇,后续还有更多更精彩视频更新中。
       
                                                                                       课程目录

 

 

1.5.1.汇编写启动代码之关看门狗[免费观看]

42:37

使用汇编在启动代码中关闭看门狗,以防止启动过程中不喂狗导致复位。目的是让大家认识看门狗这个外设,同时进一步熟悉ARM汇编程序编写

 

1.5.2.汇编写启动代码之设置栈和调用C语言1

31:52

本节主要讲解C语言运行时环境和栈的重要性,然后分析了S5PV210的栈寄存器SP,进一步查阅文档确定启动代码中规划的栈内存区间,最终使用汇编编程设置栈以便调用C语言程序

 

1.5.3.汇编写启动代码之设置栈和调用C语言2

40:08

本节接上节将之前第三部分中的led程序由汇编更改为C程序,然后被汇编调用。通过实验告诉大家汇编程序是如何调用C程序进行交互的。

 

1.5.4.汇编写启动代码之开iCache

32:49

本节主要讲解cache的概念和作用,为什么需要cache,以及在210中如何通过汇编操作cp15开打开/关闭cache。

 

1.5.5.重定位引入和链接脚本1

34:44

本节讲解了几个重要概念,包括:位置无关码PIC、链接地址和运行地址,然后再次结合S5PV210的启动过程分析,最终目的是让大家明白为什么需要重定位

 

1.5.6.重定位引入和链接脚本2

27:49

本节首先讲了链接地址和运行地址各自由什么决定,然后简单讲述代码编译链接的步骤,最后重点讲了各种段,如代码段、数据段、bss段等的含义。

 

1.5.7.重定位引入和链接脚本3

29:12

本节接上节讲述各种段的含义,最后以一个简单的链接脚本为例讲述了链接脚本的构成和解读方法。

 

1.5.8.代码重定位实战1

37:14

本节开始重定位实战,首先明确任务(在sram内进行重定位),然后重点讲解了实现思路及步骤,为下节课写代码打好基础。

 

1.5.9.代码重定位实战2

54:41

本节讲解SRAM内部重定位的代码,着重讲了adr与ldr伪指令的区别、重定位的copy汇编代码、清除bss段的代码等模块,目的是让大家彻底掌握重定位。

 

1.5.10.SDRAM引入

35:36

本节首先讲解SDRAM和DDR的联系和区别,然后粗略讲了SDRAM的特性,最后带大家简单读了SDRAM芯片的手册,为后面写代码时查阅手册打好了基础。

 

1.5.11.SDRAM初始化

36:46

本节首先从原理图出发,带领大家详细分析X210核心板原理图中DDR SDRAM芯片的相关部分,得出一些参数;然后再结合数据手册内容得到另一些参数,这些参数在之后的代码中都会用得到。

 

1.5.12.汇编初始化SDRAM详解1

40:48

本节开始讲解SDRAM初始化代码,首先引导大家找到数据手册上27步初始化DRAM的部分,然后逐项分析代码。本节主要分析了设置引脚驱动能力,和DLL锁存部分。

 

1.5.13.汇编初始化SDRAM详解2

43:33

本节接上节继续讲解SDRAM初始化代码,主要讲了几个关键性寄存器的参数值设置。最后在DRAM初始化后将代码重定位到DRAM上运行,完成本章内容。

-->

站点信息

  • 文章统计篇文章