关于arm ads 上RO_BASE对程序速度的影响

昨天有个网友问我,为什么RO_BASE设置在0x30000000的跑马灯比设置在0x32000000的跑马灯慢?

当时觉得不至于啊,两个地址都是映射到了片外RAM上,速度应该一样的,而且JTAG加载调试的,应该不受其他的影响啊!

刚才自己调试试了一下,还真速度不一样。

调整各种地址实验发现在0x3000 0000 到0x3020 0000地址直接的速度是非常快的,而在0x3020 0000之后的地址是很慢的。

想想可能是bootloader初始化了缓存之类的东西。在bootloader源码里面搜索0x30200000,果然是这样,bootloader禁止了0x30200000之后的缓存。

    MMU_SetMTT(0x30000000,0x30100000,0x30000000,RW_CB); //bank6-1
    MMU_SetMTT(0x30200000,0x33e00000,0x30200000,RW_NCNB); //bank6-2


不过0x30100000 - 0x30200000中间那段地址,没有设置,也可以访问。不知道什么原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值