最近一直在优龙44B0X开发板上调试程序,有几个不清楚的地方,还望前辈们指点。在开发板自带BIOS基础上,写了个简单的串口发送程序,RO设置为0XC000000,RW不设,程序正常。改RO=0把此程序烧到FLASH中,上电后工作正常。再用ADW调试程序时候就无法调试了。程序乱飞,此时已经把RO=0XC000000,ADW不就是把程序写道以RO开始的SDRAM地址吗?然后PC就在此地址上开始运行。为什么不能工作呢?
后来修改了程序,加入:
LDR r0, =|Image$$RO$$Base| LDR r1, =|Image$$RO$$Limit| LDR r2, =|Image$$RW$$Base| LDR r3, =|Image$$RW$$Limit|
SUB r1, r1, r0 SUB r3, r3, r2 ADD r1, r1, r3 LDR r2, =0xc000000 ;@2M
COPY LDR r3, [r0], #4 STR r3, [r2], #4 SUBS r1, r1, #4 BNE COPY
把程序拷贝到SDRAM 0xc000000起始处,再把RO=0xC000000,程序才能正常调试。把RO=0,再烧就又不行了。44B0X是没有REMAP功能的,程序是怎么样从FLASH中跳到SDRAM中运行的?是修改PC的值吗?
以上问题困惑好久,请大侠们指点指点。不胜感激!
[em06][em06][em06]
 
					
				
 
			
			
			
						
			 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

