ARM分段加载运行内核加载
时间:10-02
整理:3721RD
点击:

程序上来自拷贝从0x81000000拷贝到0xa0000000 及从flash考到SDRAM
在C调汇编中 _gpio_p1_init 实现pc跳转

然后分散配置文件
LR_ROM1 0x81000000 0x800000 { ; load region size_region
ER_ROM1 0x81000000 0x800000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0xA0000000 {
.ANY (+RW +ZI +RO)
}
}
pc没有 到SDRAM 及 0XA0000000中去取指令
程序跑飞了
在内存分布图中可以看到正确所有代码已经被复制 但是不执行
为什么?
将条件编译去掉,直接跳转试一下?!
使用分散加载时 要设置sp的指针为用户程序首地址 PC指向下一个地址
我用pc直接跳转的 为什么不行呢 很是奇怪啊
你的意思是:我还要将r13的值也是0xA0000000?
但是我的程序中没有需要数据的地方 汇编指令中就包含了数据 并没有内斯DCD这样的数据指令
