- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Uboot启动流程分析(基于u-boot114)
Uboot启动流程分析(基于u-boot1.1.4)
?? ? 先分析一下u-boot启动的两个阶段,分别对应start.S和board.c这两个文件。
??? 先看board/smsk2410/u-boot.lds这个链接脚本,可以知道目标程序的各部分链接顺序。
OUTPUT_FORMAT(elf32-littlearm, elf32-littlearm, elf32-littlearm)/*OUTPUT_FORMAT(elf32-arm, elf32-arm, elf32-arm)*/OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS{????. = 0 /*指定可执行image文件的全局入口点,通常这个地址都放在ROM(flash)0x0位置。必须使编译器知道这个地址,通常都是修改此处来完成*/????. = ALIGN(4);????.text :????{?????cpu/arm920t/start.o (.text)?????*(.text)????}????. = ALIGN(4);????.rodata : { *(.rodata) }????. = ALIGN(4);????.data : { *(.data) }????. = ALIGN(4);????.got : { *(.got) }????. = .;????__u_boot_cmd_start = .;????.u_boot_cmd : { *(.u_boot_cmd) }????__u_boot_cmd_end = .;????. = ALIGN(4);????__bss_start = .;????.bss : { *(.bss) }????_end = .;}??? 第一个要链接的是cpu/arm920t/start.o,那么U-Boot的入口指令一定位于这个程序中。下面详细分析一下程序跳转和函数的调用关系以及函数实现。
1.Stage1:cpu/arm920t/start.S
??? 这个汇编程序是U-Boot的入口程序,开头就是复位向量的代码。
U-Boot启动代码流程图
_start: b reset //复位向量 ;;设置异常向量表???????ldr pc, _undefined_instruction???????ldr pc, _software_interrupt???????ldr pc, _prefetch_abort???????ldr pc, _data_abort???????ldr pc, _not_used???????ldr pc, _irq //中断向量???????ldr pc, _fiq //中断向量…?/* the actual reset code */reset: //复位启动子程序???????/* 设置CPU为SVC32模式 */???????mrs r0,cpsr???????bic r0,r0,#0x1f ;;位清除,将某些位的值置0:r0 = r0 AND ( !0x1f)???????orr r0,r0,#0xd3 ;;逻辑或,将r0与立即数进行逻辑或,放在r0中(第一个)???????msr cpsr,r0/* 关闭看门狗 */?/* turn off the watchdog */#if defined(CONFIG_S3C2400)# define pWTCON 0# define INTMSK 0/* Interupt-Controller base addresses */# define CLKDIVN 0/* clock divisor register */#elif defined(CONFIG_S3C2410)# define pWTCON 0# define INTMSK 0x4A000008 /* Interupt-Controller base addresses */# define INTSUBMSK 0x4A00001C# define CLKDIVN 0x4C000014 /* clock divisor register */#endif#if defined(CONFIG_S3C2400) || defined(CONFIG_S3C2410)????ldr r0, =pWTCON????mov r1, #0x0????str r1, [r0]/* 禁止所有中断和设置CPU频率 */????/*
您可能关注的文档
- svn的使用-更新.doc
- svchostexe占用cpu100的解决方法.doc
- SuperSpeedRamDiskPlus90设置教程.doc
- SW33-3HF压裂施工总结2267m2378m2485m2578m.doc
- SW33-16井投产工艺设计.doc
- Swish教学动画设计与应用常见问题汇总.doc
- SVPWM原理及其实现(6页).doc
- SWPC80智能数字显示控制仪表选型表介绍.doc
- SW33-10井压裂施工设计(29651-30049m).doc
- SY10021-2007健康安全与环境管理体系第1部分规范.doc
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
最近下载
- 2024-2025学年初中美术七年级上册(2024)人教版(2024)教学设计合集.docx
- 2023年渤海船舶职业学院单招数学考试试题及答案解析.docx
- 分布式光伏项目开发居间协议(企业开发前)(1).docx VIP
- 2024年中考数学真题分类汇编专题28 解直角三角形(58题)(解析版).docx
- 2024八年级生物上册第五单元生物圈中的其他生物第三章动物在生物圈中的作用教案新版新人教版.docx VIP
- 疾病康复学教案1.doc VIP
- proxmox中文手册电子版.pdf
- 高职高专院校项目融资计划书.pptx
- 工程流体力学黄卫星.doc
- 苏教版科学三年级上册第二单元《研究土壤》大单元整体教学设计.pdf
文档评论(0)