完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 Mr_RMS 于 2018-1-12 17:04 编辑
学习韦东山老师sdram 实例程序,有部分看不懂什么意思,问题如下: mov r1, #1207959552 @ #1207959552=0x48000000 存储控制器的13个寄存器的开始地址 adrl r2, mem_cfg_val @ 这13个值的起始存储地址 add r3, r1, #52 @ 13*4 = 54 1: ldr r4, [r2], #4 @ 读取设置值,并让r2加4 str r4, [r1], #4 @ 将此值写入寄存器,并让r1加4 cmp r1, r3 @ 判断是否设置完所有13个寄存器 bne 1b @ 若没有写成,继续 mov pc, lr @ 返回 .align 4 mem_cfg_val: @ 存储控制器13个寄存器的设置值 .long 0x22011110 @ BWSCON .long 0x00000700 @ BANKCON0 .long 0x00000700 @ BANKCON1 .long 0x00000700 @ BANKCON2 .long 0x00000700 @ BANKCON3 .long 0x00000700 @ BANKCON4 .long 0x00000700 @ BANKCON5 .long 0x00018005 @ BANKCON6 .long 0x00018005 @ BANKCON7 .long 0x008C07A3 @ REFRESH .long 0x000000B1 @ BANKSIZE .long 0x00000030 @ MRSRB6 .long 0x00000030 @ MRSRB7 其中, adrl r2, mem_cfg_val 为什么这一步是设置这13个值的起始地址?是如何设置的?这一步是什么意思?经过这一步后,r2里存放的是什么值?看不懂,求教,谢谢 |
|
相关推荐
1个回答
|
|
本帖最后由 Mr_RMS 于 2018-1-12 17:03 编辑
第一次执行 adrl r2, mem_cfg_val 是将mem_cfg_val的地址放到r2中, mem_cfg_val是标号,无实际意义,mem_cfg_val的地址就是 第一个立即数 0x22011110 所在的地址,也就是说, adrl r2, mem_cfg_val 是将立即数 0x22011110 所在的地址放到任中。 ldr r4, [r2], #4 @ 将0x22011110写入r4,并r2=0x22011110所在的地址+0x4,此时,r2中的数表示的 @是第二个值0x00000700 所在的地址(.long表示定义长整型占4个字节,0x00000700 @所在的地址=0x22011110所在的地址+0x4) str r4, [r1], #4 @ 将0x22011110写入到地址0x48000000,并r1=0x48000000+0x4=0x48000004 cmp r1, r3 @ 判断是否设置完所有13个寄存器 bne 1b @ 若没有写成,继续 ldr r4, [r2], #4 (将0x00000700写到r4中,......)...... |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
883 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
3025 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1409 浏览 0 评论
2039 浏览 0 评论
1574 浏览 0 评论
75124 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 12:17 , Processed in 0.563401 second(s), Total 39, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号