注意:如果点击空白处无法输入,则点击字会有输入提示符 | 则可以使用键盘进行输入!
此板块为 [
ARM裸机加强版]
- 问题所在章节: NOR Flash 视频中的地址问题
在老师的视频中,写NOR的具体地址时,nor_cmd(addr>>1, val); 这里地址右移1位,老师的解释是地址线A1->A0的缘故.我反复看了视频,还是感觉不对.
因为 `nor_cmd`函数已经将地址转换为nor视角的地址了,也就是说我想写nor中的x地址,我们应该直接操作地址x即可.
但是测试之后发现代码确实跑的没问题?那么我哪里理解错了呢?
后来想到 Nor是16位位宽的,也就是说Nor中的0,其实对应了存储单元[0,1],也就是如下所示:
NORAddr 字节存储单元
3 [6,7]
2 [4,5]
1 [2,3]
0 [0,1]
结论: 所以这里的地址>>1,并不是因为地址线偏移(其实也是因为地址线,因为是16位,所以偏移1位),但是从函数的角度来说,实际是因为nor的地址是16位宽的,我们需要转换为8位位宽的 addr>>1
后面的测试了下往 addr=1里面写`12`,实际是在0,1里面写,往addr=2里面写`12`,实际是往2里面写,往addr=3里面写,也是在往2里面写