首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

eboot, TOC,NK 地址跳转的有关问题

2012-03-27 
eboot, TOC,NK 地址跳转的问题平台:S3C2440+WINCE5。0+EBOOT问题1:在Eboot输出的调试信息中TOC的ID[1],打印

eboot, TOC,NK 地址跳转的问题
平台:S3C2440+WINCE5。0+EBOOT
问题1:在Eboot输出的调试信息中TOC的ID[1],打印出来的信息中dwLoadAddress:0x80200000 dwJumpAddress:0x8037cf88
  其中dwLoadAddress是把nk.bin拷贝到RAM的虚拟地址,dwJumpAddress应该就是EBOOT完成拷贝之后,跳转到这个地址
  去执行,问题是拷贝内核到RAM地址和跳转去执行的内核地址是不一样的。0x80200000 这个地址是在config.bib中确定,
  那么dwJumpAddress又是在那里确定,为什么这两个地址可以不一样?
问题2:在boot.bib中 BINFS 0x80080000 00021000关于BINFS地址的设置又有什么需要注意的?跟什么有关系,怎么换算,它的
  大小是如何确定的,跟内核大小有什么关系?
 

[解决办法]
第二个问题,BINFS 0x80080000 00021000中是保留了一段内存给BOOTPART库使用,
大小与NK无关,跟FLASH的大小有关,具体计算方法如下:
BOOL BP_Init(
LPBYTE pMemory, 
DWORD dwSize,
LPCTSTR lpActiveReg,
PPCI_REG_INFO pRegIn,
PPCI_REG_INFO pRegOut);

dwSize
[in]This value should be at least the size of one flash block plus one sector plus sectors divided by blocks multiplied by eight, or as expressed as a mathematical statement: block + sector + (sectors/block) * 8. 

[解决办法]

探讨
问题是跳转去执行内核的RAM地址是在那里设置的,config.bib和boot.bib都找不到
问题三:eboot中的全局变量g_TOC的地址,书上说是RomImage确定了它的位置,那么RomImage是如何确定的,是自动设置的还是通过文件固定的,譬如象.bib文件设置一样??

[解决办法]
探讨
引用:
问题是跳转去执行内核的RAM地址是在那里设置的,config.bib和boot.bib都找不到
问题三:eboot中的全局变量g_TOC的地址,书上说是RomImage确定了它的位置,那么RomImage是如何确定的,是自动设置的还是通过文件固定的,譬如象.bib文件设置一样??


楼主,0x80200000 这个地址是在config.bib中确定的,这个0x80200000 是虚拟地址啊。但在eboot中MMU都没有打开,不能用0x80200000 这个地址跳转,…

[解决办法]
EBOOT最后跳转到NK.bin中,是NK.exe的入口处,并非NK的起始地址,
一般都是在起始地址之后的一个地址。
你可以通过viewbin nk.bin查看这个起始地址。
[解决办法]
Eboot下载的是bin,但烧进Flash的是nb0,解压后烧进去的
[解决办法]
我也想知道0x30038000这个地址怎么来的……
[解决办法]
Binfs跟ROM Only File System应该是完全不同的两回事,
Binfs是一种文件系统,跟FAT之类是一个概念;而ROM Only File System则是OS选用的是RAM,RAM+ROM还是ROM Only文件系统中的一个,而且一般这里的ROM文件系统也不会用Binfs,所以说两个之间可以说基本上没有什么关系

热点排行