嵌入式操作系统的启动

传统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段的初始化:

堆栈增长方向、满堆栈和空堆栈的四种组合选择一个,处理器的各个模式对应的register的初始化,每个模式对应的堆栈初始化;bss段是通常用来存放程序中未初始化的或初始化值为零的全局变量或局部变量的一块内存区域。


d.进入main函数,完成特定硬件平台的初始化工作:时钟初始化,如分频;内存初始化。


s3c6410上的代码实现上述操作:(未完待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值