QQ在线咨询
售前咨询热线
15821572819
售后咨询热线
15821572819

Uboot之三 ~~~CPU的配置


预备知识:理解跳转指令b和ldr,其形式如下:

b step1              //B 是最简单的分支。一旦遇到一个 B 指令,ARM 处理器将立即跳转到给定的地址,从那里继续执行。

                            注意存储在分支指令中的实际的值是相对当前的 R15(PC) 的值的一个偏移量,而不是一个绝对地址。

                           它的值由汇编器来计算,它是 24 位有符号数,左移两位后有符号扩展为 32 位,表示的有效偏移为 26 位(+/- 32 M)。

ldr pc,step2  //使用LDR伪指令将一个常量读取到非PC的其他通用寄存器中可实现位置无关的常 量访问;

                             但将一个地址值读取到PC中进行程序跳转时,跳转目标则是位置相关的。

对汇编不是很了解,以上内容参看好多资料写的,也不知道对不对,期望大侠的指点。

 

 

找到文件的入口

# vi /arch/arm/cpu/arm920t/start.S

 

[html] view plain copy

  1. #include <common.h>   //定义了关于错误处理的一些操作  

  2. #include <config.h>     

[html] view plain copy

  1.    

[html] view plain copy

  1. .globl _start  

  2. _start: b   start_code   //定义了入口  

  3.     ldr pc, _undefined_instruction  

  4.     ldr pc, _software_interrupt  

  5.     ldr pc, _prefetch_abort  

  6.     ldr pc, _data_abort  

  7.     ldr pc, _not_used  

  8.     ldr pc, _irq  

  9.     ldr pc, _fiq  

  10.   

  11. _undefined_instruction: .word undefined_instruction  

  12. _software_interrupt:    .word software_interrupt  

  13. _prefetch_abort:    .word prefetch_abort  

  14. _data_abort:        .word data_abort  

  15. _not_used:      .word not_used  

  16. _irq:           .word irq  

  17. _fiq:           .word fiq  

  18.   

  19.     .balignl 16,0xdeadbeef  





注:本文转载自csdn,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除。
上一篇 下一篇

分享