當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]Ⅰ、概述打開上一篇文章新建的工程,是提取的ST標(biāo)準(zhǔn)庫里面源代碼文件和UCOS工程包源代碼文件。下載過的朋友可能會(huì)知道,直接編譯那個(gè)工程會(huì)有大片的錯(cuò)誤和警告,原因在于那個(gè)工程是沒有經(jīng)過修改源代碼的工程,接下來

Ⅰ、概述

打開上一篇文章新建的工程,是提取的ST標(biāo)準(zhǔn)庫里面源代碼文件和UCOS工程包源代碼文件。下載過的朋友可能會(huì)知道,直接編譯那個(gè)工程會(huì)有大片的錯(cuò)誤和警告,原因在于那個(gè)工程是沒有經(jīng)過修改源代碼的工程,接下來就是講述一步一步修改源代碼的過程(也就是所謂的移植過程)。

該文接著上一篇文章來講述“UCOS移植詳細(xì)過程”,上一篇文章是講述準(zhǔn)備工作、文件提取并整理、新建UCOS工程等工作。該文講述UCOS移植過程中修改部分源代碼(底層代碼、系統(tǒng)配置等)工作。

Ⅱ、ST芯片配置

配置ST型號(hào)的方法有兩種:使用標(biāo)準(zhǔn)庫源代碼配置和工程配置

1.源代碼配置

打開工程 -> 打開源代碼“stm32f10x.h”文件。

使用F103大容量的芯片:取消第68行STM32F10X_MD的注釋,這里需要和我們的啟動(dòng)代碼匹配startup_stm32f10x_hd.s。

使用標(biāo)準(zhǔn)外設(shè)庫:取消第105行USE_STDPERIPH_DRIVER的注釋,使用標(biāo)準(zhǔn)外設(shè)庫,我們使用stm32f10x_conf.h文件來配置使用到的外設(shè)庫。

2.工程配置

打開工程->Project -> Options for Target -> C/C++,在該選項(xiàng)預(yù)定義里面添加STM32F10X_MD,USE_STDPERIPH_DRIVER這兩個(gè)宏定義即可。

注意:兩種方法用一種即可。效果圖如下:


Ⅲ、配置系統(tǒng)滴答時(shí)鐘

系統(tǒng)的運(yùn)行離不開系統(tǒng)滴答,就像我前面說過的:系統(tǒng)滴答的作用,就是驅(qū)動(dòng)整個(gè)系統(tǒng)工作的心臟,如果沒有了它,就等于人沒有了心跳。

1.初始化滴答

我們使用ST的滴答SysTick來配置作為操作系統(tǒng)的滴答時(shí)鐘,芯片SysTick是屬于內(nèi)核(Cortex-M3)的一部分,所以,在初始化的時(shí)候是調(diào)用CM3里面的源代碼(SysTick_Config函數(shù))。

這里說明一下,只要使用Cortex-M3內(nèi)核的芯片都有這個(gè)功能,可以說SysTick是專門為系統(tǒng)而設(shè)計(jì)的。


系統(tǒng)滴答配置如上圖,位于app_cfg.c源文件下面。



2.滴答中斷配置

中斷函數(shù)需要調(diào)用系統(tǒng)相關(guān)的函數(shù),也就是系統(tǒng)進(jìn)行滴答相關(guān)的函數(shù),這里是規(guī)定這么調(diào)用的。


Ⅳ、裁剪系統(tǒng)(配置os_cfg.h)

對(duì)于我們常說的系統(tǒng)可裁剪,其實(shí)就是對(duì)系統(tǒng)某些功能打開和關(guān)閉,使用到的功能才打開,不使用的功能就關(guān)閉(即使能和失能),這個(gè)文件就集中在os_cfg.h文件里面。

這里先說一下重要的幾個(gè)選項(xiàng):

1.最低優(yōu)先級(jí)OS_LOWEST_PRIO

這個(gè)與我們配置任務(wù)優(yōu)先級(jí)有關(guān)系,最低優(yōu)先級(jí)任務(wù)配置的最大值。我們所說的任務(wù)優(yōu)先級(jí)關(guān)系是:優(yōu)先級(jí)越小,數(shù)值越大; 相反,優(yōu)先級(jí)越大,數(shù)值越小。

位于os_cfg.h文件第39行:

#define OS_LOWEST_PRIO 63

2.系統(tǒng)每秒滴答數(shù)OS_TICKS_PER_SEC

這個(gè)宏定義的意思就是說,系統(tǒng)每秒鐘滴答多少次,它與系統(tǒng)延時(shí)(OSTimeDly)關(guān)系比較重要,我們的例子中OS_TICKS_PER_SEC等于100,調(diào)用OSTimeDly(100);相當(dāng)于的延時(shí)100個(gè)滴答,即延時(shí)1秒的意思。

位于os_cfg.h文件第51行:

#define OS_TICKS_PER_SEC 100

3.任務(wù)堆棧大小OS_TASK_xxx_STK_SIZE

這個(gè)幾個(gè)宏定義在使用相應(yīng)功能的時(shí)候有用,如果RAM資源有限,這個(gè)任務(wù)堆棧的大小最好根據(jù)任務(wù)來評(píng)估一下,資源有限時(shí)不要太大,當(dāng)然也不能小于程序正常運(yùn)行。

位于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.其他

還有很多與系統(tǒng)其他資源相關(guān)的配置,正常的情況下是需要的時(shí)候才開啟,不用盡量關(guān)閉。一是節(jié)約資源,二是減少編譯時(shí)間。后期我會(huì)將中文注釋在后面。

Ⅴ、下載

我將移植完成,建立了3個(gè)簡(jiǎn)單任務(wù)的例程放在360云盤供大家下載與參考:

https://yunpan.cn/cRIpR5bwHMCCY訪問密碼

UCOS2基于STM32F107的軟件工程包(官網(wǎng)原版):

Micrium官網(wǎng)下載地址(需要賬號(hào)):

https://www.micrium.com/download/micrium_stm32f107_ucos-ii

我360云盤下載地址:

https://yunpan.cn/cRzcf8eSacEhE訪問密碼 1235

標(biāo)準(zhǔn)外設(shè)庫:

ST官網(wǎng)下載地址(需要賬號(hào)):

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

Ⅵ、說明

相關(guān)的文章可以到我博客上查看,我也會(huì)定期更新,新內(nèi)容第一時(shí)間在微信分享。

當(dāng)你掌握UCOS在一種平臺(tái)上的移植,其他平臺(tái)移植原理類似,請(qǐng)不要局限某一平臺(tái)。

以上總結(jié)僅供參考,若有不對(duì)之處,敬請(qǐng)諒解。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