求救:UCOS-II S3C2440 串口的中断接收问题

lulu23260 2013-01-29 04:47:54
UCOS-II移植在S3C2440上,只多任务运行没有问题(有时候程序会跑飞)。
去掉操作系统,中断收串口(来自另一块单片机的数据),也没问题。
在操作系统下,中断收串口,程序就运行不了多任务,只是中断接收串口数据37个后,程序飞掉。
程序结构如下:
main{
板子初始化;
OSinit();
创建主任务maintask;
ostaskstart();
}
maintask{
进入临界区;
中断初始化:初始化timer0做系统心跳,开启timer0和uart2中断;
退出临界区;
创建其他任务;
while(1)
打印;
delay();
}
我算是初学吧,菜鸟一枚,汇编部分也不太懂,我是在ADS上调试的,在这问题漩涡中很久中,希望大侠拔刀相助。
...全文
370 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lulu23260 2013-06-26
  • 打赏
  • 举报
回复
好久之前的了,中断处理函数中累赘地增加了满足中断条件的判断,好像就好了,东改西改拼结果,不明白原因,
lbing7 2013-03-13
  • 打赏
  • 举报
回复
UCOS-II移植在S3C2440上,只多任务运行没有问题(有时候程序会跑飞)。 去掉操作系统,中断收串口(来自另一块单片机的数据),也没问题。 在操作系统下,中断收串口,程序就运行不了多任务,只是中断接收串口数据37个后,程序飞掉。 先搞定跑飞的问题,做到不论什么时候都不跑飞 中断中出现任务飞的情况,在排除了移植问题 那就可以查中断自身的处理问题,比如有没有正确的按照系统使用中断的方式,有没有使用系统提供的安全的通信机制
daviddb7 2013-02-01
  • 打赏
  • 举报
回复
不知道你的问题在哪里,用中断就不能多任务了吗?这是必然的啊。 不要在中断中增加任何可能耗时长的操作,比如打印LOG,写FLASH什么的。 中断过程中CPU被独占,自然不能多任务了啊。

2,432

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 其他硬件开发
社区管理员
  • 其他硬件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