ARM分段加载运行内核加载

2019-07-16 09:27发布

本帖最后由 duzhiming 于 2014-4-17 22:00 编辑

forum_pircute.png
程序上来自拷贝从0x81000000拷贝到0xa0000000 及从flash考到SDRAM
在C调汇编中 _gpio_p1_init  实现pc跳转
scatter.png
然后分散配置文件
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中去取指令
程序跑飞了  
在内存分布图中可以看到正确所有代码已经被复制 但是不执行
为什么?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
woodmice
1楼-- · 2019-07-16 12:11
将条件编译去掉,直接跳转试一下?!
z00
2楼-- · 2019-07-16 16:20
使用分散加载时 要设置sp的指针为用户程序首地址 PC指向下一个地址
duzhiming
3楼-- · 2019-07-16 16:34
z00 发表于 2014-4-24 23:12
使用分散加载时 要设置sp的指针为用户程序首地址 PC指向下一个地址

我用pc直接跳转的 为什么不行呢 很是奇怪啊


duzhiming
4楼-- · 2019-07-16 16:37
 精彩回答 2  元偷偷看……

一周热门 更多>