FSL之深入理解ARM:Cortex核MCU Region Table存储格式是什么?

2020-02-20 21:08发布

本帖最后由 sunnyqd 于 2014-8-26 11:47 编辑

Copy of k3.jpg (34.93 KB, 下载次数: 0) 下载附件 2014-8-26 11:18 上传
Region Table即位图中红 {MOD}圈圈内的的一部分,另一部分是压缩后的数据,由Region Table指向
FLASH中,const和代码(.text)存放在图中绿 {MOD}圈圈里
我想知道图中红 {MOD}圈圈的存储格式是什么,因为分散加载到内存中的时候,有一个复制或解压缩过程
我尝试的是在KL02下做的仿真
Region Table的范围是
  1.     Region$Table$Base                      0x0000070c   Number         0  anon$obj.o(Region$Table)
  2.     Region$Table$Limit                     0x0000073c   Number         0  anon$obj.o(Region$Table)
复制代码
Region Table为
  1. 0000 073C
  2. 1FFF FC00
  3. 0000 03F4
  4. 0000 03BA
  5. 0000 0750
  6. 2000 0000
  7. 0000 0014
  8. 0000 0104
  9. 0000 0764
  10. 2000 0014
  11. 0000 0264
  12. 0000 0120
复制代码
Region Table里面的格式应该是4个字一组
第一个word表示:源地址
第二个word表示:目的地址
第三个word表示:长度或其他值?
第四个word表示:应该是指定word1和word2位置的数据存储和压缩类型,可能是个结构体

上面没有找到官方的说明,一个老外问过http://www.keil.com/forum/19386/,但也没有人解答
问我为什么这样用,楼主只是想了解一下内部详细的实现方式,以后或许会用的到
希望了解的来告知一下,大家有兴趣的话,也可以谈谈想法

附Keil MDK工程
Blinky.zip (203.16 KB, 下载次数: 6) 2014-8-26 11:27 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
FSL_TICS_ZJJ
1楼-- · 2020-02-20 22:37
楼主,能否标出你楼上的图片出处?
sunnyqd
2楼-- · 2020-02-20 23:21
 精彩回答 2  元偷偷看……
dr2001
3楼-- · 2020-02-21 00:04
这个Table是C RTL初始化代码内部使用的,即RVCT的输出Image的部分内容与C RTL初始化代码是紧耦合的。换个RVCT的版本,含义可能会产生变化。。。
尤其是RVCT的数据搬运可能会用压缩格式压缩数据。

如果非要弄明白字段的含义,编译完成以后,单步跟踪进__main,开始的一段就是数据搬运,很容易弄明白干啥的。那个压缩格式很简单……
sunnyqd
4楼-- · 2020-02-21 00:09
dr2001 发表于 2014-8-26 11:59
这个Table是C RTL初始化代码内部使用的,即RVCT的输出Image的部分内容与C RTL初始化代码是紧耦合的。换个RV ...

单步调试过,__scatterload()函数,但没有很容易的弄明白是干啥的。。
sunnyqd
5楼-- · 2020-02-21 05:18
dr2001 发表于 2014-8-26 11:59
这个Table是C RTL初始化代码内部使用的,即RVCT的输出Image的部分内容与C RTL初始化代码是紧耦合的。换个RV ...

官方这方面有文档吗?我找了一遍官网,没有找到呢
浪里白条
6楼-- · 2020-02-21 08:54
感觉楼主研究得好深入,这种问题简直闻所未闻,值得学习。

一周热门 更多>