uC OS III移植後發現程式停在空閒任務出不來

2021-10-03 21:33:27 字數 693 閱讀 7008

cpu_int32u  cpu_clk_freq;

cpu_int32u cnts;

cpu_clk_freq =

bsp_cpu_clkfreq()

;//獲取 cpu 核心時鐘頻率(systick 工作時鐘)

cnts = cpu_clk_freq /

(cpu_int32u

)oscfg_tickrate_hz;

//根據使用者設定的時鐘節拍頻率計算 systick 定時器的計數值

os_cpu_systickinit

(cnts)

;//呼叫 systick 初始化函式,設定定時器計數值和啟動定時器

這裡還是因為太過粗心了,因為是看的正點原子的程式,他們又將systemtick的初始化放在了他們自己的delay.c檔案裡面,而我剛開始移植為了不報錯重複定義終端服務函式就注釋了delay_init(),就導致了錯誤的發生。

事後仔細閱讀了一下正點原子給的delay相關函式,發現還是挺不錯的,相比較ucos自帶的延時還增加了不使用阻塞的延時方法,具體就是那個delay_us函式,這在我們自己初始化硬體的時候是很方便的,比如說在初始化某個spi裝置時等待匯流排訊號跳變,就會很精確並且不會被別的任務排程打斷。

uCOSIII移植補充

上篇寫到ucosiii的移植,由於移植的是教程寫好的檔案到開發板,沒發現到一些問題。今天移植到另乙個開發板的時候出現系統卡死在osstarthighrdy 函式的問題。現在就再次分析一下移植過程。我們將rct6開發板上的ucosiii移植到c8t6的板子上時,會發現系統一直沒有啟動,led沒用閃爍。...

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...