修改EBOOT还是卡在打开MMU之后
晕了
想问一下ADS1.2写的那个BOOTLOADER(不知道应该怎么称呼这个BOOT,貌似叫VIVI??)
跟EBOOT有多大区别
是不是ADS1.2写的那个BOOTLOADER不需要用到CE下的OEMAddressTable ???
我发现我只要一修改这个OEMAddressTable 程序就会卡在打开MMU那!
这个问题,说起来就话长了。
它们的使用场合,细节的考虑,结构设计都有很大差别。
1. OEMAddressTable 與 config.bib & eboot.bib 都有相關, 內容要相符.
2. eboot 中用到了很多 microsoft 提供的 library, 用 ads 應該是 link 不進來, 不過若是沒用到, 那就沒差了.
實際的差異, 因為沒用過, 故無法提供.
Paul, Chao @ Techware
引用: 引用 3 楼 xajhuang 的回复:
OEMAddressTable 和启动代码无关。
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
当然有关了
编译器不同,导致编译出的bin文件格式有差异,
虽然ADS的bootloader没有使用OEMAddressTable ,
但是并不代表没有启用MMU
以前我觉得2440 的ADSbootloader也是没有启用MMU,但是错误的。
后来我发现 2440 的ADS bootloader是把物理地址映射到虚拟地址时候,是直接映射到同一个地址,所以在后来启用MMU后,访问的表面上时物理地址,其实是虚拟地址。
这样处理有他的好处,节省时间。
微软之所以映射到不同的地址,那是因为一个事习惯,另外是微软在bootloader之后使用的是堆内存,这样即使使虚拟地址和物理地址相同也没有用,因为没有什么区别,还不如区分开来让大家理解。
不过有些CPU是自己内部要求做固定映射的。
wogoyixikexie@gliet
引用: 引用 3 楼 xajhuang 的回复:
OEMAddressTable 和启动代码无关。
如果是使用eboot,是使用了OEMAddressTable 初始化MMU的。
1. 不知 LZ 为何要修改 OEMAddressTable, 还是请 LZ 将您要的功能与 OEMAddressTable 一起 post 上来大家一起参详参详吧.
2. 若是一修改 OEMAddressTable 就会失败, 那是不是代表不修改就能成功呢?? 有些错误不见得是发生在失败的地方, 可能是别的问题产生的.
Paul, Chao @ Techware
ARM可以不开MMU运行,此时完全是操作物理地址。ADS本身就不依赖MMU。
你如果使用厂家提供的ADS代码来运行,是不需要去改wince的映射表的。
如果想将wince的eboot移植到ads下,工作量会比较大点,而且这个映射表是否能准确的移植到ads也不清楚。最好不要试图两者一起用。
引用: 引用 9 楼 shuiyan 的回复:
ARM可以不开MMU运行,此时完全是操作物理地址。ADS本身就不依赖MMU。
你如果使用厂家提供的ADS代码来运行,是不需要去改wince的映射表的。
如果想将wince的eboot移植到ads下,工作量会比较大点,而且这个映射表是否能准确的移植到ads也不清楚。最好不要试图两者一起用。
shuiyan大哥:
是不是ADS的那个BOOT没有开MMU呢?
我现在不是要将CE下的BOOT移植到ADS下
而是我调试CE下的BOOT在打开MMU之后程序就卡死在那了
调试又调试不了,点灯也点不亮
不知道怎么办才好
所以想问问用ADS那个BOOT修改会不会避开这个问题!!!