您现在的位置是:课程

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

-->

站点信息

  • 文章统计篇文章