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