CH32V203 TempSensor_Volt_To_Temper函數(shù)耗時

/*********************************************************************

?* @fn ? ? ?TempSensor_Volt_To_Temper

?*

?* @brief ? Internal Temperature Sensor Voltage to temperature.

?*

?* @param ? Value - Voltage Value(mv).

?*

?* @return ?Temper - Temperature Value.

?*/

s32 TempSensor_Volt_To_Temper(s32 Value)

{

? ? s32 Temper, Refer_Volt, Refer_Temper;

? ? s32 k = 43;


? ? Refer_Volt = (s32)((*(u32 *)0x1FFFF720) & 0x0000FFFF);

? ? Refer_Temper = (s32)(((*(u32 *)0x1FFFF720) >> 16) & 0x0000FFFF);


? ? Temper = Refer_Temper - ((Value - Refer_Volt) * 10 + (k >> 1)) / k;


? ? return Temper;

}

這個讀取單片機內(nèi)部溫度,執(zhí)行上感覺太耗時了,這個能再優(yōu)化一下嗎?

您好,該函數(shù)應(yīng)該沒有再優(yōu)化的空間了。此外需要注意內(nèi)部溫度傳感器一般適用于檢測溫度的一個變化,若要精確測量環(huán)境溫度或工作溫度,建議使用外置溫度傳感器。


為了優(yōu)化你給出的 TempSensor_Volt_To_Temper 函數(shù),首先需要考慮RISC-V單片機的特點,包括指令集、寄存器使用和數(shù)據(jù)訪問速度。以下是一些可能的優(yōu)化策略:

  1. 減少不必要的計算:我們可以將常量計算移到函數(shù)外部或進(jìn)行簡化,避免在每次調(diào)用時都重復(fù)計算。

  2. 使用位操作簡化代碼:對于某些計算,可以使用位移代替乘法和除法。

  3. 減少內(nèi)存訪問:確保對內(nèi)存的訪問盡可能少,尤其是在嵌入式系統(tǒng)中。

以下是經(jīng)過優(yōu)化的代碼示例:

s32?TempSensor_Volt_To_Temper(s32?Value)?{????//?定義常量
????const?s32?k?=?43;????
????//?讀取參考電壓和溫度
????const?u32?*refData?=?(u32?*)0x1FFFF720;
????s32?Refer_Volt?=?(s32)(*refData?&?0x0000FFFF);
????s32?Refer_Temper?=?(s32)((*refData?>>?16)?&?0x0000FFFF);????//?計算溫度
????s32?deltaVolt?=?Value?-?Refer_Volt;?//?先計算電壓差
????s32?Temper?=?Refer_Temper?-?((deltaVolt?*?10?+?(k?>>?1))?/?k);?//?使用預(yù)先計算的deltaVolt

????return?Temper;
}

優(yōu)化說明:

  1. 常量定義:將常量 k 定義為 const 類型,表明其值不會改變,這樣編譯器可能會做出更好的優(yōu)化。

  2. 減少內(nèi)存訪問:通過引入 const u32 *refData,減少了對 0x1FFFF720 的多次訪問。

  3. 計算順序:在計算溫度時,先計算電壓差 deltaVolt,這樣在后續(xù)計算中只需引用一次,便于提高可讀性和性能。

  4. 位操作:保持原有代碼中的位操作以確保代碼的高效性。

這種優(yōu)化方法在RISC-V架構(gòu)上應(yīng)該有良好的性能表現(xiàn),同時保持了代碼的清晰性和可維護(hù)性。你可以根據(jù)特定的編譯器和架構(gòu)進(jìn)一步微調(diào)。

這個是openai的回復(fù),編譯后的比之前的大4個字節(jié),執(zhí)行效率是不是會高寫?我還沒實測。


看匯編


在哪里可以看到編譯生成的匯編文件?翻了一遍沒看到,只看到.o文件。


您好,如下圖,可通過lst文件查看

image.png


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频