打印

Mbed OS启动问题

[复制链接]
140|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
王将|  楼主 | 2018-9-8 16:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人最近在学习Mbed OS设备上电后如何运行至main函数的过程,遇到了些问题,望了解知道的人多多指教,谢谢。
我使用的是gcc编译器,参考了mbed_boot.c文件中启动流程说明。
问题如下:
(1)_start中执行了什么操作,以及如何跳转mbed_boot.c文件下的software_init_hook函数。
(2)__libc_init_array函数干了什么操作。
上电:
1.执行复位中断函数Reset_Handler
-->SystemInit函数:设置内核系统时钟和总线时钟
-->_start
2.跳转mbed_boot.c文件下的software_init_hook函数
-->mbed_set_stack_heap函数:设置mbed操作系统的堆栈空间
-->mbed_cpy_nvic函数:复制向量中断表至RAM
-->mbed_sdk_init函数:
-->osKernelInitialize函数:初始化RTOS内核
  -->__svcKernelInitialize函数: \n  -->初始化osRtxInfo\n  -->初始化内存池\n  -->SVC_Initialize函数:初始化SVC和PendSV系统服务调用-->mbed_start_main函数:
  -->新建pre_main线程\n  -->osKernelStart函数:启动RTOS内核调度程序\n        -->__svcKernelStart函数:\n        -->创建空闲线程osRtxIdleThread\n        -->创建定时器线程osRtxTimerThread\n        -->OS_Tick_Setup函数:设置RTOS时间滴答\n        -->OS_Tick_Enable函数:使能RTOS时间滴答\n        -->osRtxInfo切换到ready状态,优先级最高3.pre_main线程
  -->__libc_init_array函数\n  -->转到main函数4.main

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

419

主题

419

帖子

0

粉丝