导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→移植uc/os中OSTimeDly函数的问题,急!

* 95457: 移植uc/os中OSTimeDly函数的问题,急!

   leonner 
leonner发表的帖子 

 移植uc/os中OSTimeDly函数的问题,急!
我在44b0x开发板上移植uc/os时遇到一个问题,测试代码如下:task1调用OSTimeDly后就死了,不能再次进入运行状态了,是不是时间调度出问题了,只要程序中没有OSTimeDly之类的时间调度函数,程序都没有问题,只有在task2中加入OSTimeDlyResume后,task1才能再次运行

#include "../SOURCE/includes.h"               // uC/OS interface
#include "../inc/44blib.h"
#include "../inc/def.h"
#include "../inc/44b.h" 

// allocate memory for tasks' stacks 
#ifdef SEMIHOSTED
#define STACKSIZE (64+SEMIHOSTED_STACK_NEEDS)
#else
#define STACKSIZE 256
#endif
OS_STK Stack1[STACKSIZE]= {0, };
OS_STK Stack2[STACKSIZE]= {0, };

void Task1(void *Id)
{
 while(1) {
  Uart_Printf("I am task1\n");
  OSTimeDly(OS_TICKS_PER_SEC);
  Uart_Printf("I am task2\n");
  OSTimeDly(200);
 }
}

void Task2(void *Id)
{
 for(;;){
  Led_Display(2);
  Delay(1000);
  Led_Display(4);
  Delay(1000);
 }
}

int Main(int argc, char **argv)
{
 char Id1 = '1';
 char Id2 = '2';
 OSInit();
 OSTaskCreate(Task1, (void *)&Id1, (OS_STK *)&Stack1[STACKSIZE - 1], 5);
 OSTaskCreate(Task2, (void *)&Id2, (OS_STK *)&Stack2[STACKSIZE - 1],10);
 OSStart();
 return 0;


发表时间:2006年7月8日7:43:05

  
回复该帖

本主题共有 3 帖,分页:>>>>>该主题的所有内容[3]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  95496.[详细]OS时钟的计数源选择对吗
摘要:觉得你应该看看你的计数源选择对了吗,或许是计数器工作了,但是没有脉冲输入,永远也达不到你要的定时宽度.......(98字)
- [raker][929次] 2006年7月10日

  95584.[详细]会不会是
摘要:时钟节拍和老程序不一样      比如以前是10   现在是300ms,这样你用同样的OS_TICKS_PER_SEC可能会变得超级漫长......(104字)
- [wl80382000][1009次] 2006年7月12日

[上一篇帖子]:真的没人知道原因吗?郁闷哦!以前也用DS12887做个3年来都是正常的。真的没人知道原因吗?郁闷哦!
[下一篇帖子]:请求高手帮忙测试一种IC的方法和没备急需要测试IC  PHILIPS