欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

:ucos-ii s3c2440 串口的中断接收有关问题

更新时间: 2014-01-05 03:08:34 责任编辑: Author_N1

 

求救:UCOS-II S3C2440 串口的中断接收问题
UCOS-II移植在S3C2440上,只多任务运行没有问题(有时候程序会跑飞)。
去掉操作系统,中断收串口(来自另一块单片机的数据),也没问题。
在操作系统下,中断收串口,程序就运行不了多任务,只是中断接收串口数据37个后,程序飞掉。
程序结构如下:
main{
  板子初始化;
  OSinit();
  创建主任务maintask;
  ostaskstart();
}
maintask{
  进入临界区;
   中断初始化:初始化timer0做系统心跳,开启timer0和uart2中断;
 退出临界区;
  创建其他任务;
  while(1)
    打印;
    delay();
}
我算是初学吧,菜鸟一枚,汇编部分也不太懂,我是在ADS上调试的,在这问题漩涡中很久中,希望大侠拔刀相助。
--参考方法--
不知道你的问题在哪里,用中断就不能多任务了吗?这是必然的啊。
不要在中断中增加任何可能耗时长的操作,比如打印LOG,写FLASH什么的。
中断过程中CPU被独占,自然不能多任务了啊。
--参考方法--
UCOS-II移植在S3C2440上,只多任务运行没有问题(有时候程序会跑飞)。
去掉操作系统,中断收串口(来自另一块单片机的数据),也没问题。
在操作系统下,中断收串口,程序就运行不了多任务,只是中断接收串口数据37个后,程序飞掉。

先搞定跑飞的问题,做到不论什么时候都不跑飞

中断中出现任务飞的情况,在排除了移植问题

那就可以查中断自身的处理问题,比如有没有正确的按照系统使用中断的方式,有没有使用系统提供的安全的通信机制

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:08:34
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/18773/
本文WWW.DOC100.NET DOC100.NET版权所有。