分享一個朋友的人工智能教程,零基礎!通俗易懂!但願你也加入到人工智能的隊伍中來!html
http://www.captainbed.net/strongerhuang微信
Ⅰ、概述app
該文寫針對初學µC/OS的朋友,基於如下平臺來一步一步移植µC/OS嵌入式操做系統。UCOS移植相關平臺:函數
系統平臺:µC/OS-II (最新V2.92版)動畫
硬件平臺:STM32F1 (適合F1因此係列)網站
開發平臺:Keil(MDK-ARM) V5 ui
1.爲何是µC/OS-II?人工智能
緣由在於µC/OS-II是一個比較成熟、穩定的系統,與µC/OS-III比較有些機制相對簡單不少。當你掌握了µC/OS-II,µC/OS-III很容易就理解了。spa
2.爲何是STM32F1?操作系統
硬件平臺是在移植的過程當中比較重要的一點,也就是說,不一樣的硬件平臺,移植過程當中的端口(uCOS-II\Ports下源文件)存在必定的差別性。
可是同一內核的芯片,在系統移植的過程當中基本上相似,也就是說,你掌握這一種內核(如:Cortex-M3),你移植相關的芯片就很容易了。
還有就是,你掌握了移植的原理,無論在什麼芯片上移植你都會以爲不是那麼難,筆者在5一、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官網下載地址(須要帳號):
我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.提取工程中有用的文件
咱們主要提取EvalBoards和uCOS-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)還在分享STM八、STM3二、Keil、IAR、FreeRTOS、UCOS、RT-Thread、CANOpen、Modbus…等更多精彩內容,若是想查看更多內容,能夠關注個人微信公衆號。