C51编程:老古,我想你对 RTX 一定很熟悉吧。请帮忙看一下这个程序。
#include <reg52.h>
#include <rtx51tny.h>
void Init(void) _task_ 0
{
os_create_task(1);
os_create_task(2);
os_delete_task(0);
}
void CommonTask(unsigned char ch) reentrant
{
P3=ch;
}
void Task1(void) _task_ 1
{
for(;;)
{
EA=0;
CommonTask('1');
EA=1;
}
}
void Task2(void) _task_ 2
{
for(;;)
{
EA=0;
CommonTask('2');
EA=1;
}
}
/// 运行一段时间之后总是跑飞,不知何故。也许RTX-Tiny不允许任务调用公共函数?
/// 可是如果把 CommonTask 的 reentrant 属性去掉,又能正常运行了。难道在
/// RTX-Tiny 中不允许任务调用可重入函数?那就太可笑了。
/// 只在软件模拟器上运行过。未经硬件验证。
发表时间:2001年12月4日13:14:00