NXOS 启动流程

在设备开机后,处理器会跳到一个地址去执行代码,一般都是固定的,然后再从这些固定代码跳转到程序员自己编写的程序。程序员自己写的程序就是裸机,rtos或者操作系统。
在nxos中,不同的平台会有不同的执行地址,所以我们需要指定内核程序的入口地址,在链接的时候指定一个标签 _Start,当执行到这个地方的时候,内核就开始运行了。

内核执行路径

-> _Start
    -> NX_Main (内核的主函数)
        -> NX_SMP_Preload
        -> NX_HalPlatformInit (平台初始化, 不能使用内核的功能: 平台开发者实现)
        -> ShowLogVersion
        -> ... 内核功能初始化 ...
        -> NX_CallsInit (初始化调用)
        -> NX_HalPlatformStage2 (平台初始化二阶段,可以使用内核的功能: 平台开发者实现) 

        -> NX_SMP_Main (SMP初始化)
        -> NX_SchedToFirstThread (调度第一个线程)
            -> NX_HalPlatformMain (平台的主函数,什么都可以使用: 平台开发者实现)

results matching ""

    No results matching ""