LPC1768运行threadx数组越界导致出现硬件错误死机问题的排查

news2025/1/19 23:27:06

移植了threadx后运行发现程序莫名跑飞,停留在 HardFaultHandler 即硬件错误异常
在这里插入图片描述调试过程中发现在汇编启动文件启动后跳转main函数即刻就发生了错误异常,先排除是在操作系统运行过程中的问题,而且是硬件错误异常所以先对导致改错误的可能进行排查,考虑到和产生硬件错误异常相关的几种可能1.数组越界操作 2.内存溢出,访问越界 3.堆栈溢出,程序跑飞 4.中断处理错误;先是修改了启动文件中的栈大小,于事无补后可能存在数组越界访问查看定义的全局变量中的数组,修改了线程字节池大小最终操作系统能正常启动。
对于编译生成的各个段大小进行分析:
在这里插入图片描述这段信息是一个程序的大小分析报告,通常在编译或链接过程中生成,用于显示程序的代码和数据段在存储器中所占用的大小。下面对每个部分的含义进行解释:

Code=61200: 这表示代码段(程序的可执行指令)的大小为 61200 字节。代码段包含程序的实际执行代码,包括函数、指令和逻辑。这个数值表示程序的机器指令数量。

RO-data=5960: 这表示只读数据段的大小为 5960 字节。只读数据段包含程序中的常量数据,如字符串、常数等,这些数据在程序运行期间不可修改。

RW-data=1196: 这表示读写数据段的大小为 1196 字节。读写数据段包含在程序运行时可以被修改的数据,如全局变量、静态变量等。

ZI-data=69024: 这表示零初始化数据段的大小为 69024 字节。零初始化数据段包含了在程序运行时需要被初始化为零值的变量。

这些数字表示了不同数据段在存储器中的大小,用字节(Bytes)为单位。这些信息对于了解程序在存储器中的占用情况以及可能需要的存储器容量非常有用。通常情况下,程序的大小分析报告还会包括其他信息,如栈大小、堆大小等,以帮助开发人员进行存储器管理和优化。
需要的RAM为(1196+69024)/1024=68.57KByte
在这里插入图片描述而查阅了LPC1768的RAM只有64K导致了,排查程序中的数组发现字节池数组中的值为[60*1024],可能会导致数组越界问题
在这里插入图片描述

修改大小后发现ZI段只有二十几KByte了

linking...
Program Size: Code=61200 RO-data=5944 RW-data=1196 ZI-data=28060  
FromELF: creating hex file...
"..\Output\threadx.axf" - 0 Error(s), 3 Warning(s).
Build Time Elapsed:  00:00:04

运行正常。
所以这个算是一个比较典型的数组越界导致的死机问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/925773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ENSP操作平台命令汇总一(第五课)

一 Ensp基础指令操作 1 ipconfig 查看 pc机的IP地址2 ping 连接的IP地址 3 system-view 进入系统视图4 [Huawei]interface GigabitEthernet 0/0/1 进入接口视图 过0/0/15 quit 返回上一层视图6 ctrlZ 快速返回用户视图7 [sy]sysname tedu-ntd-lswl 进入系统视…

Java --- 内部类

目录 一、什么是内部类 二、为什么需要内部类 三、内部类的分类 3.1、成员内部类 3.2、局部内部类 四、练习 一、什么是内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类(InnerClass),类B则称为外部类&#…

SQL 错误 [22007]: ERROR: invalid input syntax for type date: ““

0. 背景 PG数据库一张表有这样一个varchar类型的字段end_date,存储的值是格式化后的年月日日期如 2024-08-10 现在我需要根据当前日期与end_date的差值作为where条件过滤,我的写法 select …… from my_table_name where current_date - cast (end_date as date) >100报错…

苹果“迎难而上”,印度赚印度花,扩大产能,推动手机制造业发展

根据报道,苹果公司在由印度当地媒体 Business Today 报道的会议中表示,他们计划扩大在印度的生产产能。这也进一步显示了苹果对印度市场的重视程度。 据统计数据显示,印度已成为苹果第五大iPhone市场,其市场营收超越了法国和德国&…

React绑定antd输入框,点击清空或者确定按钮实现清空输入框内容

其实实现原理和vue的双向绑定是一样的,就是监听输入框的onChange事件,绑定value值,当输入框内容发生变化后,就重新设置这个value值。 示例代码:我这里是统一在handleCancel这个函数里面处理清空逻辑了,你们…

再写CentOS7升级OpenSSL-1.0.1U

本文在CentOS7.4以及TencentOS 2.4上测试通过。 原系统自带OpenSSL 1.0.2k-fips。 编译安装方法跟之前的没啥区别。 从官网下载1.0.1u版https://www.openssl.org/source/ 使用tar解包 tar xfz openssl-1.0.1u.tar.gz 依次执行如下: cd openssl-1.0.1u ./con…

