軟件環境:Win7+MDK4.7.2python
硬件環境:STM32F4Discoverygit
所用OS代碼:RT-Thread2.0.0 beta 下載地址: https://github.com/RT-Thread/rt-thread/archive/v2.0.0_beta.zipgithub
解壓縮後,使用\rt-thread-2.0.0_beta\bsp\stm32f40x\project.uvproj 進行實驗。app
沒有使用scons和python。不大須要這個東西。函數
今天只熟悉一下軟件環境:線程
一、RT進入main以前, 對象
與普通的MDK-STM32程序同樣。會使用system_stm32f4xx.c文件中的SystemInit函數初始化時鐘。ip
二、main函數位於startup.c文件中。進行兩個工做 get
系統開始前,rt_hw_interrupt_disable關閉全部中斷。 it
以後使用rtthread_startup啓動RTThread
3、函數rtthread_startup()完成的工做:
一、調用函數rt_hw_board_init 完成板子初始化工做
二、顯示版本信息:rt_show_version
三、初始化系統滴答:rt_system_tick_init
四、系統內核對象初始化:rt_system_object_init
五、定時器初始化:rt_system_timer_init
六、系統堆棧初始化rt_system_heap_init
七、任務調度器初始化:rt_system_scheduler_init
八、rt_application_init //加入用戶自定義的任務
九、FINSH模塊初始化 ,
十、定時器線程初始化:rt_system_timer_thread_init
十一、空閒任務初始化rt_thread_idle_init
十二、開始任務調度,OS接管MCU:rt_system_scheduler_start
任務調度開始以後,OS就算是啓動好了。以後的東西都是在OS的管理下運行了。
4、在RTT示例工程中添加外設驅動的方法:
驅動頭文件加入board.h