OpenEdv-开源电子网

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

ucosiii中程序随机性卡死问题

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-2-23
在线时间
7 小时
发表于 2018-2-23 11:22:15 | 显示全部楼层 |阅读模式
5金钱
在UCOSIII下,程序运行一段时间后随机性的卡死,由于卡死时间不一定,进行仿真,仿真结果有2种,(目前发现的)
1.全速运行的时候发现运行一段时间后,程序会停止,此时再次点击全速运行程序再次继续仿真,不知道什么导致了全速运行停止。
2.全速运行的情况下,程序会直接卡死在while循环中。


通过仿真卡死的地方有下面几个函数
CPU_IntDisMeasStart__asm void wait()
void HardFault_Handler(void)
void  OSIntEnter (void)
主要是他卡死是随机性的,找起来比较麻烦,感觉无从下手,并且不太了解都有什么情况能够导致其卡死。目前还在找方法,请大神解答。


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

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2018-2-24 10:50:14 | 显示全部楼层
这种问题就比较难查了,按照经验来说,检查一下中断处理函数,因为中断是可以打断正常的程序运行的,检查中断处理函数里面是否用到了还没初始化的一些变量,重点是指针类的变量。再就是检查任务堆栈大小是否过小,启动文件里面的栈大小是不是太小了
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-2-23
在线时间
7 小时
 楼主| 发表于 2018-2-24 16:23:36 | 显示全部楼层
本帖最后由 Comeit 于 2018-2-24 16:26 编辑
zuozhongkai 发表于 2018-2-24 10:50
这种问题就比较难查了,按照经验来说,检查一下中断处理函数,因为中断是可以打断正常的程序运行的,检查中 ...

最近仿真了几次,基本上是半天才出现卡死状况,两次都卡死在void HardFault_Handler(void)硬错误中,
还有你说的中断没有初始化的变量是指初始化为0吗
任务堆栈我在文件生成的htm文件中查看了,按照那个最大深度 设置了一下。
启动文件栈大小400 堆200  ,
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2018-2-23
在线时间
7 小时
 楼主| 发表于 2018-3-1 19:30:39 | 显示全部楼层
最近查看了一下,发现了如下新问题:
在定时器中断中,我屏蔽了两个读取IO口状态的函数,程序卡死情况没有发生,如果打开两个IO口读取状态,程序随机性卡死,换了两个IO口,依旧如此。
我怀疑是不是中断堆栈的大小超出限制?有遇见过这种情况的大神帮忙,急。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 17:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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