我认为我还是查了很多资料的,但是这两个值的理解总是因为不很清楚,时不时地要来困扰我.
问题1: 一个工程可以有很多个具体的文件,每个文件可以有一个或者多个段,段有ro和rw的.当linker将它们链接
为一个映像文件的时候,将所有具有ro属性的段按照某种顺序排列,所有具有rw属性的段一样.这样就会有
下面的一个结构:
--------- | | | | | | --------- | rw | --------- <------- rw base? | ro | --------- <------- ro base?
如上表示的,ro base和rw base是指那个地方么?
问题2: 一个程序有一个加载时地址,还有一个运行时地址。 比如有一个板子,flash被map到0x0,sdram被map到0xc0000,将一个程序下载到0x0处,并可以运行。 此时,我要怎样在ads里面设置ro base和rw base呢?这个ro和rw base值指的是加载时还是运行时地址呢
?
具体来说,ro base和rw base这两个值是怎样在每个过程中起作用的呢?
感觉这个问题有点绞。麻烦各位了。 |