關(guān)于m0核移植ucosii時(shí)遇到的問(wèn)題
他告訴我,他的ucosii是從官網(wǎng)上下載下來(lái)的,按照別人的把core.c .asm cpu.c 3個(gè)文件改好了,但是還是啟動(dòng)不了,我對(duì)M0并不十分了解,網(wǎng)友對(duì)ucosii的時(shí)鐘系統(tǒng)也不太了解,然后我又幫他解釋了一番,ucosii的系統(tǒng)時(shí)鐘是通過(guò)系統(tǒng)滴答的發(fā)生1s中斷產(chǎn)生的,。我提醒他先用定時(shí)器產(chǎn)生一個(gè)1s中斷,然后將OSTimeTick();這個(gè)函數(shù)加到中斷里去,但實(shí)際上還是有問(wèn)題。接著,我讓他全部注釋的覅按這句話
本文引用地址:http://m.butianyuan.cn/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()這樣寫(xiě)
{
OS_CPU_SR cpu_sr;
OS_ENTER_CRITICAL();
OSTimeTick();
OSIntExit();
}
這就是我剛才說(shuō)的 系統(tǒng)1S中斷產(chǎn)生的回調(diào)函數(shù)。
但是系統(tǒng)會(huì)卡在啟動(dòng)代碼.s里如圖
這個(gè)問(wèn)題是因?yàn)樵趩?dòng)代碼 里沒(méi)有加入 os_cpu_handlaer的啟動(dòng)函數(shù),否則os 系統(tǒng)也就是ucosii就會(huì)無(wú)法啟動(dòng)的。加入即可。
評(píng)論