rt-thread 官網有這樣一張圖,詳細講解了os啟動流程。
1. 在mdk環境下,上電復位後進入復位中斷,並呼叫 __main 函式;
2. rt-thread重定義了 $sub$$main 函式,因此復位中斷先跳轉到 $sub$$main 函式;
4. rtthread_startup() 函式最後啟動排程器,os隨後進入已經建立的 main 執行緒(void main_thread_entry(void *parameter));
5. main 執行緒完成 os元件初始化之後,跳轉至 $super$$main() 函式,正式執行使用者定義的 main 函式。因此 main 函式是以乙個執行緒的形式在執行。
注:有關 $super$$和$sub$$的用法和參考 arm compiler for embedded reference guide。
RT Thread 啟動流程
一般了解乙份 大多數從啟動部分開始,同樣這裡也是採用這種方式,先尋找啟動的源頭。以mdk arm為例。mdk arm的使用者程式入口為main 函式,位於main.c檔案中。系統啟動後先從彙編 startup stm32f103xe.s開始執行,然後跳轉到c 進行rt thread系統功能初始化,最...
SpringBoot2啟動流程
springboot如果要說是springframework的封裝那麼也不全是,個人認為從思想上來說是兩個東西。springboot主要具備如下特性 1.自動裝配 2.內建tomcat等web容器 3.與devops天然整合,這也可以認為是微服務的特點。下面咱們看下 public class pub...
rt thread 串列埠裝置的配置流程
板級硬體初始化 系統定時器初始化 系統排程器初始化 建立初始化執行緒 元件初始化 定時器執行緒初始化 空閒執行緒初始化 系統排程器工作 串列埠裝置配置函式中遍歷要使用的串列埠裝置,做一些工作引數配置和裝置介面實現並註冊裝置 但在此不初始化裝置或不使能裝置 具體配置過程 1.註冊串列埠裝置,以便 fi...