微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 关于m0核移植ucosii时遇到的问题

关于m0核移植ucosii时遇到的问题

时间:11-27 来源:互联网 点击:
前些天,一网友在我i店里买了关于ucosii移植时遇到的问题,起初我也只是能顺利的把ucosii移植到istm32上,然后能正常的启动起来,然后就把自己的经验挂到淘宝上分享了,结果还真有人求助。

他告诉我,他的ucosii是从官网上下载下来的,按照别人的把core.c .asm cpu.c 3个文件改好了,但是还是启动不了,我对M0并不十分了解,网友对ucosii的时钟系统也不太了解,然后我又帮他解释了一番,ucosii的系统时钟是通过系统滴答的发生1s中断产生的,。我提醒他先用定时器产生一个1s中断,然后将OSTimeTick();这个函数加到中断里去,但实际上还是有问题。接着,我让他全部注释的覅按这句话

//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();

}

这就是我刚才说的 系统1S中断产生的回调函数。

但是系统会卡在启动代码.s里如图

这个问题是因为在启动代码 里没有加入 os_cpu_handlaer的启动函数,否则os 系统也就是ucosii就会无法启动的。加入即可。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top