全部博文(96)
发布时间:2012-12-09 20:13:24
本文转载于:http://hi.baidu.com/lyhdq315/blog/item/e2db07c8c2e0f097c8176864.html 我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcc。下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家。在此之前首先介绍下编译器的工作过程,在使用GCC编译程序时,编译过程分为四个阶段:1. 预处理(Pre-Processing)2. 编译(Compiling)3. 汇编(Assembling)4. 链接(Linking)Linux程序员可以根据自己的需要让......【阅读全文】
发布时间:2012-12-09 20:08:45
今天在看Linux开发手册(P95)时遇到一下代码:1: ldr r4,[r2],#4 str r4,[r1],#4 cmp r1,r3 bne 1b 由以前的知识,如果写的bne 1是可以理解的,至于bne 1b确实不好理解,在网上搜索到对它的解释,下面说说: bne里的1b是向后跳转到局部标签1处执行,b表示backward对应的......【阅读全文】
发布时间:2012-12-09 13:12:41
LDR伪指令和LDR指令及MOV指令的区别 RM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。 比如想把数据从内存中某处读取到寄存器中,只能使用ldr 比如: ldr r0, 0x12345678 就是把0x12345678这个地址中的值存放到r0中。 而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。 x86中没有ldr这种指令,因为x86的mov指令可以将数据从内存中移动到寄存器中。 另外还有一个就是ldr伪指令,虽然ldr伪指令和ARM的......【阅读全文】
发布时间:2012-12-09 13:06:44
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。x86中没有ldr这种指令,因为x86的mov指令可以将数据从内存中移动到寄存器中。另外还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。ldr伪指令可以在立即数(这里个人觉得常数......【阅读全文】