日韩中文在线观看-欧美性综合-伊人视频在线观看-亚洲免费在线视频观看-国产偷人视频-人妻丰满熟妇岳av无码区hd-国产一级淫片a视频免费观看-国产精品交换-国产精品1区2区3区4区-美女日批视频在线观看-欧美日韩一区二区三区自拍

【Grennhills】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個雙精度浮點寄存器。

主站蜘蛛池模板: 南丰县| 阿鲁科尔沁旗| 佳木斯市| 澄江县| 荣昌县| 都兰县| 吴忠市| 贡觉县| 滕州市| 拉萨市| 广丰县| 枣庄市| 体育| 钟祥市| 红安县| 宝清县| 鄂尔多斯市| 杭锦旗| 农安县| 海淀区| 潞城市| 葫芦岛市| 饶平县| 临沭县| 冀州市| 广饶县| 开平市| 龙江县| 衡南县| 禄丰县| 富宁县| 和平区| 台南市| 清河县| 罗平县| 衢州市| 钟山县| 嘉鱼县| 满洲里市| 买车| 永仁县|