完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
lowlevel_init:
ldr r0, =SMRDATA ldr r1, _TEXT_BASE sub r0, r0, r1 ldr r1, =BWSCON /* Bus Width Status Controller */ add r2, r0, #13*4 0: ldr r3, [r0], #4 str r3, [r1], #4 cmp r2, r0 bne 0b mov pc, lr 这是lowlevel_init.s的内容,开始的红色3句我很困惑。 SMRDATA 我认为是编译器定保存存储控制器相关寄存器初始值的地址,比如可能是0x33F90000 _TEXT_BASE 是我们指定的代码在nandflash 的起始地址,0x33F80000 sub r0,r0,r1 r0 = r0 -r1 = 0x0010000 这个只能知道 SMRDATA 保存的偏移地址,而不是实际地址。如果没有sub r0,r0,r1 这一句。 后面 ldr r1, =BWSCON /* Bus Width Status Controller */ add r2, r0, #13*4 r0 是 SMRDATA r1 是 BWSCON r2 是 MRSRB7 寄存器后面 那么 ldr r3, [r0], #4 str r3, [r1], #4 cmp r2, r0 向这13个寄存器赋初始值,就顺理成章了。 可是为什么不是我想的这样呢 |
|
相关推荐
1个回答
|
|
谢谢 明白了
|
|
|
|
只有小组成员才能发言,加入小组>>
197个成员聚集在这个小组
加入小组为什么点亮LED的例子放在NORFlash上跑会出现奇怪的现象?
2177 浏览 6 评论
1982 浏览 5 评论
韦东山老师推出的《玩转ARM裸机实战》课程将帮你以上问题一扫而光!
4540 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 15:45 , Processed in 0.651029 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号