您现在的位置是:课程
U
2023-06-29 20:42课程 人已围观
- 课程目标
- 本课程为uboot学习的第5部分,主要内容是uboot启动的第一阶段start.S文件中的汇编初始化部分。学习本部分的主要目标是掌握构建异常向量表、初始化时钟、DDR,创建页表并且使能MMU,重定位并跳转到第二阶段等知识点。
- 适用人群
- 本课程为uboot和系统移植阶段的第5部分,适合有一定嵌入式学习基础(譬如学完了裸机全集和C语言高级篇),需要继续学习uboot和系统移植的同学。
- 课程简介
-
嵌入式绝对是当前IT领域最炙手可热的话题了。其主要应用领域涵盖与人类相关的各行各业:
* 消费电子(手机、平板电脑、游戏机)
* 物联网(智能家居、智慧城市)
* 工业自动化(无人工厂、工业机器人)
可以毫不客气的说,IT发展的未来在于嵌入式。巨大的商机和人才缺口导致嵌入式软件工程师的薪资居高不下,引得无数青年才俊、高校学子相继加入、苦苦钻研。
课程特色
*完全零基础,降低学习门槛。
*深入浅出,通俗易懂。不怕学不会,就怕你不学习。
*思路清晰、语言风趣,对着视频看也不会想睡觉······
*视频 + 文档 + 练习题 + 答疑,全方位保证学习质量。
*基础知识 + 思路引导的教学方式,授之以鱼更授之以渔。
*系列课程。本教程只是入门篇,后续还有更多更精彩视频更新中。
课程目录3.5.1.start.S引入
[免费观看]
31:56本节首先通过分析链接脚本找到start.S文件,然后讲解了如何利用SourceInsight找到相应文件的技巧。
3.5.2.start.S解析1
25:35本节开始分析start.S文件,主要分析了文件开头部分的几个头文件包含,通过这些头文件包含将代码和前面课程中讲到的配置过程关联起来。
3.5.3.start.S解析2
29:42本节主要分析了uboot从SD/Nand等启动时的16字节校验头和异常向量表的建立,以及其他一些符号等。
3.5.4.start.S解析3
34:51本节介绍了复位后设置CPU为SVC32模式、cache和mmu设置、读取OMpin以判断启动介质选择等功能代码。
3.5.5.start.S解析4
16:15本节分析了lowlevel_init.S中的起始部分,包括检测复位状态、IO恢复、关看门狗、开发板供电锁存等。
3.5.6.start.S解析5
36:39本节重点解析了判断当前运行地址的代码片段,这个判断方法和裸机中讲解的方式有所不同。然后简要分析了汇编初始化时钟的代码段。
3.5.7.start.S解析6
33:09本节重点讲解低层初始化中DDR初始化和串口初始化部分的代码,并且告诉大家uboot启动时的"OK"是如何打印出来的。
3.5.8.start.S解析7
29:54总结lowlevel_init函数中的所有工作,并且返回start.S中继续分析并引出了uboot第二阶段的重定位部分。
3.5.9.uboot重定位详解
22:00本节讲解uboot的重定位代码copy_bl2函数,和裸机中SD卡重定位一节相对照应该是很容易理解的。
3.5.10.start.S解析8
25:22本节开始讲解MMU和虚拟地址映射,主要是虚拟地址映射的基本理论和实现原理、cache的作用等。
3.5.11.start.S解析9
29:01本节分析启动代码中段式页表建立的过程代码,通过简单分析让大家学会看页表表项,从中可以看出内存映射关系。
3.5.12.start.S解析10
25:30本节完成页表的讲解和总结,清楚明白的让大家看到X210中虚拟地址映射的图标,同时结束MMU相关的部分。
3.5.13.start.S解析11
23:20本节讲述start.S中最后的部分,包括清理bss段等,以及最终跳转到uboot第二阶段的代码。本章结束。
上一篇:uCOS2源码分析1
下一篇:uCOS2源码分析3