您现在的位置: 爱51代码网 >> 范文 >> 文章正文
UCOS-II S3C2440 串口的中断接收问题

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个后,程序飞掉。

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

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

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

好久之前的了,中断处理函数中累赘地增加了满足中断条件的判断,好像就好了,东改西改拼结果,不明白原因,

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    undefined reference timer_crea
    linux文件/usr/lib破坏了,还原后
    linux上运行system函数时,print
    Failed to open eth0
    android手机无法与eclipse或电脑
    C/C++洗牌算法源代码
    servlet技术实现用户名唯一的验证
    E-business suite system servic
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    sharepoint 2010 获取用户信息Us
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    wince5.0如何将xml文件发送到
    not syncing: Attempted to 
    打印一个单片机的开发板大概
    stm32之串口DMA接收丢数问题
    Bootloader中的哪个函数将NK
    2440外扩控制芯片硬件连接疑
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |