0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UCOS2_STM32移植詳細(xì)過程 (一)

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-04-07 11:49 ? 次閱讀

Ⅰ、概述

該文寫針對初學(xué)μC/OS的朋友,基于以下平臺來一步一步移植μC/OS嵌入式操作系統(tǒng)。UCOS移植相關(guān)平臺:

系統(tǒng)平臺:μC/OS-II(最新V2.92版)

硬件平臺:STM32F1(適合F1所以系列)

開發(fā)平臺:Keil(MDK-ARM) V5

1.為什么是μC/OS-II?

原因在于μC/OS-II是一個比較成熟、穩(wěn)定的系統(tǒng),與μC/OS-III比較有些機(jī)制相對簡單很多。當(dāng)你掌握了μC/OS-II,μC/OS-III很容易就理解了。

2.為什么是STM32F1?

硬件平臺是在移植的過程中比較重要的一點(diǎn),也就是說,不同的硬件平臺,移植過程中的端口uCOS-II\Ports下源文件)存在一定的差異性。

但是同一內(nèi)核的芯片,在系統(tǒng)移植的過程中基本上類似,也就是說,你掌握這一種內(nèi)核(如:Cortex-M3),你移植相關(guān)的芯片就很容易了。

還有就是,你掌握了移植的原理,不管在什么芯片上移植你都會覺得不是那么難,筆者在51、430、ST等眾多芯片上移植過μC/OS,問題都不是很大,只要用心,相信都會沒問題。

3.為什么是MDK-ARMV5?

這里沒什么好說的,個人愛好,喜歡使用最新的開發(fā)平臺。其他平臺(如:IAR)與系統(tǒng)軟件關(guān)聯(lián)性不是很大,你也可以試著用其他平臺進(jìn)行移植。

筆者將“UCOS移植詳細(xì)過程”分為多篇文章來講述,敬請關(guān)注。

關(guān)于本文的詳情請往下看(微信請點(diǎn)擊“閱讀原文”查看內(nèi)容鏈接內(nèi)容)。

本著免費(fèi)分享的原則,方便大家手機(jī)學(xué)習(xí)知識,定期在微信平臺分享技術(shù)知識。如果你覺得分享的內(nèi)容對你有用,又想了解更多相關(guān)的文章,請用微信搜索“EmbeddDeveloper”或者掃描下面二維碼、關(guān)注,將有更多精彩內(nèi)容等著你。

Ⅱ、關(guān)于μC/OS

μC/OS-II是Micrium公司開發(fā)的一套嵌入式實(shí)時操作系統(tǒng),應(yīng)用非常廣泛(工業(yè)、醫(yī)療、航天等)。μC/OS-II具有裁剪性(配置資源多少)和高度的移植性,所以很受嵌入式開發(fā)工程師的追捧。

μC/OS總共有三大版本(μCOS、μCOS-II和μCOS-III),這三個版本也存在很多差異,該文主要針對初學(xué)者,因此圍繞μC/OS-II來講解。它們之間的差異對比可以參看相關(guān)文檔(uCOS-III用戶指導(dǎo)手冊)。

https://yunpan.cn/cRU7gefa6gcma訪問密碼 8c7d

Ⅲ、準(zhǔn)備工作

1.μC/OS軟件工程包下載

μC/OS-II可以在Micrium官網(wǎng)下載(需要賬號),也可以到我360云盤下載。

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

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

我360云盤下載地址(定期更新):

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

Micrium官網(wǎng)下載流程圖:

2.ST標(biāo)準(zhǔn)外設(shè)庫

Micrium官網(wǎng)下載的軟件是使用比較老的ST標(biāo)準(zhǔn)外設(shè)庫,這里我們下載最新的外設(shè)庫。

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

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

ST官網(wǎng)下載流程圖:

3.MDK-ARM下載與安裝

該環(huán)節(jié)我在我的其他文章中已經(jīng)詳細(xì)講述過,請參考我的另外一篇文章:

http://blog.csdn.net/ybhuangfugui/article/details/51647893

Keil官網(wǎng)下載地址(需要賬號):

https://www.keil.com/demo/eval/arm.htm

我360云盤下載地址(定期更新):

https://yunpan.cn/cPYaeY23RSsbb訪問密碼 9aba

Ⅳ、移植過程(文件描述與提取)

1.軟件工程文件夾描述

從Micrium官網(wǎng)下載的軟件工程包解壓之后會發(fā)現(xiàn)里面有許多源程序文件,其實(shí)對于初學(xué)者來說,里面有很多文件都不會使用的。這里我們以下載的軟件包“Micrium_uC-Eval-STM32F107_uCOS-II.zip”解壓來說明一下里面的文件。

