UCOS2_STM32F1移植詳細過程(一)


 

推薦

 

 分享一個朋友的人工智能教程,零基礎!通俗易懂!希望你也加入到人工智能的隊伍中來!

 

http://www.captainbed.net/strongerhuang

 

 

Ⅰ、概述

該文寫針對初學µC/OS的朋友,基於以下平台來一步一步移植µC/OS嵌入式操作系統。UCOS移植相關平台:

系統平台:µC/OS-II  (最新V2.92版)

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

開發平台:Keil(MDK-ARM) V5 

 

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

原因在於µC/OS-II是一個比較成熟、穩定的系統,與µC/OS-III比較有些機制相對簡單很多。當你掌握了µC/OS-II,µC/OS-III很容易就理解了。

 

2.為什么是STM32F1?

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

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

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

 

3.為什么是MDK-ARM V5?

這里沒什么好說的,個人愛好,喜歡使用最新的開發平台。其他平台(如:IAR)與系統軟件關聯性不是很大,你也可以試着用其他平台進行移植。

 

筆者將“UCOS移植詳細過程”分為多篇文章來講述,敬請關注。

關於本文的詳情請往下看(微信請點擊“閱讀原文”查看內容鏈接內容)。

 

Ⅱ、關於µC/OS

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

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

 

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

 

 

Ⅲ、准備工作

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

µC/OS-II可以在Micrium官網下載(需要賬號),也可以到我360雲盤下載。

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

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

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

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

 

Micrium官網下載流程圖:

 

2.ST標准外設庫

Micrium官網下載的軟件是使用比較老的ST標准外設庫,這里我們下載最新的外設庫。

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

 

ST官網下載流程圖:

 

3.MDK-ARM下載與安裝

該環節我在我的其他文章中已經詳細講述過,請參考我的另外一篇文章:

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

 

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

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

 

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

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

 

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

1.軟件工程文件夾描述

從Micrium官網下載的軟件工程包解壓之后會發現里面有許多源程序文件,其實對於初學者來說,里面有很多文件都不會使用的。這里我們以下載的軟件包“Micrium_uC-Eval-STM32F107_uCOS-II.zip”解壓來說明一下里面的文件。

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

uC-CPU:CPU相關文件;我們使用ST標准外設庫配置一些模塊,不使用該文件夾下文件。

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

uCOS-II:這個文件夾才是關鍵,我們移植的內容基本上就是這里的文件。

 

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

我們主要提取EvalBoardsuCOS-II下文件。

app_cfg.h是應用配置的文件(如:任務優先級、堆棧大小等)。

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

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

 

Ports是與系統息息相關的端口配置文件。

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

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

 

3.提取ST標准外設庫有用的文件

Micrium官網下載的軟件工程包也是使用標准外設庫建立的工程,但那是老版本的標准外設庫,因此,我們需要使用ST官網最新的標准外設庫。

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

 

4.整合提取的文件

Micrium官網下載的文件 + ST下載標准外設庫 + 提取整合

= 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等)。同時,還需要修改某些文件,修改的這些文件是移植過程的重點,我將在下一篇文章進行總結

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

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

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

 

Ⅵ、說明

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

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

 

Ⅶ、最后

 

我的網站:https://www.strongerhuang.com

我的知乎:https://www.zhihu.com/people/strongerHuang.com

 

我的微信公眾號(ID:strongerHuang)還在分享STM8、STM32、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus…等更多精彩內容,如果想查看更多內容,可以關注我的微信公眾號。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM