码迷,mamicode.com
首页 > 其他好文 > 详细

CM3中数据传输对齐/非对齐方式

时间:2015-02-03 18:51:37      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

在CM3中,非对齐的数据传输只发生在常规的数据传送指令中,如LDR、LDRH、LDRSH。其他指令则不支持,包括:

1.多个数据的加载、存储(LDM/STM)。

2.堆栈操作PUSH、POP。

3.互斥访问(LDREX/STREX)。

如果非对齐会导致一个用法的FAULT。

4.位带操作。因为只有LSB有效,非对齐的访问会导致不可预料的结果。

其实,在内部是把非对齐访问换成若干对齐的访问,这个转换动作由处理器总线单元来完成的,此过程需要更多的总线周期。要养成保证总线地址对齐的良好习惯。

为此,编程NVIC,使之监督地址对齐。一旦发现非对齐访问时触发一个fault。具体办法是设置“配置控制寄存器”中的UALIGN_TRP位。这样,在整个调试期间就

可以保证非对齐访问能当场发现。

CM3中数据传输对齐/非对齐方式

标签:

原文地址:http://www.cnblogs.com/chip/p/4270397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!