上篇寫到ucosiii的移植,由於移植的是教程寫好的檔案到開發板,沒發現到一些問題。今天移植到另乙個開發板的時候出現系統卡死在osstarthighrdy()函式的問題。現在就再次分析一下移植過程。
我們將rct6開發板上的ucosiii移植到c8t6的板子上時,會發現系統一直沒有啟動,led沒用閃爍。通過單步除錯,我們可以發現系統卡在osstarthighrdy()函式裡。
通過分析,猜測是systick_handler沒有啟動,導致任務優先順序切換失敗。
通過查閱資料,發現移植ucosiii過程中,我們需要將啟動檔案的函式名修改,以關聯ucos核心檔案的函式,這是關鍵。
然後,我們把對應的啟動檔案搜尋pendsv_handler和systick_handler,並將它們對應修改為os_cpu_pendsvhandler和os_cpu_systickhandler即可。
到這裡,就完成了啟動檔案和核心檔案的函式關聯。
這就解決了系統卡死在osstarthighrdy()函式的問題。
UCOSIII 移植筆記(一)
這篇博文為本人ucosiii移植筆記第一篇 先說一下ucosiii micrium在2009年推出了ucosiii,相對於之前的ucosii版本,在效能上有了進一步的提公升,主要是支援時間片輪排程,極短的關中斷事件等。可剝奪多工管理 什麼是可剝奪多工管理呢?查相關資料,意思就是這個系統總是在執行當前...
UCOSIII入門 移植驗證
include sys.h include delay.h include usart.h include led.h include includes.h define start task prio 3 define start stk size 512 cpu stk start task s...
UCOSIII中系統時鐘的移植
freertos的 寫得真的像是一坨坨的 我一點看的慾望都沒有。相比之下,ucosiii的 寫得就好看多了,我看著看著就看回了ucosiii,今天我重點看了移植部分與滴答定時器有關的內容,下面我就來表達一下我是如何理解這個部分內容的,本篇文章主要分為如下兩個部分 systick 是一 個 24 位的...