初级会员
- 积分
- 74
- 金钱
- 74
- 注册时间
- 2015-8-2
- 在线时间
- 16 小时
|
5金钱
今天移植了一下2.86版本的ucosii到 RC;出现问题了
在对移植需要修改的文件改完了之后,在main.C里面 创建开始任务,代码如下
static void start_task(void *p_arg)
{
systick_init(); /* Initialize the SysTick. ??????????????*/
p_arg=p_arg;
OS_ENTER_CRITICAL(); //关中断
OSTaskCreate(led_task, (void *)0,
(OS_STK *)&LED_Task_STK[LED_STK_Size-1],
LED_Task_PRIO); //
OSTaskSuspend(Start_Task_PRIO);
OS_EXIT_CRITICAL(); //开中断
}
加粗这两句就报错了,提示..\User\app.c(75): error: #20: identifier "cpu_sr" is undefined
但是我在main。c开头加上
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr;
#endif
不加开关中断,功能能实现;加了开关中断,有这个定义不会报错,也能实现功能
但我感觉这样肯定不对啊,我估计我还是哪儿配置错了,但是具体找不到,希望大神帮忙看看,谢谢了
|
最佳答案
查看完整内容[请看2#楼]
看我们的UCOS例程,调用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()之前必须声明变量cpu_sr!!!也就是语句:OS_CPU_SR cpu_sr;
|