pdf转ppt软件哪个好用?推荐一个好用的pdf转ppt软件

在日常工作和学习中,我们经常会遇到需要将PDF文件转换为PPT格式的情况。PDF格式的文件通常用于展示和保留文档的原始格式,而PPT格式则更适合用于演示和展示。为了满足这一需求,许多软件提供了PDF转PPT的功能,使我们能够方便地将PD…

成都优优聚做美团代运营还有市场吗?

成都优优聚公司是一家专注于美团代运营的企业。作为美团的第三方代运营商,公司致力于帮助商家提升线上形象,提高销售额,实现转型升级。在与美团合作的多年间,公司已积累了丰富的经验和优秀的专业团队。 作为一个代运营商&#xff…

VK0192是标准LCD显示面板/液晶显示屏驱动芯片(IC)-24SEG×8COM

产品品牌:永嘉微电/VINKA 产品型号:VK0192 封装形式:LQFP44 概述 VK0192是一个点阵式存储映射的LCD驱动器,可支持最大192点(24SEGx8COM) 的LCD屏。单片机可通过3/4线串行接口配置显示参数和发送显示数据…

恢复照片软件,记好这几个,照片恢复很简单!

“我真的很喜欢拍摄各种各样的照片,然后在电脑上进行修图。但是吧!我比较马虎,在挑选照片时经常会误删一些很好看的照片。真的很需要一款专门恢复照片的软件,想问问有什么好的推荐吗?” 无意中删除了重要的照片真的会让…

GE 8920-PS-DC安全模块

安全控制: 这个安全模块通常用于实现工业自动化系统中的安全控制功能。它可以监测各种安全参数,如机器运动、温度、压力等,以确保系统在安全范围内运行。 PLC兼容性: 通常,这种安全模块可以与可编程逻辑控制器&#x…

Cesium 使用 Entity 绘制点线面

文章目录 一、绘制点1. 第一种2. 第二种 二、绘制面三、绘制线四、移除 Entity <!--* Author: HuKang* Date: 2023-08-18 11:06:43* LastEditTime: 2023-08-25 09:16:59* LastEditors: HuKang* Description: program-c* FilePath: \global-data-display\src\views\program-c…

图像读取、显示与保存

一、图像读取 二、图像显示 namedWindow(const String &winname, int flags WINDOW_AUTOSIZE) imshow(const String &winname, InputArray mat) 三、图像保存 #include <opencv2/opencv.hpp> //the basic building blocks of the library #include <…

黑客炼成手册

一、什么是网络安全&#xff1f;什么是黑客&#xff1f; 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等…

Nature重大突破:科学家成功完成Y染色体测序,标志着人类基因组的完整解读

这张扫描电子显微镜图像显示了一对连接的Y染色体&#xff08;右&#xff09;与一对连接的X染色体相比&#xff0c;在细胞分裂前期时重复的Y染色体&#xff08;右&#xff09;小了多少。图片来源&#xff1a;BIOPHOTO ASSOCIATES/SCIENCE SOURCE 长期以来&#xff0c;Y染色体的全…

Hugo快速创建和发布网站

你应该先阅读Windows上安装Hugo的环境。 我们使用PowerShell运行下面的Hugo命令。 1 创建网站 我们在文档下面创建一个名为MyHugoSite的目录结构&#xff1a; cd Documents hugo new site MyHugoSite cd MyHugoSite提示告诉我们有关主题的获取方式、文件的添加和站点的构建。…

uni.uploadFile上传 PHP接收不到

开始这样&#xff0c;后端$file $request->file(file);接收不到 数据跑到param中去了 去掉Content-Type&#xff0c;就能接收到了 param只剩下

maven可用的插件列表

maven可用的插件列表&#xff1a;https://maven.apache.org/plugins/ 在插件列表页面找到自己想要了解的插件&#xff0c;点击进去&#xff0c;可以看到插件的详细信息&#xff0c;例如这个插件有哪些goals&#xff0c;goal的参数、用法、样例等&#xff0c;还是很有用的。 B…

Python支持下最新Noah-MP陆面模式站点、区域模拟及可视化分析技术

查看原文>>> Python支持下最新Noah-MP陆面模式站点、区域模拟及可视化分析技术 熟悉陆表过程的主要研究内容以及陆面模型在生态水文研究中的地位和作用&#xff1b;深入理解Noah-MP 5.0模型的原理&#xff0c;掌握Noah-MP模型&#xff08;2023年最新发布的5.0版本&am…

【云卓笔记】mavlink java文件

根据飞控提供的xml文件来生成的 生成的就是这样的java文件 准备工作: Mavlink协议生成 参考 1.安装mavlink : 使用MAVLink工具的要求是 Python 3.3 (recommended) or Python 2.7 Python future模块 (可选) PythonTklnter模块(如果需要使用图形用户界面)。 环境变量PYTHO…