Ⅰ、概述
打開上一篇文章新建的工程,是提取的ST標準庫里面源代碼文件和UCOS工程包源代碼文件。下載過的朋友可能會知道,直接編譯那個工程會有大片的錯誤和警告,原因在于那個工程是沒有經過修改源代碼的工程,接下來就是講述一步一步修改源代碼的過程(也就是所謂的移植過程)。
該文接著上一篇文章來講述“UCOS移植詳細過程”,上一篇文章是講述準備工作、文件提取并整理、新建UCOS工程等工作。該文講述UCOS移植過程中修改部分源代碼(底層代碼、系統配置等)工作。
Ⅱ、ST芯片配置
配置ST型號的方法有兩種:使用標準庫源代碼配置和工程配置
1.源代碼配置
打開工程 -> 打開源代碼“stm32f10x.h”文件。
使用F103大容量的芯片:取消第68行STM32F10X_MD的注釋,這里需要和我們的啟動代碼匹配startup_stm32f10x_hd.s。
使用標準外設庫:取消第105行USE_STDPERIPH_DRIVER的注釋,使用標準外設庫,我們使用stm32f10x_conf.h文件來配置使用到的外設庫。
2.工程配置
打開工程-> Project -> Options for Target -> C/C++,在該選項預定義里面添加STM32F10X_MD,USE_STDPERIPH_DRIVER這兩個宏定義即可。
注意:兩種方法用一種即可。效果圖如下:
Ⅲ、配置系統滴答時鐘
系統的運行離不開系統滴答,就像我前面說過的:系統滴答的作用,就是驅動整個系統工作的心臟,如果沒有了它,就等于人沒有了心跳。
1.初始化滴答
我們使用ST的滴答SysTick來配置作為操作系統的滴答時鐘,芯片SysTick是屬于內核(Cortex-M3)的一部分,所以,在初始化的時候是調用CM3里面的源代碼(SysTick_Config函數)。
這里說明一下,只要使用Cortex-M3內核的芯片都有這個功能,可以說SysTick是專門為系統而設計的。
系統滴答配置如上圖,位于app_cfg.c源文件下面。
2.滴答中斷配置
中斷函數需要調用系統相關的函數,也就是系統進行滴答相關的函數,這里是規定這么調用的。
Ⅳ、裁剪系統(配置os_cfg.h)
對于我們常說的系統可裁剪,其實就是對系統某些功能打開和關閉,使用到的功能才打開,不使用的功能就關閉(即使能和失能),這個文件就集中在os_cfg.h文件里面。
這里先說一下重要的幾個選項:
1.最低優先級OS_LOWEST_PRIO
這個與我們配置任務優先級有關系,最低優先級任務配置的最大值。我們所說的任務優先級關系是:優先級越小,數值越大; 相反,優先級越大,數值越小。
位于os_cfg.h文件第39行:
#define OS_LOWEST_PRIO 63
2.系統每秒滴答數OS_TICKS_PER_SEC
這個宏定義的意思就是說,系統每秒鐘滴答多少次,它與系統延時(OSTimeDly)關系比較重要,我們的例子中OS_TICKS_PER_SEC等于100,調用OSTimeDly(100);相當于的延時100個滴答,即延時1秒的意思。
位于os_cfg.h文件第51行:
#define OS_TICKS_PER_SEC 100
3.任務堆棧大小OS_TASK_xxx_STK_SIZE
這個幾個宏定義在使用相應功能的時候有用,如果RAM資源有限,這個任務堆棧的大小最好根據任務來評估一下,資源有限時不要太大,當然也不能小于程序正常運行。
位于os_cfg.h文件第55 - 57行:
#define OS_TASK_TMR_STK_SIZE 128
#define OS_TASK_STAT_STK_SIZE 128
#define OS_TASK_IDLE_STK_SIZE 128
4.其他
還有很多與系統其他資源相關的配置,正常的情況下是需要的時候才開啟,不用盡量關閉。一是節約資源,二是減少編譯時間。后期我會將中文注釋在后面。
Ⅴ、下載
我將移植完成,建立了3個簡單任務的例程放在360云盤供大家下載與參考:
https://yunpan.cn/cRIpR5bwHMCCY訪問密碼 3885
UCOS2基于STM32F107的軟件工程包(官網原版):
Micrium官網下載地址(需要賬號):
https://www.micrium.com/download/micrium_stm32f107_ucos-ii
我360云盤下載地址:
https://yunpan.cn/cRzcf8eSacEhE訪問密碼 1235
標準外設庫:
ST官網下載地址(需要賬號):
http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software.html?querycriteria=productId=SC961
我360云盤下載地址(定期更新):
https://yunpan.cn/cSaCpGejMSfr8訪問密碼 60ae
-
STM32F10
+關注
關注
0文章
45瀏覽量
15624 -
ucos2
+關注
關注
0文章
15瀏覽量
3557
發布評論請先 登錄
相關推薦
評論