- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
添加自定义命令 例如,添加一个hello命令: 在common/目录下添加一个命令文件cmd_hello.c 添加自定义命令 在common/Makefile文件中,添加目标,将cmd_hello.c编译进u-boot中。 重新编译u-boot,烧写到开发板,输入help,可看到 输入hello u-boot移植 u-boot移植关键技术 incoude/configs/目标板.h头文件 这个头文件是目标板的参数、选项配置头文件; 很多的条件编译的宏都是在这里定义的 board/目标板/目录 开发板外设初始化 flash初始化 arch/ARCH/cpu/CPU/start.S 入口代码 u-boot调试 在串口能正常工作前,可以采用LED灯或者蜂鸣器来调试代码; 配置好串口后,使用printf()函数来调试。 课堂小结 本次课结合bootloader程序框架的两个阶段,分析了u-boot源码,详细讲解了u-boot 命令的执行过程及添加u-boot命令的方法。 预习内容 Linux内核 Linux内核的配置 Linux内核镜像的产生过程 Linux内核的启动 * u-boot程序分析 教学回顾 Bootloader程序的框架 第一阶段(汇编语言) 第二阶段(C语言) u-boot的配置编译过程 u-boot的使用 环境变量 命令 教学内容 Uboot_tiny4412的启动流程 阶段一汇编源码分析 阶段二源码详细分析 u-boot下命令执行过程分析 添加自定义命令 教学要求 熟悉u-boot的代码 理解u-boot源码的两个阶段主要完成的工作 理解用户输入命令后u-boot执行的流程 掌握向u-boot添加自定义命令的方法 u-boot的启动流程 分析u-boot的链接脚本(board/samsung/tiny4412/u-boot.lds)可以知道,u-boot的入口是start.S start.S(arch/arm/cpu/armv7/start.S) 阶段一(arch/arm/cpu/armv7/start.s) SVC模式 关闭cache和MMU 初始化系统时钟 初始化内存 初始化TZPC 拷贝u-boot到内存 设置SP 调到C函数board_init_f() u-boot的启动流程 start.S最后调用一个C函数board_init_f(),该C函数位于arch/arm/lib/board.c文件中。 board_init_f()函数分析 阶段二(arch/arm/lib/board.c的board_init_f函数) 进行一系列的初始化 timer_init env_init console_init_f ...... 调用 relocate_code() 清楚BSS段 调转到内存的board_init_r函数 阶段一源码分析 设置中断向量表 @复位入口, 使用b指令,不依赖运行地址 阶段一源码分析 设置SVC模式并关闭中断 阶段一源码分析 调用cpu_init_crit 该子程序主要工作是清TLB(页面缓存)、关MMU及Cache,然后调用lowlevel_init 阶段一源码分析 调用cpu_init_crit 该子程序主要工作是清TLB(页面缓存)、关MMU及Cache,然后调用lowlevel_init 阶段一源码分析 转入低级初始化lowlevel_init 主要是设置SP、对时钟、片外内存(DDR3)、串口等进行初始化 .globl lowlevel_init lowlevel_init: … /* use iROM stack in bl2 */ ldr sp, =0… bl read_om /* init system clock */ bl system_clock_init /* Memory initialize */ bl mem_ctrl_asm_init /* init uart for debug */ bl uart_asm_init bl tzpc_init b load_uboot … 阶段一源码分析 load_uboot 根据不同启动设备,调用对应启动函数 阶段一源码分析 load_uboot 根据不同启动设备,调用对应启动函数 阶段一源码分析 把uboot代码从启动设备拷贝内存,跳转到after_copy,在内存中执行 阶段一源码分析 after_copy 主要工作是点亮LED,保存启动信息,调board_init_f 阶段二详细分析 board_init_f() A.gd_t数据结构空间分配 B.回调一组初始化函数 C.对gd_t数据结构进行初始化 D.relocate_c
您可能关注的文档
- 药理总论本科.ppt
- 7.性能表征检测与评价09.ppt
- 7、 地基与基础.ppt
- 菜肴成本核算.ppt
- 营业税改增值税对企业税收负担的影响分析——以交通运输行业为例.doc
- 营口忠旺铝业有限公司高精铝及加工材项目电解车间A~B跨施工组织设计.docx
- 营养学培训复习.ppt
- 营养代谢病1.ppt
- 萌萌哒的姐姐Grace ppt.ppt
- 7s素养管理.ppt
- 2024年03月浙江金华义乌市公安局招考聘用184名警务辅助人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年03月河北省科学技术厅事业单位选聘工作人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年10月贵州兴仁市委政法委公开招聘青年见习人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年03月民政部所属事业单位2024年度公开招考31名应届毕业生笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年03月广东肇庆封开县教育系统赴高校招考聘用教师64人笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- [重庆]2025年重庆忠县教育事业单位招聘62人笔试历年参考题库附带答案详解.doc
- 【兵团】2024年新疆生产建设兵团第七师胡杨河市第七师医院医共体招聘工作人员133人笔试历年典型考题及考点剖析附带答案详解.docx
- 2024年10月北京高校大学生就业创业指导中心公开招聘3人笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 【南阳】2024年河南南阳市方城县招才引智事业单位招聘工作人员2人笔试历年典型考题及考点剖析附带答案详解.docx
- 【枣庄】2024年山东枣庄市台儿庄区青年人才优选20人笔试历年典型考题及考点剖析附带答案详解.docx
文档评论(0)