前些天,一网友在我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-II's 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就会无法启动的。加入即可。
关键字:m0核移植 ucosii
引用地址:
关于m0核移植ucosii时遇到的问题
推荐阅读最新更新时间:2024-03-16 14:32
关于m0核移植ucosii时遇到的问题
前些天,一网友在我i店里买了关于ucosii移植时遇到的问题,起初我也只是能顺利的把ucosii移植到istm32上,然后能正常的启动起来,然后就把自己的经验挂到淘宝上分享了,结果还真有人求助。 他告诉我,他的ucosii是从官网上下载下来的,按照别人的把core.c .asm cpu.c 3个文件改好了,但是还是启动不了,我对M0并不十分了解,网友对ucosii的时钟系统也不太了解,然后我又帮他解释了一番,ucosii的系统时钟是通过系统滴答的发生1s中断产生的,。我提醒他先用定时器产生一个1s中断,然后将OSTimeTick();这个函数加到中断里去,但实际上还是有问题。接着,我让他全部注释的覅按这句话 //void
[单片机]
在STM32F中使用UCOSII如何支持低功耗模式
在不在系统的裸奔的软件中,使用RTC+STOP模式很容易实现低功耗模式,但是在UCOS之类的操作系统,实现这一模式就有点麻烦,最大的问题是任务切换是无法控制的,经常出现唤醒之后程序跑飞的情况。 首先,要把休眠的代码段放在低优先级任务中,不一定是系统自带的空闲任务,也可以是用户自定义的最低优先级的任务。 其次,在休眠代码的前后加上两个指令: //=================================================================================== OSSchedLock();//禁止任务调度 while(1) { .....//休眠代码RTC+STOP PWR_Ent
[单片机]
Stm32平台UCOSII的简单使用及注意事项
1.与UCOSII有关的几个概念:任务优先级,任务堆栈,任务控制块,任务就绪表和任务调度器 任务优先级,这个概念比较好理解, ucos 中,每个任务都有唯一的一个优先级。优先级是 任务的唯一标识。在 UCOSII 中,使用 CPU 的时候,优先级高(数值小)的任务比优先级低的 任务具有优先使用权,即任务就绪表中总是优先级最高的任务获得 CPU 使用权,只有高优先级 的任务让出 CPU 使用权(比如延时)时,低优先级的任务才能获得 CPU 使用权。 UCOSII 不支 持多个任务优先级相同,也就是每个任务的优先级必须不一样。 任务堆栈,就是存储器中的连续存储空间。为了满足任务切换和响应中断时保存 CPU 寄存 器中
[单片机]
ucosii移植到STM32-F0/F1/F2
用到的资源是: A、ST公司提供:STM32F10x开发标准库V3.5 B、实验平台:战舰开发板V2.1 C、编译软件:MDK3.8 D、编辑软件:Source Insight_V3.5 E、RTOS:ucosii_V2.92 F、实验现象设计:红灯亮灭各800ms,绿色灯亮灭各300ms 一、获取源码 这个可以百度下载,我们论坛也是有很多的源码工程的,官网可以在这里下载 http://micrium.com/downloadcenter/micrium-source-code/ 我移植的是2.92版本 二、获取ucosii源码文件 解压下载下来的压缩包,看到如下的文件目录结构 红色框框就是ucosii源码文件夹
[单片机]