微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > ARM分段加载运行内核加载

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这样的数据指令  

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top