初级会员
- 积分
- 63
- 金钱
- 63
- 注册时间
- 2017-5-26
- 在线时间
- 18 小时
|
10金钱
MCU是STM32F413,移植的ucosII,程序创建了4个任务,有一个和触摸屏通讯任务,串口232通讯方式。在只开启两个任务(另两个屏蔽),一个触摸屏任务,一个只运行LED,这种情况下,在操作触摸屏(实际是有读写,串口中断方式发送和接收),通讯数据量50字节以内,这种情况下,未出现死机(进入HardFault_Handler)。但当把另两个任务开启,(都为CAN通讯),任务之间有信号量的传递以及数据锁。当操作触摸屏时,(读写数据,字节少于50),程序会死掉,按照网上的进入HardFault_Handler解决方法跟踪到是死在OS_Sched,当屏蔽掉写触摸屏的部分代码,程序不会毕现的死掉。偶尔死掉也是在切换页面(读写触摸屏,或者读写其他串口)。在中断中都有调用OSIntEnter();OSIntEnter();(由于外部晶振没有,使用的是内部晶振。)
尝试过更改任务优先级,更改任务延时时间(实际这块也不是很会设置),更改任务的堆栈大小(改到4096)都失败。
此问题困扰几天,不知有没有遇到相似问题的朋友或者是这方面的大神、原子哥不吝赐教,谢谢了!!!
|
|