主题 : 一个奇怪的现像 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 36323
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2011-01-14
最后登录: 2011-01-17
楼主  发表于: 2011-01-14 16:42

 一个奇怪的现像

最近往ARM9上移植了ucos-ii,发现一个怪的问题。

移植完成后,只创建两个任务,统计任务和空任务。
OSTaskIdle()中如果写成这样
for (;;) {
//OS_ENTER_CRITICAL();
OSIdleCtr++;
//OS_EXIT_CRITICAL();
//OSTaskIdleHook();
}
正常调试运行

写成这样
for (;;) {
OS_ENTER_CRITICAL();
OSIdleCtr++;
OS_EXIT_CRITICAL();
OSTaskIdleHook(); //空函数
}
就不行了

写成这样
for (;;) {
OS_ENTER_CRITICAL();
OSIdleCtr++;
OS_EXIT_CRITICAL();
OSTaskIdleHook(); //里面调用 puts("c");/*这里随便输出到串口一个字符就行*/
}
又可以了

高手帮忙分析下原因,感激涕泠

级别: 新手上路
UID: 36323
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2011-01-14
最后登录: 2011-01-17
1楼  发表于: 2011-01-14 16:45
没有使用中断嵌套,时间片为1ms,编译环境为ads1.2,最小优化