传统OS:BIOS、引导程序、os
嵌入式os简化为2个阶段:引导程序、os
3.1.1ARM的启动过程:
区别于普通的裸机程序,操作系统的启动应该至少关心两个方面:
程序运行离不开栈,程序运行时需要的变量、数据、函数调用的参数传递等离不开栈。
a.程序运行桟的初始化。
b.处理器及相关必要外设的初始化。
3.1.2 ARM操作系统解读
a.相关汇编伪指令:
.align
.secton
code 32<---->.arm
code 16<---->.thumb
b.ARM处理器的7种模式
c.栈指针和bss段的初始化:
d.进入main函数,完成特定硬件平台的初始化工作:时钟初始化,如分频;内存初始化。堆栈增长方向、满堆栈和空堆栈的四种组合选择一个,处理器的各个模式对应的register的初始化,每个模式对应的堆栈初始化;bss段是通常用来存放程序中未初始化的或初始化值为零的全局变量或局部变量的一块内存区域。
s3c6410上的代码实现上述操作:(未完待续)