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

【Grennhills】GHS-Point導(dǎo)致的調(diào)試HardFault錯(cuò)誤

1、 文檔背景

該客戶使用的IDE為S32 Design Studio for ARM ,使用的編譯器為GHS compiler,調(diào)試器為PE。

客戶在使用Ceil函數(shù)進(jìn)行函數(shù)調(diào)用時(shí),編譯可以正常通過,但調(diào)試無法成功運(yùn)行。

并且出現(xiàn)下方錯(cuò)誤信息:

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

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

處理器試圖執(zhí)行一個(gè)未定義的指令。

HardFault:已升級為硬故障。


2、軟硬件環(huán)境

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

2)、電腦環(huán)境:Windows 11

3)、外設(shè)硬件:PE


3、解決步驟

1)、原廠建議使用“-fsoft and then -fsingle”,查看GHS編譯選項(xiàng),

"Floating-Point Mode"設(shè)置為:"Hardware Single, Software Double"后嘗試調(diào)試,該硬件報(bào)錯(cuò)依舊存在。


圖3-1

注:

Hardware Single, Software Double (-fsingle) 用于單精度操作的硬件浮點(diǎn)模式,用于雙精度操作的軟件浮點(diǎn)模式。與-hard相同的處理器支持此設(shè)置。對于Cortex-M4F,默認(rèn)開啟-fsingle。

Software Emulation (-fsoft) SFP (Software floating-point)模式。此設(shè)置使目標(biāo)使用整數(shù)寄存器來保存浮點(diǎn)數(shù)據(jù),并使用庫子例程調(diào)用來模擬浮點(diǎn)操作。對于沒有FPU的目標(biāo),這是默認(rèn)設(shè)置。如果目標(biāo)有一個(gè)FPU,這個(gè)設(shè)置選擇一組不同的浮點(diǎn)庫。


2)、查看匯編語言出現(xiàn)vcmp.64調(diào)用,并且函數(shù)執(zhí)行到該地址時(shí)出現(xiàn)故障,同步修改配置選擇。

圖3-2

3)、將 “Floating-Point Coprocessor Version”同步設(shè)置為“VFP v5, 32 Double Registers”,設(shè)置完成后程序運(yùn)行成功。無vcmp.64調(diào)用。

圖3-3

注:

VFP v5, 32 Double Registers (-fpu=vfpv5) VFP v5, 32雙寄存器(-fpu=vfpv5)使用VFP指令集的v5版本指定硬件浮點(diǎn)數(shù),具有32個(gè)雙精度浮點(diǎn)寄存器。

主站蜘蛛池模板: 奉化市| 平舆县| 长顺县| 吐鲁番市| 礼泉县| 平舆县| 古蔺县| 龙南县| 嘉定区| 雷州市| 固始县| 新龙县| 昭通市| 湛江市| 洞头县| 白河县| 芦溪县| 兴义市| 南乐县| 天柱县| 武安市| 新建县| 奉化市| 北辰区| 尉犁县| 贵定县| 九江县| 漳州市| 津南区| 陈巴尔虎旗| 云林县| 连南| 汨罗市| 北川| 永川市| 安岳县| 江山市| 新平| 来凤县| 塘沽区| 孟州市|