ARM待解决问题
两把刷子飞啊飞
技术是层窗户纸,没进去之前,会郁闷会彷徨,可是不要轻易放弃,要对自己有信心,欢迎关注微信公众号“墨迹慢慢来”,o(∩_∩)o
展开
-
在异常模式下:为什么要操作的同时从SPSR恢复CPSR
见杜春雷P63中倒数第3行:书中是这样写的,“当PC寄存器作为目标寄存器且指令中S位被设置时,指令在执行跳转指令的同时,将当前处理器模式的SPSR寄存器复制到CPSR中。这样指令MOVS PC ,LR可以实现从某些异常中断中返回。”以前看得书好像是,只有在中断发生时应该把CPSR中的值保存到SPSR中。然后在异常中断程序退出时才用SPSR中保存的值来恢复CPSR,但是现在却反了原创 2012-05-19 16:57:53 · 1913 阅读 · 3 评论 -
LDR不是字对齐时,移位的位数是bits[1:0]的8倍
“LDR指令用于从内存中将一个32位的字读取到指令中的目标寄存器中,如果指令中寻址方式确定的地址不是字对齐的,则从内存读出的数值需进行循环右移操作,移位的位数为寻址方式确定的地址的bits[1:0]的8倍。”以上为杜春雷P85中的原文,书中没有介绍不是字对齐的,为什么“移位的位数为寻址方式确定的地址的bits[1:0]的8倍”?自己也是刚刚开始学,不是很明白,现留下疑问待以后求解。原创 2012-05-19 15:09:02 · 1581 阅读 · 4 评论 -
指令伪代码value=Memory[address,4]的4什么意思
LDR指令操作的伪代码:if ConditionPassed(cond) thenif address[1:0]==0b00 then value =Memory[address,4] (此处的4是什么意思,是一个立即数吗?那为什么没有加#?)else if address[1:0]==0b01 then value =Memory[address,4]原创 2012-05-19 16:51:51 · 1281 阅读 · 0 评论 -
MAP和FIELD伪操作定义的内存表结构(绝对地址与相对地址的区别)
分为三种:1.基于绝对地址的内存表举例: 用伪操作序列定义一个内存表,其首地址为固定的地址8192(0X2000),该内存表中包括5个数据域。 Consta长度为4个字节;constb长为4个字节,x长为8字节;y长为8字节;string长为16字节。这种内存表成为基于绝对地址的内存表。MAP 8192 ; //内存表的首地址8192(0x2000)Co原创 2012-05-22 20:50:47 · 2312 阅读 · 0 评论 -
采集DS18B20的数据后怎样把它传递到无字库的12864显示器上
1. 在采集DS18B20的数据后怎样把它传递到无字库的12864显示器上?原创 2012-08-23 16:57:44 · 1485 阅读 · 1 评论