打印

ucos3程序无法切换,关于STM32F207

[复制链接]
1952|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaobq|  楼主 | 2013-10-2 09:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
从micrium官网上下载的ucos3 for STM32F207的例程,没做什么改动,就是创建了几个任务,下载到硬件平台执行,每个任务都是在创建时执行一次,后面就再也切换不到多任务,只有创建任务一个在执行。刚开始学习ucos3,请懂行的给俺指点指点,不甚感谢!使用keil MDK作为调试环境。
沙发
gaobq|  楼主 | 2013-10-2 21:47 | 只看该作者
忘了把代码上传了,补上

发电机面板_uCOS-III.part06.rar

964.21 KB

发电机面板_uCOS-III.part05.rar

2 MB

发电机面板_uCOS-III.part04.rar

2 MB

发电机面板_uCOS-III.part03.rar

2 MB

发电机面板_uCOS-III.part02.rar

2 MB

发电机面板_uCOS-III.part01.rar

2 MB

使用特权

评论回复
板凳
gaobq|  楼主 | 2013-10-2 21:47 | 只看该作者
换成IAR,这个多任务仍然不能切换,估计是哪里设置的不对

使用特权

评论回复
地板
香如故| | 2013-10-3 08:53 | 只看该作者
看了下程序,我也对ucos3不是很了解,发表下可能的问题点吧
你的任务优先级是
#define  APP_TASK_START_PRIO                             10u
#define  Task1_LEDShow_PRIO                              3u
#define  Task2_KeyAC_PRIO                                4u
#define  Task3_KeyDC24_PRIO                              5u
#define  Task4_KeyDC12_PRIO                              6u
#define  Task5_LCD_PRIO                                  7u
#define  Task6_CAN_PRIO                                  8u
#define  Task7_BreathLed_PRIO                            9u
其中task2到6都是空的,任务应该不能是空的吧,要有个无限循环才行。
由于ucos3支持轮询,你可以把优先级别都设置成3看看,能不能切换任务。
我的keil没有STM32F207这个芯片选项,不能软件仿真。你可以先把优先
级别改下测试下。呵呵

使用特权

评论回复
5
gaobq|  楼主 | 2013-10-3 10:00 | 只看该作者
我试试看,一是把所有任务都填上无线循环;二是改变优先级看看。

使用特权

评论回复
6
gaobq|  楼主 | 2013-10-3 11:22 | 只看该作者
就是任务函数写的有问题,首先必须每个任务都是无限循环,其次不能为空。问题解决,谢谢香如故

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

171

主题

824

帖子

5

粉丝