UCOS2 STM32F1移植詳細過程(二)

2021-07-14 01:43:11 字數 2593 閱讀 9568

分享乙個大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到人工智慧的隊伍中來!

我的**:

我的知乎:

ⅰ、

概述ⅱ、

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是專門為系統而設計的。

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_***_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.其他

還有很多與系統其他資源相關的配置,正常的情況下是需要的時候才開啟,不用盡量關閉。一是節約資源,二是減少編譯時間。後期我會將中文注釋在後面。

ⅴ、

訪問密碼

ucos2基於stm32f107的軟體工程包(官網原版):

訪問密碼 1235

標準外設庫:

訪問密碼 60ae

ⅵ、

說明當你掌握ucos在一種平台上的移植,其他平台移植原理類似,請不要侷限某一平台。

以上總結僅供參考,若有不對之處,敬請諒解。

ⅶ、

最後我的**:

uCos在stm32上的移植總結

作業系統 windows xp 開發環境 keil uvision3 mdk 實驗開發板 open103z 一 準備 2 ucos ii 原始碼 移植版本 3 stm32標準外設庫 stm32標準外設庫是stm32全系列晶元的外設驅動 4 jlink 器驅動程式 找不到官網 二 建立工程資料夾結構 ...

STM32F103 UCOSII 移植實驗

ucosii 移植 一 向工程中新增相應資料夾 1 建立相應資料夾 在工程目錄下新建ucosii資料夾,並在ucosii資料夾中另外新建3個資料夾 config core和port,如下圖所示 2 向core資料夾中新增原始碼檔案 2 新增原始碼檔案 向core資料夾中新增cosii原始碼檔案,開啟...

STM32F429移植SQLITE記錄

不知道自己是哪根筋搭錯了還是怎麼回事,一時心血來潮,突發奇想,決定把sqlite移植到stm32f429上。在此記錄一下過程,也確認一下此事可行。先說一下結果 移植後的sqlite可執行,可操作,但是比較耗資源 相對微控制器來說 記憶體小的,就別想了,根本玩不起來的。這是未載入時的記憶體使用情況 這...