EvalBoards:評估(開發(fā))板相關(guān)文件;主要是配置底層和系統(tǒng),我們會提取部分有效文件。

uC-CPU:CPU相關(guān)文件;我們使用ST標(biāo)準(zhǔn)外設(shè)庫配置一些模塊,不使用該文件夾下文件。

uC-LIB:這個是Micrium官方的庫,初學(xué)者這里也不使用。

uCOS-II:這個文件夾才是關(guān)鍵,我們移植的內(nèi)容基本上就是這里的文件。

2.提取工程中有用的文件

我們主要提取EvalBoards和uCOS-II下文件。


app_cfg.h是應(yīng)用配置的文件(如:任務(wù)優(yōu)先級、堆棧大小等)。

os_cfg.h是系統(tǒng)配置的文件(使能相應(yīng)功能函數(shù),也就是所謂的裁剪系統(tǒng))。

將這兩個文件提取至我們自己新建工程app文件夾下。


Ports是與系統(tǒng)息息相關(guān)的端口配置文件。

Source這個不用說了,就是OS全部文件。

拷貝整個uCOS-II文件夾(里面)到我們工程。

3.提取ST標(biāo)準(zhǔn)外設(shè)庫有用的文件

Micrium官網(wǎng)下載的軟件工程包也是使用標(biāo)準(zhǔn)外設(shè)庫建立的工程,但那是老版本的標(biāo)準(zhǔn)外設(shè)庫,因此,我們需要使用ST官網(wǎng)最新的標(biāo)準(zhǔn)外設(shè)庫。

提取的文件過程我不在描述,最后我會提供下載鏈接供大家下載。

4.整合提取的文件

Micrium官網(wǎng)下載的文件 + ST下載標(biāo)準(zhǔn)外設(shè)庫 + 提取整合

= UCOS2_STM32F1_ProjectTemplate(提取文件),如下圖:


可以在我360云盤下載整合提取的文件:

https://yunpan.cn/cRz7TxwWex9Wc訪問密碼 70f4

Ⅴ、移植過程(新建工程及文件)

1.新建工程

新建Keil軟件工程及其工程的配置這里就不在多說,可以參考我的另外一篇文章:

http://blog.csdn.net/ybhuangfugui/article/details/51510482

配置的時候需要將uCOS-II下的文件添加到工程,同時也需要將他們的路徑配置好。

如下動畫:

2.新建、修改文件

工程建好之后,還需要新建一些文件(main.c、 bsp.c、 bsp.h、 app_cfg.c、 app_task.c、 app_task.h等)。同時,還需要修改某些文件,修改的這些文件是移植過程的重點(diǎn),我將在下一篇文章進(jìn)行總結(jié)。

我將新建好的工程和源代碼整理打包供大家下載(注意:沒有修改源代碼,暫時編譯通不過)。

360云盤下載(新建工程、文件):

https://yunpan.cn/cRpHh6CTYQavV訪問密碼 cc34

