麻豆一区二区三区蜜桃免费_中文字幕Va一区二区三区 _国产成人综合久久二区_丰满多毛的大隂户毛茸茸_国产麻豆剧果冻传媒免费老狼_无码人妻精品一区二区三区久久久 _亚洲中文无码精品卡通_蜜臀亚洲AV永久无码精品老司机

【GreenHills】S32DS調(diào)用GHS編譯器設(shè)置Float Point

1、 文檔目標

記錄S32 DS中如何設(shè)置Float Point,以及分析其不同設(shè)置的區(qū)別。


2、 問題場景

客戶之前使用浮點型函數(shù)并不了解如何在S32DS中設(shè)置Float Point以及相關(guān)設(shè)置具有如何影響,并且部分客戶使用S32DS去調(diào)用GHS的編譯器進行使用,節(jié)約授權(quán)的占用率。


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

1)、軟件版本:Mutil 8.14

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

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


4、解決方法

1)、打開S32DS,選中項目點擊右鍵,選中“Properties”,進入設(shè)置界面。

圖4-1

2)、進入“Properties for test”,選擇“C/C++Build” -->"Settings"-->"Target"-->"Floating-Point",在<Floating-Point Mode>框內(nèi),選擇相應(yīng)的浮點模式進行使用。

圖4-2

3)、Floating-Point Mode

指示應(yīng)該使用軟件、硬件還是兩者的組合來計算浮點運算。此選項還允許您完全禁用浮點操作。此選項允許的設(shè)置為:

No Floating-Point (-fnone):禁止所有浮點操作。除了在沒有FPU的處理器上使用之外,如果您試圖最小化程序大小,這個設(shè)置也可能是合適的。要理解其中的原因,請考慮-fnone對程序編譯的兩個主要影響。


1. 首先,C和c++編譯器對任何浮點變量或常量的使用都會給出錯誤。這將大大減少諸如printfscanf之類的庫函數(shù)的大小。

2. 其次,編譯器將傳遞-D__NoFloat__以允許源代碼和頭文件隱藏對浮點對象的引用。


注意:與浮點操作相關(guān)的代碼可以鏈接到可執(zhí)行文件中,即使它不使用浮點變量。排除這些代碼可以導(dǎo)致程序大小的額外顯著減少。最后,由于此設(shè)置需要系統(tǒng)庫和頭文件的支持,因此對于使用具有自己的C或c++頭文件和庫的嵌入式操作系統(tǒng)的環(huán)境不支持此設(shè)置。其他目標可能使用特定于目標的頭文件,這些頭文件需要使用浮點類型。該設(shè)置意味著-no_float_scanf。


VFP Hardware Coprocessor (-fhard):硬件浮點(HFP)模式。此設(shè)置使目標將浮點數(shù)據(jù)存儲在浮點寄存器中,并使用浮點指令執(zhí)行浮點操作。這與軟件模擬的浮點模式(參見下面的-fsoft)形成對比。HFP模式使用ARM VFP協(xié)處理器,僅支持v5或更高的體系結(jié)構(gòu)。要識別默認使用-fhard的處理器,請參見“ARM處理器變體”下的第二個表。對于Cortex-A和Cortex-R52處理器,- hard還提供了對NEON協(xié)處理器的支持。


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


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


【更多軟件使用問題請站內(nèi)搜索或關(guān)注B站:億道電子查看視頻教學(xué)】