初出茅廬的小李第2篇博客之嵌入式操作系統UCOSII移植筆記

嵌入式操作系統UCOSII移植筆記

記錄學習、不斷進步、第一次嘗試邊學習邊記錄的方式進行學習,總體感覺不錯、也算是分享一下自己的學習心得吧!

看的是正點原子的教程,用的是精英版開發板,芯片是STM32F103ZET6
開發工具是Keil5 MDK

爲什麼要進行操作系統移植?

一般的嵌入式程序在51上運行的時候很少用到操作系統,不過也有用的(很少不擡槓),只有對時間要求比較高的時候纔會用到操作系統,而RTOS不是一個系統,它是一類操作系統。UCOSII也只是衆多嵌入式操作系統中的一個,還有其它的嵌入式操作系統,爲什麼我選擇學習移植它,很簡單因爲它資料多、對於初學者來說,還是先照貓畫虎吧!
其實還有一個原因,那就是畢業設計要用到操作系統的多任務管理功能,本應該上課就學會的,上課沒學會那隻能自己補嘍,話不多少,開始幹活~~

第一步、準備一份待移植的工程模板

因爲我用的是原子哥的開發板,自然就用他們送的資料啦,嵌入式點燈工程師上線啦,哈哈哈哈哈;
我選用的是:跑馬燈工程精英版

第二步、往工程模板中添加UCOSII文件

1、工程下建立UCOSII文件夾
2、文件夾裏建立三個子文件夾
3、往子文件夾裏添加相應文件
也就是把提供的Source文件夾裏面的文件放在CORE裏(UCOSII源碼)
移植好的例程裏的CONFIG文件夾裏面東西放到新建的CONFIG文件夾裏
移植好的例程裏的PORT文件夾裏面東西放到新建的PORT文件夾裏
在這裏插入圖片描述
4把自己創建的UCOSII文件添加到移植的工程目錄中去
新建三個分組
在這裏插入圖片描述
添加子文件,注意要刪掉一個ucos_ii.c,要不然會報錯的
在這裏插入圖片描述
同理添加PORT文件,注意這裏要選擇所有文件,然後只需要添加三個文件即可。
在這裏插入圖片描述
如圖,
在這裏插入圖片描述
同上,繼續添加文件
在這裏插入圖片描述
最後點擊OK!我一開始就忘記點了,結果有操作了一遍,尷尬的一批
可以發現UCOSII-CORE裏文件帶鑰匙還是帶鎖不管了,反正就是代表它是隻讀文件我們接下來可以修改文件屬性
在這裏插入圖片描述
把只讀取消掉,這樣鑰匙就沒有了。

5、添加頭文件路徑
如果現在就編譯會報錯,我的報了12個錯誤,先不管錯誤我們先去添加頭文件路徑再看看
在這裏插入圖片描述
頭文件路徑只需要添加到文件夾路徑進行了,我也不知道爲啥,反正都是這麼幹的。
接下來再次編譯還是會有錯誤,…\UCOSII\CORE\ucos_ii.h(44): error: #5: cannot open source input file “app_cfg.h”: No such file or directory
不能找到這個頭文件,我們暫時不需要這個頭文件,我們將其找到註釋掉即可;
在這裏插入圖片描述
再次編譯還有一個錯誤,提示…\OBJ\LED.axf: Error: L6200E: Symbol PendSV_Handler multiply defined (by os_cpu_a.o and stm32f10x_it.o).
在這裏插入圖片描述
這兩個文件裏都有這個函數實現,我們知道在實時操作系統中響應越快越好,所以我們保留相對底層的實現,把用C語言實現的註釋掉
在這裏插入圖片描述
好的編譯通過,繼續進行接下來的操作把sys.h裏面的使用UCOS的宏定義定義爲1,我的理解是相當於一個開關;

再次編譯發現還有一個錯誤,我滴媽呀,定時器有衝突了,還要繼續修改。我們把剛纔註釋掉的那個函數下面,還要繼續註釋掉。
在這裏插入圖片描述
現在編譯沒有問題了,但應該還不代表移植就已經成功了
在這裏插入圖片描述
由於用的是正點原子的例程文件複製的,所以這個任務堆棧函數已經實現好了,實話講這個函數具體實現什麼功能現在我也不清楚,以後深入學習再來研究源碼如何實現吧*

6、現在要編寫程序測試一下我們移植的操作系統能否正常運行

我們按照正點原子的例子進行,創建一個開始任務、一個點亮和熄滅LED0的任務、一個點亮和熄滅LED1的任務、再進行一個浮點運算的任務測試一下;最後一個是爲移植F4工程做準備的。具體如何創建我們不必糾結,後面會學到。具體如何編寫,我也不會,先照貓畫虎,比這例子粘貼一個。

CV大法好,複製一個移植好的工程,我們編譯下到開發板裏看一下效果。

7、實驗效果
兩個燈交替閃爍,串口會打印輸出浮點數據,串口如果打印出數據有問題,可能是波特率的問題,設置修改一下就好。
在這裏插入圖片描述
第一次邊記錄邊學習,感覺還是很不錯的,我前面的時候建好的分組沒有點擊OK就關掉了,要是沒有記錄筆記,估計這次移植就要失敗了,不管怎樣這個實驗成了還是比價高興的,好好學習、天天向上,初出茅廬的小李,加油!

接下來的畢設還要用這種方式,記筆記確實有點浪費時間,但是學完可以回來再看看自己是如何一步步走過來的,出問題了也好去查找,浪費點時間應該也是值得的吧!移植所需要的文件我會打包好上傳,同時我也會把我移植好的工程上傳,希望能和大家一塊進步!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章