LM3S8962 驱动库中 HWREG()赋值问题

2019-03-24 15:34发布

今天在用HWEG()访问存储器的时候遇到一个问题 HWREG(0x20000000)=0xAA55AA55; 没问题 但是给为HWREG(0x20000000)=0xAA55AA00; 程序就补往下执行了 貌似一直在那死循环了似的; 后来改了很多数 发现只要最后一个字节为00则程序就不往下执行了用HWREGH()和HWREGB()也是一样的; 对此很补理解 要是我要对存储器清零之类的怎么办?   此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
David_Lee
1楼-- · 2019-03-24 23:40
原帖由 new_redstar 于 2011-10-8 11:21 发表
今天在用HWEG()访问存储器的时候遇到一个问题
HWREG(0x20000000)=0xAA55AA55; 没问题
但是给为HWREG(0x20000000)=0xAA55AA00; 程序就补往下执行了 貌似一直在那死循环了似的;
后来改了很多数 发现只要最后 ...


有些寄存器是只读的,有些中断标志位啥的是通过写1来清零的。
蓝雨夜
2楼-- · 2019-03-25 01:03
 精彩回答 2  元偷偷看……
蓝雨夜
3楼-- · 2019-03-25 01:46
SRAM存储器
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章“存储器映射”
Study_Stellaris
4楼-- · 2019-03-25 03:24
但是给为HWREG(0x20000000)=0xAA55AA00; 程序就补往下执行了 貌似一直在那死循环了似的

HWREG 是给内存 0x20000000 写值,应该是没有问题的啊?
ddllxxrr
5楼-- · 2019-03-25 04:41
 精彩回答 2  元偷偷看……
new_redstar
6楼-- · 2019-03-25 10:10
具体什么原因没查出来 但今天有用了一次 没问题 谢谢各位的帮助!!!1

一周热门 更多>

相关问题

    相关文章