打印

ARM编程该注意些什么呢?

[复制链接]
1483|6
手机看帖
扫描二维码
随时随地手机跟帖
沙发
思行合一| | 2010-11-21 21:24 | 只看该作者
ARM编程值得注意的地方
1、ARM是一个32位处理器,通常情况下,如果没有特殊要求,C语言中的结构体要求4 字节对齐。
2、在实际代码中,会存在以下两问题:
a、要求多个数据紧缩在4个字节中。
b、而有些数据是4个字节长度,但并不是4字节对齐存储的。
3、作为32位处理器,与X86不同点是:ARM不支持非对其字节的数据传输,也就是说,在C语言中,一旦使用了32位的指针操作一个非4字节对齐的数据,ARM就会陷入一异常。该问题会给一些软件的移植带来麻烦,一定要特别留心处理这些问题。(现在的常用ARM版本中,都不支持未对齐数据的传输,如ARMv4,ARMv5,但从ARMv6开始支持非对齐数据传输)
4、在ARM汇编语言编程时,须注意流水线的影响,比如ARM9的五级流水线会导致所读取的PC(程序计数器)指针总比当前执行的汇编代码地址多16.
例如:(arm9汇编中)
mov pc,pc
执行以上指令后,程序会跳转到当前指令的往后的第四条指令去执行。
而: sub pc,pc,#12
执行的才是当前指令的下一条指令。
若: sub pc,pc,#16
该指令执行,是一个死循环

使用特权

评论回复
板凳
思行合一| | 2011-2-9 23:34 | 只看该作者
拿个现成的实例改一下吧

使用特权

评论回复
地板
msp430ing| | 2011-2-11 16:45 | 只看该作者
注意不要产生伪中断

使用特权

评论回复
5
米其林r| | 2011-2-16 12:58 | 只看该作者
这个要注意的地方怎么可能说的清楚呢一下子

使用特权

评论回复
6
奔腾2.0| | 2011-2-16 16:41 | 只看该作者
二楼总结的就不错啊

使用特权

评论回复
7
即时生效| | 2011-2-16 16:56 | 只看该作者
一下说不清楚,在学习中慢慢摸索吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

143

主题

1079

帖子

0

粉丝