uboot中startS详解.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
uboot中start.S详解 #include config.h #include version.h #if defined(CONFIG_OMAP1610) #include ./configs/omap1510.h #elif defined(CONFIG_OMAP730) #include ./configs/omap730.h #endif .globl _start _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 _undefined_instruction: .word undefined_instruction _software_interrupt: .word software_interrupt _prefetch_abort: .word prefetch_abort _data_abort: .word data_abort _not_used: .word not_used _irq: .word irq _fiq: .word fiq .balignl 16,0xdeadbeef /*异常处理与异常返回具体步骤此处不再累述: * ARM规定了异常向量的地址: * b reset ; //复位 0x0 * ldr pc, _undefined_instruction ;//未定义的指令异常 0x4 * ldr pc, _software_interrupt ; //软件中断异常 0x8 * ldr pc, _prefetch_abort ;// 预取指令 0xc * ldr pc, _data_abort ;// 数据 0x10 * ldr pc, _not_used ; //未使用 0x14 * ldr pc, _irq ; //慢速中断异常 0x18 * ldr pc, _fiq ; //快速中断异常 0x1c * * .balignl 16,0xdeadbeef, *balignl说明见/xmjmcai/blog/item/5a9caa8420739a3fc65cc3c8.html 首先要弄明白.balignl的意思,这个其实应该算是一个伪操作符,伪操作符的意思就是机器码里,并没有一个汇编指令与其对应,是编译器来实现其功能的 /* ************************************************************************* * * Startup Code (reset vector) * * do important init only if we dont start from memory!//做一些重要的初始化,如果我们不是SDRAM启动的话 * relocate armboot to ram//重定位代码到SDRAM中 * setup stack//设置堆栈空间 * jump to second stage//跳转到第bootloader的第二阶段 * ***********************************************************************/ /* 保存变量的数据区 */ _TEXT_BASE: .word TEXT_BASE//0x?xml:namespace prefix = st1 ns = urn:schemas-microsoft-com:office:smarttags /?xml:namespace prefix = st1 /33F80000//,在TEXT_BASE定义在board\smdk2410\config.mk文件中中这段话表示,用户告诉编译器编译地址的起始(或者说可以理解为是加载的地址 ,样就能做到了编译地址和运行地址的统一了) .globl _armboot_start _armboot_start: .word _start /* These are defined in the board-specific linker script.*/ .globl _bss_start _bss_start: .word __bss_start .globl _bss_end _bss_end: .word _end #ifdef CONFIG_USE_IRQ /* IRQ stack memory

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档