OpenEdv-开源电子网

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

ucos-ii中断发送信号量程序跑死了的问题

[复制链接]

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2015-10-11
在线时间
6 小时
发表于 2017-3-6 20:53:55 | 显示全部楼层 |阅读模式
5金钱
   请问论坛里面的前辈们还有原子哥,我在串口中断服务函数中给一个任务发送信号量,任务中请求信号量,为什么程序会跑死了呢,如果只有中断函数发送信号量或者任务请求信号量这其中一个,程序就可以正常运行。
但是两者组合到一起程序就会跑死了,晚辈试了好多种方法,实在是没招了,也想不明白为什么会出现这种
情况,还请论坛里面知道这种问题的前辈和原子哥能够不吝赐教,晚辈在这里感激不尽!

  下面贴上代码,另外信号量是已经创建了的,不是没有创建信号量导致的问题。
//这个是任务函数
void GPRS_DataAnalysis_Task (void * p_arg)
{
    INT8U err;         //返回错误码
    OS_CPU_SR cpu_sr=0;
    (void *)p_arg;
    for(;;)
    {
          OSSemPend(SemEvent_GPRSDataAnalysis,0,&err);         //请求信号量
          i++;
          if(i > 1000)
             i = 0;
          OSTimeDlyHMSM(0,0,0,10);
      }
}

//这个是中断服务程序
interrupt VectorNumber_Vsci1 void GPRS_SCI1_ISR(void)
{
     OSIntEnter();  

     SCI1StateReg = SCI1SR1;  //读取SCI1状态寄存器
     GPRSData = SCI1DRL;  //读取SCI1数据寄存器L8位

     if((SCI1StateReg & 0x20) == 0x20)   //接收数据有效
     {            
          OSSemPost(SemEvent_GPRSDataAnalysis);      //发送信号量
     }

     OSIntExit();  
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2015-10-11
在线时间
6 小时
 楼主| 发表于 2017-3-7 14:02:18 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2017-3-7 21:49:20 | 显示全部楼层
帮顶
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2015-10-11
在线时间
6 小时
 楼主| 发表于 2017-3-8 10:13:04 | 显示全部楼层

谢谢原子哥,您知道什么原因会导致这种问题吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-2 00:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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