軟件環境:Win7+MDK4.7.2
硬件環境:STM32F4Discovery
所用OS代碼:RT-Thread2.0.0 beta 下載地址: https://github.com/RT-Thread/rt-thread/archive/v2.0.0_beta.zip
解壓縮後,使用\rt-thread-2.0.0_beta\bsp\stm32f40x\project.uvproj 進行實驗。
沒有使用scons和python。不大需要這個東西。
今天只熟悉一下軟件環境:
1、RT進入main之前,
與普通的MDK-STM32程序一樣。會使用system_stm32f4xx.c文件中的SystemInit函數初始化時鐘。
2、main函數位於startup.c文件中。進行兩個工作
系統開始前,rt_hw_interrupt_disable關閉所有中斷。
之後使用rtthread_startup啟動RTThread
3、函數rtthread_startup()完成的工作:
1、調用函數rt_hw_board_init 完成板子初始化工作
2、顯示版本信息:rt_show_version
3、初始化系統滴答:rt_system_tick_init
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模塊初始化 ,
10、定時器線程初始化:rt_system_timer_thread_init
11、空閒任務初始化rt_thread_idle_init
12、開始任務調度,OS接管MCU:rt_system_scheduler_start
任務調度開始之後,OS就算是啟動好了。之後的東西都是在OS的管理下運行了。
4、在RTT示例工程中添加外設驅動的方法:
驅動頭文件加入board.h
RT-Thread RTOS
這是一款由國內RT-Thread工作室開發的開源實時操作系統。起初RT-Thread是一個實時的內核(全搶占優先級調度,調度器時間復雜度O(1)),但在發展過程中,RT-Thread實時操作系統得到了來自全國嵌入式開發工程師的鼎力支持,為RT-Thread添磚加瓦,現在它已慢慢變成一個完善的、全功能的操作系統:文件系統,網絡協議棧,圖形界面組件。。。只有您想不到,沒有您做不到:RT-Thread是一個平台,您可以把您的創意匯聚在一起,小平台大社區,RT-Thread的開發人員就在您的身邊。
RT-Thread/GUI是專為RT-Thread操作系統開發的,並在相應的地方采用了RT-Thread特有的功能,它是一款幾乎從零代碼開始編寫的,擁有獨立知識產權的圖形界面(不包括JPEG、PNG等圖形庫部分)。在RT-Thread許可證的條款下,能夠免費的在商業產品中使用。RT-Thread/GUI的特性包括:
- 多線程圖形用戶界面;
- 依賴於RT-Thread線程調度器的實時圖形用戶界面;
- 創新式的在嵌入式系統中引入面板的概念,縮小了多線程,多窗口圖形用戶界面編程代價:
* workbench,對應多線程;
* view,對應不同的用戶界面視圖;
* window,對應多窗口;
- C語言方式的全面向對象設計:
* 對象具備運行時類型信息;
* 對象自動銷毀,使得內存的管理更為輕松;
- 豐富的控件支持:
* button,checkbox,radiobox
* textbox
* progressbar,slider
* listview,filelist_view