TI DM3730 EBOOT分析(一)
来源:互联网 发布:淘宝卖家 我要寄快递 编辑:程序博客网 时间:2024/05/16 03:44
EBOOT主函数调用BootLoaderMain();微软已经固定了,EBoot的开发主要是完善BootLoaderMain调用的几个函数。
1.relocate globals to RAM
KernelRelocate (pTOC)
2. Init debug support. We can use OEMWriteDebugString afterward.
OEMDebugInit ()
3.initialize platform (clock, drivers, transports, etc)
OEMPlatformInit ()
4. call OEM specific pre-download function
OEMPreDownload
5(1). download image
if (!DownloadImage (&dwImageStart, &dwImageLength, &dwLaunchAddr))
5(2).final call to launch the image. never returned
OEMLaunch (dwImageStart, dwImageLength, dwLaunchAddr, (const ROMHDR *)dwpToc);
OEMPlatformInit 初始化平台,没什么可以说的,因为35系列和37系列BSP是整合在一起的,所以先判断CPU型号,然后做对应的初始化处理。
我们主要看一下OEMPreDownload这个函数,做的前三个工作,称之为PreDownload准备A,B,C.
A. BLReserveBootBlocks,查看实现函数,Nothing to do... 太无耻了...咱们继续
BOOL BLReserveBootBlocks(
BOOT_CFG *pBootCfg
)
{
UNREFERENCED_PARAMETER(pBootCfg);
// Nothing to do...
return TRUE;
}
B. BLReadBootCfg(&g_bootCfg),读取boot的配置参数,如果读取失败,则载入默认值,这个不用多说,不熟悉配置信息的可以通过默认值,学习一下了。
C.BLConfigureFlashPartitions(FALSE);这个函数比较重要,咱们进去看看,FMD_Init,BP_Init,BP_OpenPartition,BP_LowLevelFormat,一眼看去都是
熟悉的函数啊,简单解释一下,主要获取闪存分区信息,保留区(boot),OS 区,文件系统区相关信息的获取,如果没有相关信息的话,此处会格式化闪存,
生成新的分区信息,此处用的是微软提供的bootpart来管理闪存,但是万一某一次读取MBR信息失败,都格式化了,呵呵,系统信息都没了,使用要小心啊。
看来EBoot这块代码要重新写了,还是自己直接管理放心一点,一般启动代码这块使用也比较简单,所以建议能不用bootpart的方法,还是尽量别用。
- TI DM3730 EBOOT分析(一)
- DM3730 x-loader 分析 一
- DM3730 x-loader 分析 二
- DM3730 x-loader 分析 三
- DM3730 x-loader 分析 四
- DM3730 x-loader 分析 五
- Eboot启动代码分析
- Eboot启动代码分析
- Eboot启动代码分析
- Eboot启动代码分析
- wince eboot分析
- EBOOT源码分析
- DM3730调试心得(2)
- DM3730 x-loader 分析 六 UART
- DM3730 x-loader 分析 七 DDR
- TI OMAPL处理器介绍(一)
- TI CC2650 学习历程(一)
- TI-ZStack(一)Key事件流程
- \t\t分布式文件系统比较
- SQL多表连接查询
- Android游戏框架AndEngine使用入门
- ui/ux design
- QT中PRO文件写法的详细介绍,很有用,很重要!
- TI DM3730 EBOOT分析(一)
- Oracle trunc()函数的用法_hanCSDN_20130609
- Restrictions用法
- Cocos2d-x+Plugin-X插件集成指南 cocos2d-x 2.13
- HTTP协议详解
- qsort使用实例
- ASP.NET页面生命周期
- linux 下orcale基本操作指令
- 补码