新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 關(guān)于m0核移植ucosii時遇到的問題

關(guān)于m0核移植ucosii時遇到的問題

作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
前些天,一網(wǎng)友在我i店里買了關(guān)于ucosii移植時遇到的問題,起初我也只是能順利的把ucosii移植到istm32上,然后能正常的啟動起來,然后就把自己的經(jīng)驗掛到淘寶上分享了,結(jié)果還真有人求助。

他告訴我,他的ucosii是從官網(wǎng)上下載下來的,按照別人的把core.c .asm cpu.c 3個文件改好了,但是還是啟動不了,我對M0并不十分了解,網(wǎng)友對ucosii的時鐘系統(tǒng)也不太了解,然后我又幫他解釋了一番,ucosii的系統(tǒng)時鐘是通過系統(tǒng)滴答的發(fā)生1s中斷產(chǎn)生的,。我提醒他先用定時器產(chǎn)生一個1s中斷,然后將OSTimeTick();這個函數(shù)加到中斷里去,但實際上還是有問題。接著,我讓他全部注釋的覅按這句話

本文引用地址:http://2s4d.com/article/201611/322261.htm

//void OS_CPU_SysTickHandler (void)
//{
// OS_CPU_SR cpu_sr;


// OS_ENTER_CRITICAL(); /* Tell uC/OS-II that we are starting an ISR */
// OSIntNesting++;
// OS_EXIT_CRITICAL();

// OSTimeTick(); /* Call uC/OS-IIs OSTimeTick() */

// OSIntExit(); /* Tell uC/OS-II that we are leaving the ISR */
//}

并在 SysTick_handler()這樣寫

{

OS_CPU_SR cpu_sr;

OS_ENTER_CRITICAL();

OSTimeTick();

OSIntExit();

}

這就是我剛才說的 系統(tǒng)1S中斷產(chǎn)生的回調(diào)函數(shù)。

但是系統(tǒng)會卡在啟動代碼.s里如圖

這個問題是因為在啟動代碼 里沒有加入 os_cpu_handlaer的啟動函數(shù),否則os 系統(tǒng)也就是ucosii就會無法啟動的。加入即可。



關(guān)鍵詞: m0核移植ucosi

評論


技術(shù)專區(qū)

關(guān)閉