bootloader
来源:互联网 发布:jsocket编程聊天室 编辑:程序博客网 时间:2024/05/18 03:50
Nand flash不能片上执行(page读写 NFB_ReadPhysicalPage, NFB_ProgramPhysicalPage, block擦除 NFB_ErasePhysicalBlock),故需要bootloader.
MTK平台关于bootloader的代码,可参考bl_bootarm.s, bl_main.c, bl_init.c
bl_bootarm.s:
1. 中断向量表, reset handler...
2. disable IRQ&FIQ
3. INT_InitEMIInitCode, Initialize the EMI setting related code regions
4. SetPLLEMI, custom_InitDRAM
5. PreserveExtBootloaderHeader, To remove some information before regionInit, or it will be destroyed
6. GenerateRandomSeed
7. InitRegions
8. Init
9. LoadExtBootloader, VerifyExtBootloader
10. ExtBootloader
bl_man.c
ExtBootloader:
1. LoadImageListblock
2. CacheInit
3. BootAndHandOver
1). LoadPrimariMAUI
2). RemapCmd
3). jump_cmd
MTK代码的加载:
1. Extbootloader是由bootloader加载的, 即bl_bootarm.s中LoadExtBootloader
2. First ROM(及少数secu方面的)是由Extbootloader加载的, 即LoadPrimariMAUI
3. Second ROM(及CUST ROM,STUDY PARA, CUST PARA, SECU等)是由First ROM中的Application_Initialize中的NFB_LoadingSecondaryMAUI加载的 (Nand Flash进度条显示的时候)
4. Third ROM及demand paging是调用到才加载进RAM的(两者机制可能不一样, 留待以后研究)
INC_Initialize 初始化nucleus各组件(QUI--Queue, SMI--Semaphore, MBI--mail box, PII--pipe, EVI--event group, PMI--partition memory, DMI--dynamic memory, TMI--timer , IOI--io Driver, ERI--error handling, HII--history, TCI---thread control...)
之后Application_Initialize留给客户
最后TCT_Schedule
- Bootloader
- BootLoader
- BootLoader
- BootLoader
- Bootloader
- bootLoader
- bootloader
- bootloader
- bootloader
- BootLoader
- Bootloader
- bootloader
- bootloader
- bootloader
- Bootloader
- Bootloader
- Bootloader
- Bootloader
- How to instantiate I2C devices(From kernel-tree/Documentation/i2c)
- 从数据库中提取数据到CheckBoxList控件(SqlClient/OleDb/Odbc)
- 独立安装axis2
- 用dom解析xml的方法实现二级菜单级联及它们中出现的浏览器兼容问题
- struts nested标签
- bootloader
- RTP与RTCP协议介绍
- 嵌入式WEB中CGI调用另外的html
- VS2005 Debug时提示没有找到MSVCR80D.dll的解决办法
- An experiment
- 解决WORD疑难之:设置节起始页码后出现诡异隐藏页/跳页、节首页页面边框丢失
- MSSQL大批量数据量优化一
- DAO与Service
- Conversion to Dalvik format failed: Unable to execute dex: null的解决方法