高通平台启动流程
2015-10-20 17:24
239 查看
Startup Sequence
arch/arm/crt0.S: _start (defined in arch/arm/system-onesegment.ld)Setup CPU
Calls __cpu_early_init if necessary
Relocate if necessary
Setup stack
Calls kmain()
platform/<platform>/(arch_init.S): __cpu_early_init
Platform-specific initialization sequence, e.g. for 8K targets
kernel/main.c: kmain()
arch_early_init()
platform_early_init()
target_early_init()
call constructors defined by __ctor_list (which is nothing)
init: heap, thread, dpc, timer
create init thread: bootstrap2(), main thread goes to sleep
kernel/main.c: bootstrap2()
arch_init()
platform_init()
target_init()
apps_init()
arch/arm/arch.c: arch_early_init()
disable cache
set IRQ vector base
init MMU
MMU mapping
enable cache
init Neon
platform/<platform>/(platform.c): platform_early_init()
init UART
init interrupts
init timer
target/init.c: target_early_init()
Stub (weak references, can be overridden)
arch/arm/arch.c: arch_init()
Stub
platform/<platform>/(platform.c): platform__init()
init Apps CPU clock
init MDDI/LCDC
setup frame buffer
target/<target>/(init.c): target_init()
init keypad
init flash partition table
init flash
app/init.c: apps_init()
init apps that are defined using APP_START & APP_END macros, aboot_init() is
called during this step
run the app in a separate thread if it has .entry section
app/aboot/aboot.c: aboot_init()
fastboot (boot from USB) if key pressed
boot from flash if key not pressed
Notes on file & directory names
<...> match to the corresponding platform or target, e.g. msm7k, surf-qsd8250
(...) are preferred name but not necessary enforced
[edit]Makefile
include order
/makefile includes /project/$PRJECTNAME.mk/project/$PRJECTNAME.mk includes /target/$TARGET/rules.mk
/target/$TARGET/rules.mk includes /platform/$PLATFORM/rules.mk
/project/$PRJECTNAME.mk specifies
$TARGET
modules to include (under /app)
/target/$TARGET/rules.mk specifies
$PLATFORM
board-level settings: membase, memsize, linux_machinetype, gpio keypad
/platform/$PLATFORM/rules.mk specifies
CPU-level settings: ARCH, ARM_CPU, CPU
相关文章推荐
- 如何用Mac自带QuckTime软件录制屏幕及声音
- Redhat Enterprise Linux 6 (RHEL 6) YUM源切换至阿里云的CentOS 6 YUM源
- poj 1775 Sum of Factorials 枚举子集
- C++ 11语法甜点2
- XML文件解析
- sql语法练习(一)
- Android 自定义View (四) 视频音量调控
- IOS之导航控制器传值
- JavaScript 核心参考教程 内置对象
- Java反射
- Android:控件WebView显示网页
- Codevs 数轴染色
- Junit 小案例 测试超时
- BH&BF&O的区别
- sql server创建备份计划
- 音乐播放器项目技术之一歌词的同步显示
- 二维码生成实例
- 作用域实例
- IOS Runtime属性关联实现表格编辑文本
- nodejs如果npm install express -g远程安装费时