2410程序运行区域的一个问题,请赐教...

[复制链接]
1820|1
 楼主| playlinus 发表于 2008-11-6 10:38 | 显示全部楼层 |阅读模式
ni, ge, rc, se, RAM
&nbsp;&nbsp;&nbsp;&nbsp;;Copy&nbsp;and&nbsp;paste&nbsp;RW&nbsp;data/zero&nbsp;initialized&nbsp;data<br />&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;=|Image$$RO$$Limit|&nbsp;;&nbsp;Get&nbsp;pointer&nbsp;to&nbsp;ROM&nbsp;data<br />&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;r1,&nbsp;=|Image$$RW$$Base|&nbsp;&nbsp;;&nbsp;and&nbsp;RAM&nbsp;copy<br />&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;r3,&nbsp;=|Image$$ZI$$Base|&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;;Zero&nbsp;init&nbsp;base&nbsp;=&gt&nbsp;top&nbsp;of&nbsp;initialised&nbsp;data<br />&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;r1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Check&nbsp;that&nbsp;they&nbsp;are&nbsp;different<br />&nbsp;&nbsp;&nbsp;&nbsp;beq&nbsp;&nbsp;&nbsp;&nbsp;%F2<br />1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp;r1,&nbsp;r3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Copy&nbsp;init&nbsp;data<br />&nbsp;&nbsp;&nbsp;&nbsp;ldrcc&nbsp;&nbsp;&nbsp;&nbsp;r2,&nbsp;[r0],&nbsp;#4&nbsp;&nbsp;&nbsp;&nbsp;;--&gt&nbsp;LDRCC&nbsp;r2,&nbsp;[r0]&nbsp;+&nbsp;ADD&nbsp;r0,&nbsp;r0,&nbsp;#4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;strcc&nbsp;&nbsp;&nbsp;&nbsp;r2,&nbsp;[r1],&nbsp;#4&nbsp;&nbsp;&nbsp;&nbsp;;--&gt&nbsp;STRCC&nbsp;r2,&nbsp;[r1]&nbsp;+&nbsp;ADD&nbsp;r1,&nbsp;r1,&nbsp;#4<br />&nbsp;&nbsp;&nbsp;&nbsp;bcc&nbsp;&nbsp;&nbsp;&nbsp;%B1<br />2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;r1,&nbsp;=|Image$$ZI$$Limit|&nbsp;;&nbsp;Top&nbsp;of&nbsp;zero&nbsp;init&nbsp;segment<br />&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r2,&nbsp;#0<br />3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp;r3,&nbsp;r1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Zero&nbsp;init<br />&nbsp;&nbsp;&nbsp;&nbsp;strcc&nbsp;&nbsp;&nbsp;&nbsp;r2,&nbsp;[r3],&nbsp;#4<br />&nbsp;&nbsp;&nbsp;&nbsp;bcc&nbsp;&nbsp;&nbsp;&nbsp;%B3<br /><br />我的bootloader中只有这段copy&nbsp;RW/ZI段到SDRAM的程序,现在我把程序下载到NOR上运行,速度比较慢,怎样才能把RO&nbsp;RW&nbsp;ZI<br />全部COPY到SDRAM并跳转到SDRAM去运行呢&nbsp;?
luhuaren 发表于 2008-11-6 13:19 | 显示全部楼层

re

你要在ADS下把RO设置到RAM中,<br />在启动代码里判断&nbsp;&nbsp;加载域的起始地址同RO是否相等,如果不等,那么把加载域的代码拷贝到RO为起始地址的运行域中去<br /><br />注意&nbsp;要先初始化SDRAM,然后将拷贝模板先拷贝到SDRAM中去,然后调到SDRAM中去,运行拷贝模板,把剩下的代码拷贝到SDRAM中去。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

518

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部