【GreenHills】GHS-Point导致的调试HardFault错误

2024-06-13 12:36

本文主要是介绍【GreenHills】GHS-Point导致的调试HardFault错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【更多软件使用问题请点击亿道电子官方网站】

1、 文档背景

该客户使用的IDE为S32 Design Studio for ARM ,使用的编译器为GHS compiler,调试器为PE。

客户在使用Ceil函数进行函数调用时,编译可以正常通过,但调试无法成功运行。

并且出现下方错误信息:

UsageFault: The processor has attempted to execute an undefined instruction.

HardFault: A fault has been escalated to a hard fault.

处理器试图执行一个未定义的指令。

HardFault:已升级为硬故障。

2、软硬件环境

1)、软件版本:S32 Design Studio for ARM 2.2

2)、电脑环境:Windows 11

3)、外设硬件:PE

3、解决步骤

1)、原厂建议使用“-fsoft and then -fsingle”,查看GHS编译选项,

"Floating-Point Mode"设置为:"Hardware Single, Software Double"后尝试调试,该硬件报错依旧存在。

图3-1

注:

Hardware Single, Software Double (-fsingle) 用于单精度操作的硬件浮点模式,用于双精度操作的软件浮点模式。与-hard相同的处理器支持此设置。对于Cortex-M4F,默认开启-fsingle。

Software Emulation (-fsoft)  SFP (Software floating-point)模式。此设置使目标使用整数寄存器来保存浮点数据,并使用库子例程调用来模拟浮点操作。对于没有FPU的目标,这是默认设置。如果目标有一个FPU,这个设置选择一组不同的浮点库。

2)、查看汇编语言出现vcmp.64调用,并且函数执行到该地址时出现故障,同步修改配置选择。

图3-2

3)、将 “Floating-Point Coprocessor Version”同步设置为“VFP v5, 32 Double Registers”,设置完成后程序运行成功。无vcmp.64调用。

图3-3

注:

VFP v5, 32 Double Registers (-fpu=vfpv5) VFP v5, 32双寄存器(-fpu=vfpv5)使用VFP指令集的v5版本指定硬件浮点数,具有32个双精度浮点寄存器。

————————————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

关于亿道电子

亿道电子技术有限公司(www.emdoor.cn)是国内资深的研发工具软件提供商,公司成立于2002年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。

这篇关于【GreenHills】GHS-Point导致的调试HardFault错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1057314

相关文章

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

SpringBoot3匹配Mybatis3的错误与解决方案

《SpringBoot3匹配Mybatis3的错误与解决方案》文章指出SpringBoot3与MyBatis3兼容性问题,因未更新MyBatis-Plus依赖至SpringBoot3专用坐标,导致类冲... 目录SpringBoot3匹配MyBATis3的错误与解决mybatis在SpringBoot3如果

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译