OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9257|回复: 8

mini板uC/OS-II控制LED亮灭实验中test.c里的OS_ENTER_CRITICAL()函数在哪里定义的呢?有人知道不?

[复制链接]

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
发表于 2013-3-9 10:53:21 | 显示全部楼层 |阅读模式

 //起始任务
void TaskStart(void * pdata)
{
 pdata = pdata;
// OS_ENTER_CRITICAL();//这个函数注销程序也能运行,奇怪的是这函数居然不知道在哪里定义的!
 //创建任务1  
 OSTaskCreate(TaskLed0, (void *)0, (OS_STK *)&TASK_LED0_STK[LED0_STK_SIZE-1], LED0_TASK_Prio);
 //创建任务2
 OSTaskCreate(TaskLed1, (void *)0, (OS_STK *)&TASK_LED1_STK[LED1_STK_SIZE-1], LED1_TASK_Prio);
 OSTaskSuspend(START_TASK_Prio); //挂起但未删除
 OS_EXIT_CRITICAL();
}
///////////////////////////////////////////////////////////////////////////////////////
//:若将此函数里的OS_ENTER_CRITICAL()注销掉则程序不能正常运行!
//系统时钟中断服务函数
void SysTick_Handler(void)
{
    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  */
}

乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2013-3-9 11:09:11 | 显示全部楼层
看来KEIL还没会用,编译下,右键,goto 定义 就可以了
回复 支持 反对

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2012-6-5
在线时间
0 小时
发表于 2013-3-9 12:33:50 | 显示全部楼层
首先,OS_ENTER_CRITICAL()不是函数,而是uC/OS-ii的一个宏
其次,楼主Keil用的真的不太熟练啊。
要多看资料啊。。。
回复 支持 反对

使用道具 举报

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
 楼主| 发表于 2013-3-9 15:26:31 | 显示全部楼层
Oh!My god!我被楼上二位深度误解了啊,我KEIL还是会用的啊,你们看看 这是右键后go to definition的结果:


 
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
回复 支持 反对

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2013-3-9 15:35:18 | 显示全部楼层
回复【4楼】可乐虎:
---------------------------------
我没坑你,你可以直接使用原子战舰版的OS例程试试看,事实证明可行~
回复 支持 反对

使用道具 举报

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
 楼主| 发表于 2013-3-9 15:45:25 | 显示全部楼层
回复【5楼】tian123chi:
---------------------------------
我用的 mini板哦!可就是不行啊    怎么解释啊?
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
回复 支持 反对

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2013-3-9 16:24:28 | 显示全部楼层
回复【6楼】可乐虎:
---------------------------------
MINI板我也看过了 用reference 就可以了
回复 支持 反对

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2013-3-9 16:55:38 | 显示全部楼层


 上面绿色字体写着 看OS_cpu_a。asm   
回复 支持 反对

使用道具 举报

86

主题

417

帖子

0

精华

高级会员

Rank: 4

积分
781
金钱
781
注册时间
2013-2-20
在线时间
0 小时
 楼主| 发表于 2013-3-9 17:38:13 | 显示全部楼层
谢谢tian123chi 。搞定了!

原来 OS_ENTER_CRITICAL()这个函数是个汇编代码函数啊,看来keil的右键goto……功能只能找到C语言函数,对汇编就失效了啊!
 
乐于思考,敢于请教;问人不累,诲人不倦!本人CSDN博客:http://blog.csdn.net/dcx1205 学习嵌入式的同学不要错过啊!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-23 10:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表