Ⅵ、說明

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10858

    瀏覽量

    354391
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    376

    瀏覽量

    28098
  • 嵌入式操作系統(tǒng)

    關(guān)注

    1

    文章

    118

    瀏覽量

    31498
  • ucos2
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    3553
收藏 人收藏

    評論

    相關(guān)推薦

    基于機(jī)智云移植STM32L496G代碼移植

    代碼詳解-機(jī)智云(gizwits.com)在移植過程中遇到的些問題,這里我將重構(gòu)下,大致內(nèi)容跟文檔差不多,但是根據(jù)文檔的操作,會產(chǎn)生
    的頭像 發(fā)表于 09-20 08:05 ?285次閱讀
    基于機(jī)智云<b class='flag-5'>移植</b><b class='flag-5'>STM32</b>L496G代碼<b class='flag-5'>移植</b>

    【GD32 MCU 移植教程】9、從 STM32F10x 系列移植到 GD32F30x 系列

    對比、外設(shè)及性能對比以及從 STM32F10x 移植到 GD32F30x 的移植步驟,旨在讓開發(fā)者能夠快速從STM32F10x 移植到 GD
    的頭像 發(fā)表于 09-07 09:57 ?470次閱讀
    【GD32 MCU <b class='flag-5'>移植</b>教程】9、從 <b class='flag-5'>STM32</b>F10x 系列<b class='flag-5'>移植</b>到 GD32F30x 系列

    【GD32 MCU 移植教程】8、從 STM32F4xx 系列移植到 GD32F4xx 系

    、外設(shè)及性能對比以及從 STM32F4xx 移植到 GD32F4xx 的移植步驟,旨在讓開發(fā)者能夠快速從STM32F4xx移植到 GD32F
    的頭像 發(fā)表于 09-06 09:40 ?903次閱讀
    【GD32 MCU <b class='flag-5'>移植</b>教程】8、從 <b class='flag-5'>STM32</b>F4xx 系列<b class='flag-5'>移植</b>到 GD32F4xx 系

    stm32f4跑ucos+emwin5.16 gui_init()初始化失敗的原因?

    我用stm32f4discovery 連了塊ra8875的4.3寸屏幕, ucosii已經(jīng)移植成功了,但是移植emwin5。16的時候在gui初始化的時候就會進(jìn)入 HardFault
    發(fā)表于 05-17 12:33

    STM32移植UCOS和編寫GUI程序的平臺如何建立?

    請教STM32移植UCOS和編寫GUI程序的平臺如何建立 ,需要哪些軟件,請各位大蝦、前輩指教,分享下,或推薦下教程,謝謝
    發(fā)表于 05-15 08:18

    移植LwIP+uCOS提示 errno沒有定義怎么解決 ?

    請教下,移植 LwIP+uCOS,提示 errno 沒有定義 ? 是哪里沒有配置好哇 ???
    發(fā)表于 04-23 07:21

    STM32H743的LwIP移植uCOS-III上,ETH_IRQn中斷沒有反應(yīng) 是怎么回事?

    請教下,吧 H743 的LwIP 移植uCOS-III 上,ETH_IRQn中斷沒有反應(yīng) ? 程序在 FreeRTOS 的系統(tǒng)上運(yùn)行時可以的,但就是移植uCOS-III 上就
    發(fā)表于 04-22 07:09

    請問ADuC7060能否移植uCOS II嵌入式操作系統(tǒng)?

    我想問下ADuC7060能否移植uCOS II嵌入式操作系統(tǒng)?
    發(fā)表于 01-15 06:59

    stm32必須要移植系統(tǒng)嗎

    電子等。在使用STM32進(jìn)行開發(fā)時,是否需要進(jìn)行系統(tǒng)移植個常見的問題。 系統(tǒng)移植是指將操作系統(tǒng)或者驅(qū)動程序從個硬件平臺
    的頭像 發(fā)表于 01-08 14:17 ?802次閱讀

    stm32移植ucos iii教程

    μC/OS-III是個實(shí)時操作系統(tǒng),廣泛應(yīng)用于嵌入式系統(tǒng)開發(fā)中。在STM32系列微控制器上移植μC/OS-III可以充分發(fā)揮其實(shí)時性和多任務(wù)處理能力。本篇文章將為您提供個詳實(shí)、細(xì)致
    的頭像 發(fā)表于 01-02 16:29 ?1328次閱讀

    移植 SBSFU 到 STM32G070 的過程

    電子發(fā)燒友網(wǎng)站提供《移植 SBSFU 到 STM32G070 的過程.pdf》資料免費(fèi)下載
    發(fā)表于 12-18 11:04 ?4次下載
    <b class='flag-5'>移植</b> SBSFU 到 <b class='flag-5'>STM32</b>G070 的<b class='flag-5'>過程</b>

    實(shí)戰(zhàn)經(jīng)驗(yàn) | 移植 SBSFU 到 STM32G070 的過程

    講解這個移植過程。 02 基于STM32G070和STM32G071的SBSFU 實(shí)現(xiàn)差異 在正式講解之前,我們首先來看
    的頭像 發(fā)表于 12-08 18:20 ?816次閱讀

    stm32啟動過程詳解

    的啟動過程。本文將詳細(xì)介紹STM32的啟動過程、復(fù)位電路 對于STM32微控制器來說,復(fù)位
    的頭像 發(fā)表于 12-08 15:47 ?1478次閱讀

    STM32移植而引發(fā)的兩個小疑問

    STM32用戶將基于STM32F0芯片的代碼移植STM32F4系列時遇到了些麻煩。其中有個問題跟中斷處理有關(guān)。有個中斷服務(wù)程序代碼在STM32
    的頭像 發(fā)表于 11-18 14:12 ?1083次閱讀
    因<b class='flag-5'>STM32</b><b class='flag-5'>移植</b>而引發(fā)的兩個小疑問

    RT-thread源碼移植STM32F10x和STM32F4xx

    RT-thread源碼移植STM32F10x和STM32F4xx: 、源碼下載 點(diǎn)擊入門->下載 ? 在歷史版本里邊隨便選取個 ? 會
    的頭像 發(fā)表于 11-15 09:38 ?2368次閱讀
    RT-thread源碼<b class='flag-5'>移植</b>到<b class='flag-5'>STM32</b>F10x和<b class='flag-5'>STM32</b>F4xx