S3C2440烧写问题(求助-急)

[复制链接]
2629|4
 楼主| sxh924 发表于 2009-3-2 11:18 | 显示全部楼层 |阅读模式
我的开发板S3C2440的程序是在SDRAM中调试运行的,现在我要把程序写到FLASH中运行,我在起动代码里加入了几行,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;r0,&nbsp;=&nbsp;pROM_BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;r1,&nbsp;=&nbsp;pRAM_BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;r2,&nbsp;=&nbsp;|Image$$RO$$Limit|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;r3,&nbsp;=&nbsp;|Image$$ZI$$Base|<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;r4,&nbsp;=&nbsp;|Image$$RW$$Base|<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sub&nbsp;&nbsp;&nbsp;r3,&nbsp;r3,&nbsp;r4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add&nbsp;&nbsp;&nbsp;r2,&nbsp;r2,&nbsp;r3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />COPY_CODE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;r2<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldrne&nbsp;&nbsp;&nbsp;&nbsp;r3,&nbsp;[r0],&nbsp;#4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strne&nbsp;&nbsp;&nbsp;&nbsp;r3,&nbsp;[r1],&nbsp;#4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bne&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COPY_CODE&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />在起动代码的前面我还加入了:<br />pROM_BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EQU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x00000000<br />pRAM_BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EQU&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x30000000<br />另外,ARM-Linker也改过了,但烧写到FLASH中后系统跑不起来?大家帮我分析下,谢谢啊.<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 楼主| sxh924 发表于 2009-3-2 11:22 | 显示全部楼层

补充

我就是在以下代码的前面加的:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&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;&nbsp;r1,&nbsp;=|Image$$RW$$Base|&nbsp;&nbsp;;&nbsp;and&nbsp;RAM&nbsp;copy<br />&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&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;&nbsp;r0,&nbsp;r1&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;%F2<br />1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r1,&nbsp;r3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Copy&nbsp;init&nbsp;data<br />&nbsp;&nbsp;&nbsp;&nbsp;LDRCC&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;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;&nbsp;%B1<br />2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&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;&nbsp;r2,&nbsp;#0<br />3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r3,&nbsp;r1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Zero&nbsp;init<br />&nbsp;&nbsp;&nbsp;&nbsp;STRCC&nbsp;&nbsp;&nbsp;r2,&nbsp;[r3],&nbsp;#4<br />&nbsp;&nbsp;&nbsp;&nbsp;BCC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%B3<br />&nbsp;&nbsp;&nbsp;&nbsp;]<br /><br />这些代码的RO-BASE:0x30200000,RW-BASE空.说明是在SDRAM中运行的.SDRAM的起始地址为:0X30000000.所以要写到FLASH中,我将加入了前面的几行代码,把FLASH中的代码复制到SDRAM中运行.就如前面所说的,写到FLASH中后,跑不起来?
eyuge2 发表于 2009-3-2 13:04 | 显示全部楼层

我觉得你可以用ADS调试一下

你的程序在SDRAM中运行没有问题。你还是在SDRAM中运行,在进入AXD界面后,不要运行,直接将PC值设为0,看看从0地址开始的代码是不是你下载到flash中代码。
bwsz 发表于 2009-3-2 15:05 | 显示全部楼层

楼主用哪个开发环境?

我用的是mdk.上周也差不多遇到这样的问题,后来把.s文件中的clock&nbsp;setup&nbsp;勾上就好了,然后注意下.ini中的pc.
 楼主| sxh924 发表于 2009-3-2 15:34 | 显示全部楼层

补充

我加的代码请看1楼我发的贴,大家看下对不对.急啊.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

59

帖子

0

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