解决FreeRTOS程序跑不起来,打印调试却提示“Error:..\FreeRTOS\port\RVDS\ARM_CM3\port.c,244“的方法

这篇具有很好参考价值的文章主要介绍了解决FreeRTOS程序跑不起来,打印调试却提示“Error:..\FreeRTOS\port\RVDS\ARM_CM3\port.c,244“的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

今天来分享一个不会造成程序编译报错,但会使程序一直跑不起来,并且通过调试会发现有输出错误提示的错误例子分析,话不多说,我们就直接开始分析~

首先,我们说过这个例子在编译时候没有明示的错误提示,也可以说没有语法和逻辑之类的错误,应该是程序哪里写的有不规范的地方造成的。我们先来分析一下当时的情况~

错误发现

当时发现程序跑不起来,依然是从LED呼吸灯看出来的,然后通过debug来一步一步锁定错误,并且配合串口调试信息输出来查看断言。发现程序一开始是进行下去的了,然后发现执行到一个函数的时候,程序就跑飞了。发现此时调试窗口输出提示:“Error:…\FreeRTOS\port\RVDS\ARM_CM3\port.c,244”。如下图所示:
解决FreeRTOS程序跑不起来,打印调试却提示“Error:..\FreeRTOS\port\RVDS\ARM_CM3\port.c,244“的方法,FreeRTOS,嵌入式,arm开发,经验分享,嵌入式,FreeRTOS,单片机

同时通过行数发现是这句断言产生的调试信息,configASSERT( uxCriticalNesting == ~0UL );,可以从以下代码看出,程序是执行了任务退出错误的函数,那为什么会执行到该函数呢?我们就回退到进入该函数前,看看程序在干什么?代码完整输出如下:

static void prvTaskExitError( void )
{
	/* A function that implements a task must not exit or attempt to return to
	its caller as there is nothing to return to.  If a task wants to exit it
	should instead call vTaskDelete( NULL ).

	Artificially force an assert() to be triggered if configASSERT() is
	defined, then stop here so application writers can catch the error. */
	configASSERT( uxCriticalNesting == ~0UL );   //错误提示这句
	portDISABLE_INTERRUPTS();
	for( ;; );
}

错误原因

我们回退回去发现,当时进入函数前程序在执行一个任务,执行完之后就进入到那个函数去,仔细看了一遍,发现原来是那个任务忘记添加了while,导致你还没有调度,那个任务就退出来了,所以才会提示你任务退出有错误

解决方法

知道了错误原因,解决这个错误也就很简单了,只需要将相应的while加上去即可~

这个错误可能在大家刚开始使用freertos时候最容易遇到,大家学习时候看例子可能都会想到这个while,但是有时候自己去写一个任务时候,可能就会忘记添加上去,就有可能会有这个情况出现。

所以有时候细心还是很重要的,这里分享出来也是希望帮助到有同样情况的小伙伴。

好了,今天分享就到这里了。

本人水平有限,上述信息仅供学习参考,如有错误和不妥之处,请多多指教。
另外创作不易,请勿抄袭,如果有帮助到大家的话希望大家可以点个赞和收藏,谢谢~文章来源地址https://www.toymoban.com/news/detail-679801.html

