- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8u-boot程序解读
添加自定义命令 例如,添加一个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
您可能关注的文档
- 8.现象本质与明辨是非解读.ppt
- 802.3以太网解读.ppt
- 802.1Q_Vlan技术交流解读.ppt
- 8088指令系统解读.ppt
- 808616位微处理器解读.ppt
- 800s26双吸离心泵设计说明书解读.doc
- 00安全讲座-养成良好安全习惯、保证安全生产(forZP)讲解.ppt
- 8101工作面工作面作业规程解读.docx
- 80种工艺施工方案参考资料解读.doc
- 008首批通过评定企业典型案例分享-徐工集团讲解.ppt
- 招标文件格式编写指南.docx
- 2024-2025学年上海市虹口区九年级上学期11月期中考试数学试卷含详解.docx
- 2024-2025学年上海市曹杨第二中学高一上学期11月期中考试地理试卷含详解.docx
- 2024-2025学年上海市格致中学高三上学期10月月考数学试卷含答案.docx
- 2024-2025学年上海市上海交通大学附属中学高三上学期期中考试数学试卷含答案.docx
- 2024-2025学年北京市北京师范大学附属实验中学高一上学期期中物理试卷含详解.docx
- 2024-2025学年上海市南汇中学高一上学期期中考试数学试卷含详解.docx
- 2024-2025学年北京市第八十中学高一上学期期中考试语文试卷+含详解.docx
- 2024-2025学年北京市北京师范大学附属中学八年级上学期期中地理试卷含详解.docx
- 2024-2025学年北京市海淀区高三年级上学期期中考试语文试卷含详解.docx
最近下载
- 人教版初中英语课标版 九年级第十单元Section A 3a—3c(21张).pptx
- 中小企业融资-全套PPT课件.pptx
- 2024年麻醉、精神药品规范化管理与使用培训考核有答案.docx
- 【基恩士】LR-W500(C) 使用说明书 (简体中文).pdf
- 11第十一章-通货膨胀与通货紧缩(货币金融学(蒋先玲编著)第3版ppt课件可编辑).pptx
- 人美版八年级上册美术教案.pdf VIP
- 工科基础物理学(下册)课后习题答案董科,周雨青,张玉萍高等教育出版社.pdf
- Unit 6 A Day in the Life (Period 1)课件-人教版英语七年级上册(2024).pptx VIP
- 光伏支架及光伏组件安装工程施工方案.docx VIP
- 曲安奈德局部封闭治疗.pptx VIP
文档评论(0)