最近在做一个产品二代升级的项目,代码是上一任工程师留下的,很多BUG,而且融合了HAL库和LL库,以及github上下载的GSM源码,很不好用。

我这边是将2G模块换成了4G,且添加了单独的BLE模块。因此只在源码的基础上,去除2G和BLE代码部分,添加新的4G和BLE代码。

整个freeRTOS工程项目创建了4个task任务。

我是先修改了BLE任务,修改完毕后运行正常;然后一步一步添加新的4G任务代码。发现只添加4G初始化代码,4个任务都正常,但是添加业务功能代码的时候,4个任务都卡死了(一运行就立即卡死)。

解决方法:

1.先查看代码是否在任务调度开始前调用了系统延时函数,最后调查结果正常。

2.其次开始屏蔽4G业务代码运行,看看屏蔽哪里会使任务正常,最后发现在操作某个数组(即使是printf打印数据)的时候,导致4个任务全卡死,该数组为局部变量。

3.经过查找,发现在该任务之外的c文件中,定义了一个同名的全局数组。将该数组更改后,目前4个任务都能正常运行。

后续:

1.正常运行一段时间后,任务再次全部卡死。(有待解决)

解决方法:

1.单独运行4G任务,正常。

2.进行单步调试,发现是HardFault_Handler错误。找到出错的地方,尝试把函数里的局部变量数组改成全局变量,修改后程序正常。(好像是函数可重入的问题,但是我感觉不像,应该是堆栈溢出造成的,但是我的堆栈已经设置的很大了,有人知道答案的话请评论告诉我,谢谢)

最新更新:

1.今日闲来无事,重新阅读freeRTOS系统文档,总结出上述问题的原因:每个任务都有自己的堆栈(我是使用静态方法创建的task),由于我在任务属性初始化的时候分配的堆栈较小,而任务局部变量占用的内存过大,导致出错。(我在第二步修改的堆栈是单片机总堆栈大小,而非任务堆栈)

freeRTOS出现任务卡死的情况。相关推荐

  1. 关于使用KEIL下载STM32时下载到一半卡死的情况

    关于使用KEIL下载STM32时下载到一半卡死的情况 描述情况 这几天焊接并下载STM32,发现一个情况,下载到一半或者没到一半停住了,如下图1所示,过了一会儿会报错. 这种情况是在下载的时候出现的, ...

  2. 【解决objection框架对于多进程app卡死的情况】

    解决objection框架对于多进程app卡死的情况 欢迎使用Markdown编辑器 解决办法 欢迎使用Markdown编辑器 在使用objection hook 多进程app 的时候,可能会卡死,比 ...

  3. vue3.0中echarts实现中图地图的省份切换,并解决多次切换后地图卡死的情况

    一.echarts安装及地图的准备 1.安装echarts npm install echarts 2.下载china.js等json文件到项目中的文件夹 map的下载链接:https://pan.b ...

  4. 大量Ajax同步请求,出现浏览器页面假死,而Loading图标卡死的情况

    最近做了一个功能,需要大量删除数据,但是只能从前台一条一条调用API删除(客户的奇怪要求). 同时在删除的过程中,我写了一个Loading的图标,用于展示删除的progress(就是删除了百分之多少的 ...

  5. nfs服务端服务停掉,导致的客户端访问挂载目录卡死的情况

    为什么80%的码农都做不了架构师?>>>    环境描述: A 机器(192.168.1.201), B机器上挂载了A机器上的storage目录 到本机的storage目录(命令: ...

  6. 关于element框架的el-image点击后,页面出现卡死等情况的解决方式

    当el-image标签被添加时,页面的body就会自动添加style属性 所以我们绑定一个点击事件删除样式就可以了 <el-image style="width: 100px; hei ...

  7. 遇到maven私服下载过慢或者卡死的情况

    maven能够下载出来,则表示路径没有错.之所以下载慢,是因为下载的服务器的原因,可能是因为大多数jar包都是国外的,比较难下载,可以使用下面这几个仓库,或者建立一个maven私服. 1.将D:\ap ...

  8. 金山毒霸的一个bug导致windows启动很多expoloer经常卡死的情况

    在这个安全软件横行的年代,各种免费,各种捆绑.都说对方很流氓,但是流氓,你也让我们老百姓有的活才行啊. 好长时间没有写博文了,今天写一点来喷一下金山毒霸.因为我实在是忍无可忍了.... 先来图已经论坛 ...

  9. Word页面设置点击“确定”后出现卡死情况

    问题 今天在修改Word时候需要对页面设置,但当点击"确定"后,出现程序卡死的情况,及整个程序在下面这个页面上很长时间,并且软件重启或者电脑重启都无法解决. 解决 考虑到之前Wor ...

最新文章

  1. linux系统重装后挂载数据盘,Linux重装系统后如何重新挂载数据盘?
  2. Java 9 揭秘(16. 虚拟机栈遍历)
  3. HDU - 6315 Naive Operations(线段树+思维)
  4. 算法训练营07-递归使用练习
  5. Cookie详解整理
  6. linux 下使用 curl post
  7. appium + python 搭建
  8. MATLAB调用C/C++函数的方法
  9. HDU_3786 找出直系亲属- softbar
  10. 数据结构-线性表之用队列实现栈用栈实现队列
  11. 【mybatis】mybatis中 if test=等于的条件怎么写
  12. mysql动态变量查询_使用php变量创建动态mysql查询
  13. 网页多种资源下载插件
  14. 【原创】VBA学习笔记(313)VBA字典相关:遍历字典,用key查item, 用item查key的方法
  15. idea 去掉author波浪线
  16. 34岁程序员面试美团被拒绝:只招30岁以下,卖力能加班工资又少的
  17. Android音乐播放器(高分课设)
  18. Date.getTime() 方法
  19. Gvim,Vim编辑器快速学习介绍
  20. 3G移动网络,给WAP带来什么?

热门文章

  1. 〖Python 数据库开发实战 - MySQL篇⑥〗- 利用 PyCharm 链接 MySQL 实现数据库可视化
  2. 刁生富:《重估:人工智能与人的生存》
  3. 世界上没有哪一份工作是不受气的,哪怕是老板,也会有受气的时候
  4. 零基础 Python学习
  5. 模板语言(VTL):入门
  6. Python编程:从入门到实践——列表简介(第三章+课后答案)
  7. 幂等性问题和解决方法
  8. LORA智能巡检手持机|无线数据采集终端
  9. LIO-SAM中的scan_to_map原理剖析
  10. 树莓派打造无线扫描仪.