到了这里,关于解决FreeRTOS程序跑不起来,打印调试却提示“Error:..\FreeRTOS\port\RVDS\ARM_CM3\port.c,244“的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VS创建项目提示error MSB4018: “VCMessage”任务意外失败。 解决方法

    1------ 已启动生成: 项目: QtWidgetsApplication1, 配置: Release x64 ------ 1C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.Cpp.Platform.targets(57,5): error MSB4018: “VCMessage”任务意外失败。 1C:Program Files (x86)MSBuildMicrosoft.Cppv4.0V140Microsoft.Cpp.Platform.targets(57,5): error MSB4018: System.FormatException

    2024年02月15日
    浏览(83)
  • Nodejs 安装之后cmd 输入npm -v 提示error的问题解决

    安装时候选择:   卸载nodejs   删除安装路径下的node_modules, 重新安装   按照下面的选择 

    2024年02月15日
    浏览(49)
  • 手机连电脑,adb调试出现error :device not found问题解决方案

    一.先检查USB偏好设置是否设置成“文件传输”,如是,下一步 二.usb调试未打开 1.打开手机设置-关于手机-版本号,连续点击版本号,直到提示进入开发者模式 2.设置里找到开发者选项,打开usb调试,出现弹框显示“允许USB调试吗,这条计算机RSA密钥指纹如下”,勾选即可,

    2024年02月13日
    浏览(131)
  • FPGA:调试报错Error:add_1 must be in range [-1,DEPTH-1]解决办法和调试思路

    在进行FPGA调试的过程中,进行行为仿真,能观察设计的逻辑是否正确,通常情况下需要进行run all的运行,这样才能看到信号在运行过程中的状态, 在调试的过程中遇到如下的报错: 用的是vivado 2019.1联合modelism 10.7进行的仿真过程,用vivado内置的仿真也是同样的报错信息,建

    2024年02月15日
    浏览(88)
  • Git删除分支不成功,提示:error: Cannot delete branch......的问题解决

    一 问题来源       本地的代码仓库里面,有很多分支,随着项目的不断迭代,这样的分支变得越来越多。于是想把这样的分支给删掉,在删除分支的时候,报错: error: Cannot delete branch \\\'\\\' checked out at \\\'/Users/GoProject/src/code ,对应的提示如下: 二 解决问题       首先需要说

    2024年02月12日
    浏览(54)
  • 解决:Python3.7版本安装pyinstaller一直失败,报错提示“error: subprocess-exited-with-error”

    Python3.7版本安装pyinstaller一直失败解决!无论是直接pip install pyinstaller还是指定pyinstaller各种版本安装,又或者pycharm进行安装也是失败,再就是重装PIP,还把pyinstaller的wheel文件下载到本地进行安装,总之试了各种方法都无效,折腾了好久。 pip install pyinstaller报错如下: error:

    2023年04月08日
    浏览(50)
  • Keil 提示error C231: ‘INT0‘: redefinition的原因及其解决方法

    redefinition 中文意思是 “重复定义” 。纵览我所写的程序,只有此处首次出现 INT0。既然说我是重复定义,说明被引用到文件里已经定义 INT0。OK,我只包含 reg51.h 头文件,只有找它了。 reg51.h 头文件已经使用 INT0 了。 将自己写的 INT0 改成其他名字。(不要改头文件里的 INT0)

    2024年02月11日
    浏览(46)
  • elementuiplus设置scroll-to-error之后 提示被遮挡的解决方案

    普通的头部固定,中间滑动的布局,中间内容有表单,提交校验不通过时滚动到第一个错误项 elementuiplus的scroll-to-error设置之后是局部滚动 当头部内容层级高于中间表单的时候,错误会被遮挡。 总结:正确的思想指导正确的行动 分析问题背后的原因,再采取正确的方式解决

    2024年02月11日
    浏览(41)
  • selenium 使用chrome_driver自动化操作Google浏览器,调试的时候没有提示,但是编译后就提示一些错误的解决方法

    使用chrome_driver自动化操作Google浏览器,调试的时候没有提示,但是编译后就提示一些错误的解决方法: 1、提示  ERROR:ssl_client_socket_impl.cc(975)] handshake failed; returned -1, SSL error code 1, net_error -101: 添加: 2、提示  USB: usb_device_win.cc:95 Failed to read descriptors from \\\\?usb#vid_0e8dpid_201d

    2024年02月04日
    浏览(54)
  • 解决npm install下载不下来包依赖,提示:An unknown git error occurred

    将git上的项目拉到本地之后,进行npm i的时候发现下载不下来包依赖,并提示:An unknown git error occurred,如图所示: 解决办法: 1、使用下面的命令,把地址里的 ​​ssh://git@​​​ 换成 ​​https://​​ git config --global url.“https://”.insteadOf ssh://git@ 2、重新npm i 就可以了 npm i 如

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包