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