主题 : 几个米糊了好久的问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 39169
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2011-03-06
最后登录: 2011-09-24
楼主  发表于: 2011-09-17 18:17

 几个米糊了好久的问题

1,是不是nand不参与2440的统一编址 而 nor 和2440的ram io 等外设编址是统一的?就是说nand相当于pc机的硬盘,而nor已将相当于pc机的内存的一部分了,只不过是这部分内存的内容在掉电后仍然存在?这样的理解对不对?

2, dnw软件里面设置那个下载地址是管什么用的? 另外用ADS 的时候要设置output选项卡的ro base 和 option的image entry point 是管什么用的? robase就是代码区代码的基址对吧?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2011-09-17 22:27
1. 正确
2. 下载地址是dnw在device端保存image的sdram地址。ROBase是ADS认为的可执行代码的起始地址。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 39169
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2011-03-06
最后登录: 2011-09-24
2楼  发表于: 2011-09-18 11:55
我再理解一下,还是有点迷糊,谢谢了!
级别: 新手上路
UID: 39169
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2011-03-06
最后登录: 2011-09-24
3楼  发表于: 2011-09-19 12:31
问下二楼,是不是这个意思,ro base是可执行代码的基址,因为代码在内存中是有个其实地址的,所有指令中的标号或者跳转地址都是在经过链接以后都是要转换成实际的地址(如0x38000000)这样一个数值,所以连接器就需要有一个robase,后面的b,bx,等指令跳转连接后就是这个robase+b后面所跟标号相对程序入口的偏移地址,                这样的话就存在这样一种情况:    如果我们在编译链接时候将robase 设为 0x30000000 而将编译好的bin文件烧到nor flash的0x00处,这样的话就不对了,因为,b等跳转指令跳转出错了。  所以就可以这么理解,robase就是你打算将编译好的映像文件烧写的首地址,这样理解对不对?
但是 image entry point 该怎么理解呢?