
bootloader
colder2008
这个作者很懒,什么都没留下…
展开
-
arm指令中mov和ldr有什么区别
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。<br /> 比如想把数据从内存中某处读取到寄存器中,只能使用ldr<br /> 比如:<br /> ldr r0, 0x12345678<br /> 就是把0x12345678这个地址中的值存放到r0中。<br /> 而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。<br /> x86中没有ldr这种指令,因为转载 2010-08-29 19:24:00 · 649 阅读 · 0 评论 -
U-BOOT下使用bootm引导内核方法
<br />注:<br /> u-boot使用的是打上:<br />http://www.hhcn.com/cgi-bin/topic.cgi?forum=3&topic=651&show=0<br />上keety 大侠提供的补丁生成的u-boot-1.1.3<br /><br /> 这段时间不断有人问我u-boot 启动内核的问题,记得在上次提供的u-boot 源码中提到了go 的方案,不过其实u-boot 本来有一种更好的方案:bootm<br /> 花了不少时间,查看了论坛上不少的帖转载 2010-08-31 12:08:00 · 547 阅读 · 0 评论 -
伪指令LDR和ADR的分析
<br />在ARM汇编程序中,就经常使用到LDR和ADR这两条伪指令,现在对这两条伪指令进行分析,欢迎大家指正。<br /> 在资料中,ADR的定义为:小范围的地址读取伪指令,ADR指令将基于PC相对偏移的地址值读取到寄存器中,在编译源程序时ADR伪指令被编译器 替换成一条合适的指令。通常,编译器用一条ADD指令或SUB指令来实现该ADR伪指令的功能,若不能用一条指令实现,刚产生错误。<br />在如上的定义中,有两个关键信息:⑴将基于PC相对偏移的地址值读取到寄存器中;⑵被编译器替换成一条合适的指令。转载 2010-08-29 19:22:00 · 4664 阅读 · 1 评论