摘要: 2.1 基本寻址方式1) 寄存器寻址2)立即数寻址立即数寻址指令中的地址码部分就是操作数本身,也就是说,数据就包含在指令中,由于立即数在32位机器码中,不可能用32位来表示立即数(因为还有操作码),事实上,ARM机器指令中,仅用了低12位来表示立即数,但这并不是表示立即数的范围为-2048—2047,它可以表示,只不过它只能表示其中的个数字而已,ARM是这样用12bit来表示立即数的:将12bit划分为两部分——高4位和低8位,将低8位补0扩展为32位,然后循环右移X位(X=高4位表示的无符号整数X2)3)寄存器间接寻址寄存器中存放的是操作数的地址指针,如:LDR R0,[R2] 表示将R2中 阅读全文
posted @ 2013-08-08 11:05 linux_rookie 阅读(751) 评论(0) 推荐(0) 编辑
摘要: 1.1 ARM CPU寄存器ARM的汇编编程,本质上就是针对CPU寄存器的编程,所以要搞清楚ARM有哪些寄存器;ARM寄存器分为两类:普通寄存器和状态寄存器;普通寄存器一共有16个,分别为R0——R15,状态寄存器有2个,分别为CPSR和SPSR。R15别名PC(program Counter),中文称程序计数器,它的值是当前正在执行的指令在内存中的位置,而当指令执行结束后,CPU硬件会自动将PC值加1,使PC指向下一条即将执行的指令,因此,当对PC寄存器赋值时,也就相当于完成了一次无条件跳转;R14别名LR(Linked Register),中文称为链接寄存器,用于存放子程序的返回地址,与子 阅读全文
posted @ 2013-08-08 11:04 linux_rookie 阅读(744) 评论(0) 推荐(0) 编辑
摘要: 需要下载yaffs2-d43e901.tar.gz,busybox-1.13.0.tar.bz2使用的交叉编译器是4.331.修改配置编译busybox修改MakefileCROSS_COMPILE = arm-linux-ARCH = armmake menuconfig 根据实际情况来进行配置make; make install2. 构建文件系统建立一个目录root_2.6.30.4,复制上面编译出来的busybox的“bin”目录,“sbin”目录,“usr”目录和“linuxrc”到root_2.6.30.4目录下,然后mkdir -p dev etc /home/sky lib mn 阅读全文
posted @ 2013-08-08 11:02 linux_rookie 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 为了制作一个文件系统,首先要用busybox编译出文件系统所需要的应用程序。在下载了busybox-1.13.0.tar.bz2后,编译出现如下错误:In file included from /opt/EmbedSky/4.3.3/bin/../arm-none-linux-gnueabi/libc/usr/include/linux/if_tunnel.h:5, from networking/libiproute/iptunnel.c:24:/opt/EmbedSky/4.3.3/bin/../arm-none-linux-gnueabi/libc/usr/include/... 阅读全文
posted @ 2013-08-08 11:01 linux_rookie 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 用insmod加载驱动模块成功后,用rmmod无法卸载解决方法:在板子上建立一个空目录:lib/modules/2.6.30.4/ 阅读全文
posted @ 2013-08-08 10:57 linux_rookie 阅读(1225) 评论(0) 推荐(0) 编辑