MSM8x25 android开发流程分析
2013-08-02 17:26
363 查看
一、boot分析,编译完成后生成以下文件amss.bin来源于amss.mbn,就是modem通讯协议模块。qcsbl.bin来源于qcsbl.mbn -->qcsbl boot --》qcsbl.S、qcsbl——mc.c和qcsbl.sclqcsbl主要工作是:1、继续对硬件进行设置;2、从nand中,查找出激活的多镜像块;3、加载oemsbl镜像的头信息块4、鉴定oemsbl镜像的合法性;5、运行加载好的oemsbl镜像模块;6、加载amss镜像的头信息块;7、加载amss镜像;7、鉴定amss镜像合法性,若需要的话。8、把控制权交给amss代码。总结如下:根据硬件特性,进一步对硬件和外围设备进行初始化,比如usb、mmu、bus、mpu等模块;下载过程的实现:oemsbl部分来配合烧写的;加载arm11的emmc_appsboot,唤起arm11.代码分析:qcsbl.s
;============================================================================ ; ; MODULE EXPORTS ; ;============================================================================ ; Export the external symbols that are referenced in this module. EXPORT qcsbl_loop_here ; Export the symbols __main and _main to prevent the linker from ; including the standard runtime library and startup routine. EXPORT __main EXPORT _main ;============================================================================ ; ; MODULE DATA AREA ; ;============================================================================ ;-------------------------------------------------------------------------- ; Data area is in IRAM and location must be defined in scatter load ; file. Data area starts at the top of IRAM. ;-------------------------------------------------------------------------- PRESERVE8 AREA QCSBL_VECTOR_TABLE, DATA, READWRITE ;-------------------------------------------------------------------------- ; Exception vectors table located at the top of IRAM. This is initialized ; to the QCSBL exception handlers. This region will be copied into IRAM ; to replace the vectors which were used by the PBL. ;-------------------------------------------------------------------------- unused_reset_vector DCD 0x00000000 undefined_instruction_vector DCD qcsbl_undefined_instruction_nested_handler swi_vector DCD qcsbl_swi_c_handler prefetch_abort_vector DCD qcsbl_prefetch_abort_nested_handler data_abort_vector DCD qcsbl_data_abort_nested_handler reserved_vector DCD qcsbl_reserved_c_handler irq_vector DCD qcsbl_irq_c_handler fiq_vector DCD qcsbl_fiq_c_handleroemsbl.s
AREA OEMSBL_VECTOR_TABLE, DATA, READWRITE unused_reset_vector DCD 0x00000000 undefined_instruction_vector DCD oemsbl_undefined_instruction_nested_handler swi_vector DCD oemsbl_swi_c_handler prefetch_abort_vector DCD oemsbl_prefetch_abort_nested_handler data_abort_vector DCD oemsbl_data_abort_nested_handler reserved_vector DCD oemsbl_reserved_c_handler irq_vector DCD oemsbl_irq_c_handler fiq_vector DCD oemsbl_fiq_c_handlerqcsbl.scloemsbl.scloemsbl_mc.coemsbl_aarm_boot.coemsbl.bin 作用:加载oemsbl镜像 ,来源于oemsbl.S、oemsbl_mc.c、oemsbl_aarm_boot.c和oemsbl.scl 位于/modem/modem_proc/core/boot/secboot/oemsbl/下oemsblhd.bin作用:加载oemsbl镜像的头信息块,(mibib格式)emmc_appsboot.bin 来源于emmc_appsboot.mbn,这个就是bootloader,就是android端的启动代码。boot.img不是bootloader.而是kernel和ram disksystem.img.etx4 是android的root fs。启动过程如下:
AREA QCSBL_ENTRY, CODE, READONLY CODE32 ENTRY __main _main ... ...
ldr r1, =qcsbl_main_ctl blx r1二、amss修改三、android启动
相关文章推荐
- Android APN开发流程分析
- Android APN开发流程分析
- Android APN开发流程分析
- Android APN开发流程分析(一)
- Android驱动开发【框架模型】———HAL分析(入口以及对外接口)和HAL设计流程
- android wifi开发流程和关键点分析
- Android APN开发流程分析
- android开发之源码级分析(系统启动流程 & Handler消息机制 & AsyncTask机制)
- Android APN开发流程分析(一)
- Android APN开发流程分析(二、三、四)
- Android APN开发流程分析
- android wifi开发流程和关键点分析
- android系统启动流程之init.rc详细分析笔记
- 【Android】源码分析 - Activity启动流程
- 从零开始学Android(一):Android开发环境的搭建及项目目录结构的分析
- android开发和测试工具分析_DDMS和MAT
- Android 7.0 虚拟按键(NavigationBar)源码分析(一) 之 View的创建流程
- Android休眠唤醒驱动流程分析(四)
- Android 蓝牙开发基本流程之“连接指定水木行蓝牙模块”