KernelRelocate(ROMHDR *const pToc);
Eboot 啟動後,先作這個,但是查code,pToc 只有宣告,並沒有賦予初值。
在 這篇:CE5.0 - romimage.exe如何填充eboot.bin中的pTOC特殊指針生成.nb0 有說明。
原來是 romimage.exe 做的,romimage 為EBOOT.bin 建立 pTOC (ROMHDR),然後在找到 EBOOT.bin 中 的 pTOC token,修改他的初值,改為romimage 建立的 pTOC (ROMHDR)。
所以說,pTOC 的初值是 ROMIMAGE.EXE 給的。
根據參考的那一篇,說明這個 romiage--pTOC--KernelRelocate( ) 的配合動作是為了達成類似 C startup function 對各變數region 的初始設定。可以看 KernelRelocate( ) 的 source code 就可以了解,跟 C Startup Code 類似。
沒有留言:
張貼留言