- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM启动代码原理和分析 内容大纲 映像文件 ZI未初始化数据段 RW数据段 Load Address加载地址 Execution Address执行地址 Stack Pointer栈空间指针 内容关键字: RO代码段 Boot相关硬件 Flash Rom(可作为bootrom的存储器) Boot相关硬件 Nand flash(不可作为bootrom的存储器) Boot相关硬件 Boot的主要功能 建立异常向量表 初始化中断 初始化硬件设备 初始化应用程序执行环境 跳转到主应用程序 B ResetHandler B HandlerUndef B HanderSWI B HanderPabort B HanderDabort B (保留) B HandlerIRq B HandlerFIQ 0x00 0x04 0x08 0x0c 0x10 0x14 0x18 0x1c 异常中断向量表的建立 初始化硬件 软件的运行离不开硬件,boot必须对硬件进行初始化。硬件的初始化主要通过配置特殊控制寄存器来完成,包括下面几部分: 关闭开门狗 屏蔽所有的中断 初始化PLL和时钟。 初始化储存系统 初始化应用程序的执行环境 Elf文件的类型:可执行文件、可重定位文件、共享库object(又叫做共享库)文件。 Elf文件的功能: 1、用作链接器的输入生成可执行的映像文件 2、可装载到内存里运行,完成特定功能的文件。 elf文件的物理结构 Elf文件头 Section: .text .data .bss .symtab Program header 可重定位文件与可执行文件的区别: 区与段的概念 program header System code System data ELF头 main() int nn=11 .symtab .debug .symtab Section Header Table ELF头 sqr() int num=10 Uninitialized data .symtab .debug .symtab Section Header Table ELF头 Program Headers System code main() sqr() System data int nn=11 int num=10 Uninitialized data .symtab .debug .symtab .text区 .data区 .text区 .data区 .text区 .data区 .bss区 .Text段 .Data段 .BSS段 Hello.o Execution image Linking image 可执行映像文件的逻辑结构 由几个可重定位的目标文件的相同属性区组成了可执行映像的段,那么段有组成什么? 在逻辑结构里,段组成了更大的组织:域 System code System data ELF头 main() int nn=11 .symtab .debug .symtab Section Header Table ELF头 main() int nn=11 Uninitialized data .symtab .debug .symtab Section Header Table ELF头 Program Headers System code main() sqr() System data int nn=11 int num=10 Uninitialized data .symtab .debug .symtab 输入区ro 输入区rw 输入区ro 输入区rw 输入区ZI 输出域 ro 输出域 rw 输出域 ZI 输入区ro 输入区rw 可执行映像文件的逻辑结构 Output 输出段 Output 输出段 Output 输出段 域 装载域和运行域 域又组成什么呢?当然就是组成可执行文件了,一个映像文件可以包含一到多个域。与看起来有些多余,实际上更为重要的是用域来描述输出区运行前和运行时在存储系统上的位置。所以,域分为装载域和运行域。装载域描述运行前输出段在rom/ram中的分布状态,运行域描述运行时输出段在rom/ram中的分布状态 大多数情况下,映像文件在执行前把它装载到rom中,而当运行时域里 的有些输出段必须复制到ram中,程序才能正常运行,所以,在装载和运行时,有些段处在不同的位置(地址空间)。 Main() Sqr() System data Int num = 10 Uninitialized data 输出区 ro 输出区
您可能关注的文档
最近下载
- 武汉市2025届高中毕业生四月调研考试 英语试卷(含答案详解).pdf
- 硕士研究生论文的选题与写作.ppt
- 2019年7月安徽省砀山县事业单位幼儿教师招聘考试《幼儿保教知识与能力》真题试卷(含答案).pdf VIP
- 确保室内空气质量的施工方案与技术措施.pdf
- 中小银行上云趋势研究分析报告 2024.pptx
- 证券从业人员证券投资基金基础知识题库与答案.doc
- 小学家长会英语老师课件.pptx VIP
- 第七单元《红楼梦》薛宝钗、林黛玉人物形象赏析 公开课一等奖创新教案统编版高中语文必修下册.docx VIP
- 最新部编版五年级下册语文单元教材分析(全册) .pdf VIP
- 春季学期《工业控制网络》试题.doc
文档评论(0)