2019-03-24 15:34发布
原帖由 new_redstar 于 2011-10-8 11:21 发表 今天在用HWEG()访问存储器的时候遇到一个问题 HWREG(0x20000000)=0xAA55AA55; 没问题 但是给为HWREG(0x20000000)=0xAA55AA00; 程序就补往下执行了 貌似一直在那死循环了似的; 后来改了很多数 发现只要最后 ...
但是给为HWREG(0x20000000)=0xAA55AA00; 程序就补往下执行了 貌似一直在那死循环了似的
最多设置5个标签!
有些寄存器是只读的,有些中断标志位啥的是通过写1来清零的。
Stellaris®器件的内部SRAM位于器件存储器映射的地址0x2000.0000。为了减少读-修改-写(RMW)
操作的时间,ARM在Cortex-M3处理器中引入了bit-banding技术。在bit-banding使能的处理器中,
存储器映射的特定区域(SRAM和外设空间)能够使用地址别名,在单个原子操作中访问各个位。
使用下面的公式来计算bit-band别名:
bit-band别名 = bit-band基址 + (字节偏移量 * 32) + (位编号 * 4)
例如,如果要修改地址0x2000.1000的位3,则bit-band别名计算如下:
0x2200.0000 + (0x1000 * 32) + (3 * 4) = 0x2202.000C
通过计算得出的别名地址,对地址0x2202.000C执行读/写操作的指令仅允许直接访问地址0x2000.1000
处字节的位3。
有关bit-banding的详细信息,请参考ARM® Cortex™-M3 技术参考手册的第4章“存储器映射”
HWREG 是给内存 0x20000000 写值,应该是没有问题的啊?
一周热门 更多>