Hi all:
最近发现一个问题,就是操作SCI 的SCIGCR0寄存器组,我发现居然不能读,但是可以写!一读就引起hardfault,不知道什么地方可以设置?
谢谢
klapset
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi all:
最近发现一个问题,就是操作SCI 的SCIGCR0寄存器组,我发现居然不能读,但是可以写!一读就引起hardfault,不知道什么地方可以设置?
谢谢
klapset
也不是要可以去读,是对寄存器 比如 Reg0 |= 0x1 这样的操作, 汇编上先把Reg0读出来再赋值,使得非操作位不变。这种情况都会产生hardfault。
昨天观察DEMO中,发现有一条语句就可以搞定,就是 SYSTEM寄存器 有一个全局使能外设的寄存器,具体我记不得。这个置1就OK了。但是不太知道为何会这样。
但是如果写操作即可reset的话,那发生hardfault语句前面都是直接赋值, 如Reg0 = 0x12345678; 这样不会引发异常, 到了 |= 操作就出问题了。