首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

RT-Thread 環境搭建與啟動流程分析:MDK + STM32F4Discovery 實戰

     編輯:關於C語言

開發環境

  • OS:Windows 7 + MDK 4.7.2
  • 硬件:STM32F4Discovery (Cortex-M4)
  • 內核:RT-Thread 2.0.0 beta (GitHub 下載)
  • 工程路徑:bsp/stm32f40x/project.uvproj

main 前初始化

同普通 MDK 專案,system_stm32f4xx.c 中 SystemInit() 配置時鐘。

main 函數 (startup.c)

int main(void) {
    rt_hw_interrupt_disable(); // 關總中斷
    rtthread_startup();        // 啟動 RT-Thread,不再返回
}

rtthread_startup() 核心流程

  1. rt_hw_board_init():板級外設初始化 (UART, LED 等)。
  2. rt_show_version():打印版本信息。
  3. rt_system_tick_init():配置 SysTick 定時器 (1ms 典型)。
  4. rt_system_object_init():內核對象管理器初始化。
  5. rt_system_timer_init():定時器列表初始化。
  6. rt_system_heap_init():系統堆內存池初始化。
  7. rt_system_scheduler_init():調度器就緒列表初始化。
  8. rt_application_init():用戶應用線程創建掛鉤(在此創建業務線程)。
  9. finsh_system_init():FinSH 控制台初始化。
  10. rt_system_timer_thread_init():定時器線程啟動。
  11. rt_thread_idle_init():空閒線程創建(最低優先級)。
  12. rt_system_scheduler_start():啟動調度,OS 正式接管 CPU。

添加外設驅動

在 board.h 包含驅動頭文件,rt_hw_board_init() 中調用初始化函數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved