mbedOS启动过程

之前参与MbedOS书稿编写积累的经验

使用芯片: MKL36Z64VLH6

芯片启动到main函数之前的运行过程

(1)芯片上电复位后,芯片内部机制首先从Flash的0x00000000地址,取出第一个表项的内容,赋值给堆栈指针MSP,完成堆栈指针初始化。

(2)芯片内部机制将第二个表项,即复位处理程序Reset_Handler的首地址,赋值给程序计数(Program Counter,PC)寄存器。

(3)芯片内部机制从PC中取出地址,再从地址取出机器码(芯片复位后执行的第一个指令),程序从startup_MKL36Z64.S中文件中的Reset_Handler函数开始运行。第一个指令就是关总中断(cpsid i),最后运行”system_MKL36Z64.c“文件的SystemInit()函数:

(4)SystemInit()函数进行芯片部分初始化设置,以此关闭看门狗、系统时钟初始化。

(5)回到Reset_Handler中继续执行剩余初始化功能,包括开中断、将ROM中的初始化数据拷贝到RAM中、清零未初始化的BSS数据段,随后进入main函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值