- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CE5.0如何填充eboot.bin中的pTOC特殊指针.doc
CE5.0 -如何填充eboot.bin中的pTOC特殊指针eboot.bin和eboot.nb0的差别就是eboot.bin中没有填充pTOC结构体,必须使用parser解释器[类似于romimage.exe luther.gliethttp]将全局变量数据段解压释放到运行时使用的地址才行,eboot.nb0中经过romimage.exe填充了pTOC结构体,所以eboot.nb0可以自己将自己用到的全局量通过KernelRelocate()函数进行解压释放,这就是为什么eboot.nb0比eboot.bin的size大的原因.eboot.nb0是一个包含全局变量初始化pTOC结构体的文件,所以当eboot.nb0启动时就可以通过BootloaderMain()==KernelRelocate(pTOC)来实现eboot.nb0自己初始化自己定义的全局变量的工作,其实KernelRelocate就相当于ADS启动汇编中对如下四个section的操作:Image$$RO$$LimitImage$$RW$$BaseImage$$ZI$$BaseImage$$ZI$$Limit但是我们在源程序中只能找到pTOC的定义ROMHDR?*?volatile?const?pTOC?=?(ROMHDR?*)-1;根本找不到对它进行赋值的任何操作,无论是.s汇编还是任何宏中,那pTOC又是从哪里得到了有效的数值的呢?这就是我们下面继续讨论的问题,一切疑惑都可以从romimage.exe中获得答案.romimage.exe源码位于WINCE500\PRIVATE\WINCEOS\COREOS\NK\TOOLS\ROMIMAGE\ROMIMAGE目录下,C:\WINCE500\PRIVATE\WINCEOS\COREOS\NK\TOOLS\ROMIMAGE\ROMIMAGE\module.cpp|118|?if(token?==?pTOC){void?Module::check_special_symbol(string?token,?DWORD o32_section,?DWORD offset,?MemoryList?memory_list){????...????if(is_kernel()){????????if(token?==?pTOC){//我们在eboot源码PLATFORM\SMDK2440A\Src\Bootloader\Eboot_usb\blcommon.c中定义了该符号,如下://ROMHDR * volatile const pTOC = (ROMHDR *)-1; // Gets replaced by RomLoader with real address//记录pTOC指针所在位置??????????m_TOC_offset?=?offset?+?m_load_offset;?// doesnt get load offset added, because only compared with rva later??????????LAST_PASS_PRINT?printf(Found pTOC at %08x\n,?m_TOC_offset);????????}????????if(needs_signing()){??????????if(token?==?OEMIoControl)????????????s_oem_io_control?=?offset?+?m_初始化c代码定义的非0值全局变量load_offset?-?page_size();????????}????????...????}????...}bin.cpp|87|?kernel-write_TOC_ptr(romhdr_offset);bool?write_bin(AddressList?hole_list,?CopyList?copy_list,????????????????ModuleList?module_list,?FileList?file_list,????????????????MemoryList?memory_list,?MemoryList?reserve_list,????????????????ModuleList::iterator?kernel,?Config?config,?MemoryList::iterator?xip_mem){????...????// write toc into kernel????if(xip_mem-is_kernel()??kernel-is_kernel())????????kerne
您可能关注的文档
- ABCB1ABCG2与食管癌患者多药耐药的关系.pdf
- ABD活性因子与艾滋病相关研究.doc
- ABD活性因子提升抗癌药物效果的研究摘录.doc
- ABL90系列参数及临床意义.pdf
- ABS管道施工工艺.doc
- AB益生菌纤维咀嚼片加工工艺的研究.pdf
- ACAD中撤销恢复机制的浅析.doc
- ACCAHA新版外周动脉疾病诊疗指南解读.doc
- Access的使用方法.doc
- ACE2基因A9570G多态性与2型糖尿病及糖尿病心肌病的相关性研究.doc
- 石城县2024-2025学年三年级数学第二学期期末检测试题含解析.doc
- 江苏省无锡市江阴市南菁高中2025年高三下学期第一次质量调研历史试题含解析.doc
- 天津职业技术师范大学《当代世界经济与政治》2023-2024学年第一学期期末试卷.doc
- 南阳职业学院《老年医学B》2023-2024学年第一学期期末试卷.doc
- 新疆大学《组态技术》2023-2024学年第一学期期末试卷.doc
- 2025年安徽省淮南市第一中学高三下学期第一次阶段考试(月考)生物试题含解析.doc
- 大连医科大学中山学院《数字科技前沿》2023-2024学年第一学期期末试卷.doc
- 2025年统计学专业期末考试题库——综合案例分析题:统计学在能源行业的应用.docx
- 期末专项(综合填空)-鲁教版(五四制)英语新版六年级下册.docx
- 2025年日语能力测试N1级词汇语法强化试卷词汇记忆策略.docx
文档评论(0)