- 课程目标
- 本期课程的主要目标是掌握汇编调用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上运行,完成本章内容。
课程介绍
课程目录
往期学员作品
用户评论
课程介绍
课程目录
往期学员作品
用户评论
你将获得
- 掌握某些知识点
- 学会某些技巧(或思路)
教学服务
1v1专属答疑服务
BAT专家面试辅导
讲师介绍
朱有鹏
朱老师物联网大讲堂创始人/华为云MVP
互联网课程品牌《朱老师物联网大讲堂》创始人。著有《嵌入式linux与物联网软件开发-C语言内核深度解析》等书籍,精通U-Boot、linux kernel移植及驱动程序开发;精通C、C++、Java、C#等高级语言,熟悉ARM体系结构;熟悉linux、WinCE下的开发流程;授课风趣幽默,讲解条理清晰,对知识有自己独到见解,善于发散学生的思维。
课程详情
温馨提示
- 请勿私下交易请勿在平台外交易。与机构和老师私下交易造成的任何损失及纠纷,腾讯课堂不承担任何责任
- 听课说明
1、电脑:访问腾讯课堂官网 ke.qq.com 查看我的课表或下载win/mac客户端听课
2、手机/平板:下载腾讯课堂APP, 进入学习页面听课