|
高手解惑,关于 镜像 bib 内存映射 bootloader 的问题
[复制链接]
我现在用 TI 的 OMAPV1030 遇到一个不解的问题
这个芯片物理地址是这样的:
0x0000 0000 - 0x0000 5FFF 24K ROM code
...
0x0C00 0000 - 0x0FFF FFFF 64M nand flash
...
0x1000 0000 - 0x13FF FFFF 64M 外部 RAM
...
0x2000 0000 - 0x2000 7FFF 32K 内部 RAM
...
芯片 ROM code 下载 bootloader 镜像
bootloader 镜像最开始的 xloader 部分
是由一个 xldrnand.exe 经 romimage.exe 根据 xldrnand.bib 做成的一个nb0文件
大小是16K,重复四次放在 bootloader 镜像的最开始的 64K 位置。
xldrnand.bib 里面这样说的
... 0x2000 0000 RAMIMAGE
... 0x1000 0000 RAM
...
文档里面说 ROM code 会把下载的镜像放到 0x2000 0000 的内部镜像中,并就地执行。
可是我打开那 16K 的 xloader 的二进制看,最初的四字节是 00 00 3F FC 是 16K 的 size 信息
接下来近 4K 的空间全部是 0x00
CPU 直接从那里执行的话,能执行吗?此时内部 RAM 并不是机器代码啊!
这是第一个问题。
问题二:BIB 文件是什么意思啊?
如果下载成功了,也就是说,这个 boot 镜像成功地写进了 0x0C000 0000 的 flash 中
文档里面说了,如果是本地启动的话, ROM code 会从相应的地方,也就是那个 flash 中
把 boot sector 也就是那 16K 的内容 copy 到内部 RAM 中去,并执行。
但是,BIB 文件里面的信息,我想,应该是包含在镜像里面的呀,在没有 copy 镜像到 RAM 中前,
这些 BIB 里面的信息会起作用吗?
问题三:这些 BIB 文件里面的信息究竟是在哪里起作用的?
下载的时候,由 flash writer 识别并写入 flash?
镜像从 flash 加载后,由 ROM code 识别后,调整设置完成后再执行镜像?
还是镜像加载完,并开始执行后,识别,并调整?
|
|