日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

高通thermal-engine配置文件格式

發(fā)布時(shí)間:2025/4/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高通thermal-engine配置文件格式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊打開鏈接

本文基于高通msm8939/8994平臺(tái)文檔及源碼。

?說明文檔:??????????????? vendor/qcom/proprietary/thermal-engine/readme.txt;

???????? 源碼文件: ????????????? venror/qcom/proprietary/thermal-engine/thermal_config_v2.c;

???????? 實(shí)際配置文件: ???? vendor/qcom/proprietary/thermal-engine/thermal-engine.conf。

???????? 關(guān)注源碼文件的global_table,pid_table, tm_table, ss_table, v_table, eq_table聲明。其中g(shù)lobal_table為全局配置選項(xiàng),對(duì)應(yīng)2.1中的算法實(shí)例標(biāo)簽之前的部分;pid_table對(duì)應(yīng)pid算法配置格式;tm_table對(duì)應(yīng)monitor算法配置格式;ss_table對(duì)應(yīng)ss算法配置格式;v_table對(duì)應(yīng)virtual算法配置格式;eq_table對(duì)應(yīng)equilibrium配置格式(此格式暫時(shí)未見使用)。

?

配置文件基本格式

???????? {debug}???????????? //可選,若有此選項(xiàng)表示使能調(diào)試信息

???????? sampling??????????? // 默認(rèn)采樣率,以ms為單位

???????? [<算法實(shí)例標(biāo)簽>]???????????? // 算法實(shí)例標(biāo)簽

???????? algo_type????????? // 算法類型,必須是算法實(shí)例的第一個(gè)字段

???????? disable?????????????? //可選, 用于默認(rèn)情況下禁止該算法實(shí)例起作用

???????? ...

算法類型

???????? 算法類型共有4種: monitor, pid, ss, virtual。每種的格式各不一樣。

?????????算法類型對(duì)應(yīng)thermal_config.h(vendor/qcom/proprietary/thermal-engine/inc)中的algo_type枚舉類型,實(shí)際上有5種,除以上4種外,還有一個(gè)equilibrium類型。但從algos數(shù)組聲明(thermal_configi_v2.c)可以看出,equilibrium還未被使用。

monitor算法配置格式

???????? [<算法實(shí)例標(biāo)簽>]???

???????? algo_type????????? monitor?????????????????????? ????????

???????? sensor???????????????? <傳感器名稱>??????????

???????? sampling??????????? <采樣率(ms)>

???????? descending???????????????? //?????? 可選,默認(rèn)門限是升序,有此字段后門限順序?yàn)榻敌?/p>

???????? thresholds???? <門限值(mC/mA)>

???????? thresholds_clr ?<清除門限值>

??????? actions??????? <達(dá)到門限時(shí)的動(dòng)作,多個(gè)動(dòng)作時(shí)用'+'連接>

???????? action_info??? <動(dòng)作額外信息,多個(gè)額外信息間用'+'連接>

?

pid算法配置格式

???????? [<算法實(shí)例標(biāo)簽>]???

???????? algo_type????????? pid???????????????????????????????

???????? sampling??????????? <采樣率(ms)>

???????? sensor???????????????? <傳感器名稱>

???????? device??????????????? <被PID算法調(diào)制的設(shè)備>

???????? set_point?????????? <PID算法調(diào)整的目標(biāo)值(mC/mA)>

???????? set_point_clr???? <PID算法停止調(diào)整的值>

???????? p_const????????????? <PID算法中的P常量>

???????? i_const?????????????? <PID算法中的I常量>

???????? d_const????????????? <PID算法中的D常量>

???????? i_samples????????? <積分組件報(bào)錯(cuò)時(shí)的積分樣本數(shù)>

???????? dev_units_per_calc? <積分算法輸出調(diào)整單元值(每次調(diào)整的值)>

?

ss算法配置格式

???????? [<算法實(shí)例標(biāo)簽>]???

???????? algo_type????????? ss?????????????????????????????????

???????? sampling??????????? <采樣率(ms)>

???????? sensor???????????????? <傳感器名稱>

???????? device??????????????? <被PID算法調(diào)整的設(shè)備>

???????? set_point?????????? <PID算法調(diào)整的目標(biāo)值(mC/mA)>

???????? set_point_clr???? <PID算法停止調(diào)整的值>

???????? time_constant? <當(dāng)當(dāng)前和上一個(gè)錯(cuò)誤采樣值相等時(shí)的延遲調(diào)整系數(shù)>

???????? device_max_limit???? <設(shè)備最大值(mC/mA)>??????????? // 可選

virtual算法配置格式

?????????該算法實(shí)際作用是用已存在的傳感器模擬出一個(gè)新的傳感器。

???????? [<虛擬傳感器名字>]????????

???????? algo_type????????? virtual??????????????????????????????????

???????? trip_sensor??????? <傳感器名稱>

???????? set_point?????????? <當(dāng)高于此溫度時(shí),虛擬傳感器開始polling模式>

???????? set_point_clr???? <當(dāng)高于此溫度時(shí),虛擬傳感器停止polling模式>

???????? sensors?????????????? <用于計(jì)算溫度總和的傳感器數(shù)組>

???????? weights?????????????? <權(quán)重值數(shù)組>

???????? sampling??????????? <默認(rèn)采樣率>

配置文件字段解釋

thresholds取值

???????? 'thresholds'/'thresholds_clr'/'actions'/'action_info'接受最多8級(jí)以空格分開的門限。

action取值

?????????'none':

?????????????????? actions:? ???????? 無動(dòng)作

?????????????????? action_info:????? 忽略

?????????'report':

?????????????????? actions:????????????? 報(bào)告"穿過門限消息"給UI

?????????????????? action_info:????? 忽略

???????????????????備注:

?????????????????? "穿過門限消息"以每行獨(dú)立的格式報(bào)告給THERMALD_UI(一個(gè)抽象的本地socket);

?????????????????? 清除或觸發(fā)門限會(huì)導(dǎo)致消息上報(bào),比如n+1級(jí)門限被清除或者觸發(fā)了n級(jí)門限;其它

?????????????????? 動(dòng)作是達(dá)到門限時(shí)才觸發(fā);

?????????????????? 參數(shù)按以下順序發(fā)送:sensorname, temperature, current_threshold_level, is_trigger。其中:

?????????????????? current_threshold_level為當(dāng)前被觸發(fā)/清除的門限;is_trigger為true時(shí)表示觸發(fā),為false

?????????????????? 時(shí)表示清除。

????????'cpu':

?????????????????? actions:????????????? 調(diào)整cpu頻率

?????????????????? action_info:????? cpu最大允許頻率,單位:KHz

?????????'cpuN':

?????????????????? actions:????????????? 調(diào)整第N個(gè)cpu頻率

?????????????????? action_info:????? cpuN最大允許頻率,單位:KHz

?????????'hotplug_N':

?????????????????? actions:????????????? 拔掉第N個(gè)cpu(cpu_down)

?????????????????? action_info:????? 0: 插上cpu(cpu_up),? 1:拔掉cpu(cpu_down)

?????????'lcd':

?????????????????? actions:????????????? 限制lcd亮度

?????????????????? action_info:????? lcd最大亮度,取值范圍:0-255

?????????'modem':

?????????????????? actions:????????????? 請(qǐng)求限制modem功能

?????????????????? action_info:????? modem的限制級(jí)別,取值范圍:0-3

?????????'fusion':(???)

?????????????????? actions:????????????? 請(qǐng)求限制 fusion modem功能

?????????????????? action_info:????? fusion modem的限制級(jí)別,取值范圍:0-3

?????????'battery':

?????????????????? actions:????????????? 限制電池充電電流

?????????????????? action_info:????? 電池充電電流限制級(jí)別,取值范圍:0-3

?????????'gpu':

?????????????????? actions:????????????? 調(diào)整gpu頻率

?????????????????? action_info:????? gpu最大允許頻率,單位:KHz

?????????'wlan':

?????????????????? actions:????????????? wlan(無線局域網(wǎng))限制

?????????????????? action_info:????? WLAN限制級(jí)別,取值范圍0-4

?????????'shutdown':

?????????????????? actions:????????????? 關(guān)機(jī)

?????????????????? action_info:????? 關(guān)機(jī)延遲時(shí)間,單位:ms

?????????備注:

???????? 從gen_dev_list變量聲明(vendor/qcom/proprietary/thermal-engine/devices/devices.c)可以看出,還有如下取值:'vdd_restriction', 'kernel', 'camera','camcorder', 'vdd_dig_swmode','opt_curr_req',

'venus','modem_cx'。從gen_dev_list及hotplug_dev_list可以總結(jié)出各action字段及動(dòng)作函數(shù)的對(duì)應(yīng)關(guān)系:

動(dòng)作名稱

執(zhí)行動(dòng)作函數(shù)

動(dòng)作信息

'cpu'

cpu_all_action()

最大頻率

'cpuN'

cpu_action()

最大頻率

'hotplug_N'

hotplug_action()

1級(jí)

'wlan'

wlan_action()

MAX_WLAN_MITIGATION_LEVEL(4)

'battery'

battery_action()

MAX_BATTERY_MITIGATION_LEVEL(3)

'lcd'

lcd_action()

255級(jí)亮度

'shutdown'

ts_shutdown_action()

UINT32_MAX

'none'

?

?

'report'

ts_report_action()

?

'modem'

modem_action()

3

'fusion'

fusion_modem_action()

3

'vdd_restriction'

vdd_restriction_action()

1

'kernel'

kernel_mitigation_action()

1

'camera'

camera_action()

MAX_CAMERA_MITIGATION_LEVEL(10)

'camcorder'

camcorder_action()

MAX_CAMCORDER_MITIGATION_LEVEL(10)

'vdd_dig_swmode'

vdd_dig_automode_diable_action()

1

'opt_curr_req'

optimum_current_request_action

1

'mdp'

mdp_action()

MAX_MDP_MITIGATION_LEVEL(3)

'venus'

venus_action()

MAX_VENUS_MITIGATION_LEVEL(3)

'modem_cx'

modem_cx_limit_action()

3

'gpu'

gpu_action()

最大頻率

表 1 action屬性

device取值

?????????'cpu':

?????????????????? actions:????????????? 調(diào)整cpu頻率

?????????????????? action_info:????? cpu最大允許頻率,單位:KHz

?????????'cpuN':

?????????????????? actions:????????????? 調(diào)整第N個(gè)cpu頻率

?????????????????? action_info:????? cpuN最大允許頻率,單位:KHz

備注:

???????? device還可取以下值: 'gpu', 'clusterN'????

?

配置文件示例

示例1

?????????配置文件:

?

???????? sampling??? ????? 1000

?

???????? [PMIC_THERM_MON]

???????? algo_type???? ?? monitor

???????? sensor?????? ??? PMIC_THERM

???????? sampling????? ? 5000

???????? thresholds???? ? 40200????????? 45000?? ?? 50000

???????? thresholds_clr?? 38000????????? 43000?? ?? 48000

???????? actions????? ???? cpu+report?????? cpu?????? cpu

???????? action_info?? ??? 1188000+0????? 368640? ?? 245760

?

?????????描述:

1.????????默認(rèn)采樣率為1s;

2.????????PMIC_THERM傳感器采樣率為5s;

3.????????當(dāng)溫度升到到40.2度以上時(shí),觸發(fā)門限1,調(diào)節(jié)cpu最大允許頻率為1188000KHz,在本例中,由于此頻率是最大值,因此實(shí)際無動(dòng)作;同時(shí)上報(bào)此消息,action_info值0被忽略;

4.????????當(dāng)溫度降低到38度以下時(shí),清除門限1,并上報(bào)此消息;

5.????????當(dāng)溫度升高到45度以上時(shí),觸發(fā)門限2,調(diào)節(jié)cpu最大允許頻率為368640KHz;

6.????????當(dāng)溫度降低到43度以下時(shí),清除門限2,調(diào)節(jié)cpu最大允許頻率為1188000KHz。

示例2

?????????配置文件:

?

???????? sampling??? ????? 2000

?

???????? [bcl_monitor]

???????? algo_type???? ?? monitor

???????? descending

???????? sensor?????? ??? bcl

???????? sampling????? ? 1000

???????? thresholds???? ? 100??? ???? 0

???????? thresholds_clr?? 500??? ??? 100

???????? actions????? ???? report???????? report????????

???????? action_info?? ??? 0?? ???????? 0

?

?????????描述:

1.????????使能調(diào)試信息輸出;

2.????????默認(rèn)采樣率為2s;

3.????????對(duì)于電池電流限制(battery current limit)傳感器,采樣率為1s;

4.????????當(dāng)電池電流升到imax - 100mA時(shí),觸發(fā)門限1,并上報(bào)此消息;

5.????????當(dāng)電池電流降到imax - 500mA時(shí),清除門限1,并上報(bào)此消息;

6.????????當(dāng)電池電流升到imax時(shí),觸發(fā)門限2,并上報(bào)此消息;

7.????????當(dāng)電池電流降到imax -100mA時(shí),清除門限2,并上報(bào)此消息。

示例3

?????????配置文件:

?

???????? debug

?

???????? [TEST_PID]

???????? algo_type??? ????????????? pid

???????? sensor?????????? ???? tsens_tz_sensor0

???????? device???????????? cpu

???????? sampling?????????? 1000

???????? set_point??????????? 85000

???????? set_point_clr????????? 65000

???????? p_const??????????? 1.0

???????? i_const???????????? 1.0

???????? d_const??????????? 1.0

???????? i_samples?????????? 10

???????? dev_units_per_calc ???? 10000

?

?????????描述:

1.????????使能調(diào)試信息輸出;

2.????????本PID算法實(shí)例標(biāo)簽為TEST_PID;

3.????????使用tsens_tz_sensor0傳感器;

4.????????被調(diào)節(jié)設(shè)備是CPU;

5.????????采樣率為1s;

6.????????set_point值是PID調(diào)節(jié)算法的門限值和PID算法的設(shè)定值;

7.????????set_point_clr是停止PID調(diào)節(jié)算法的門限值;

8.????????p_const, i_const, d_const是PID等式中的p,i,d常量;

9.????????i_samples是PID等式中的積分錯(cuò)誤采樣次數(shù);

10.?????dev_units_per_calc 10000 kHz(設(shè)備是CPU,因此單位是kHz)是PID輸出增加的步進(jìn)值(即按10000KHz為步長調(diào)整??);

?

示例4

?????????配置文件:

?

???????? debug

?

???????? [virtual_sensor-0]

???????? algo_type??? ????????????? virtual

???????? sensor?????????? ???? tsens_tz_sensor8

???????? set_point??????????? 35000

???????? set_point_clr????????? 30000

???????? sensors?????????? ???tsens_tz_sensor1? tsens_tz_sensor5

???????? weights???????????????????????? 40? 60

???????? sampling?????????????????????? 250

?

???????? [Test-PID]

???????? algo_type????????????????????? pid

???????? sensor?????????????????????????? virtual-sensor-0

???????? device???????????? cpu1

???????? sampling?????????? 250

???????? set_point??????????? 55000

???????? set_point_clr????????? 50000

???????? p_const??????????? 1.25

???????? i_const???????????? 0.8

???????? d_const??????????? 0.5

???????? i_samples?????????? 10

???????? dev_units_per_calc ???? 5000

?

?????????描述:

1.????????PID實(shí)例Test-PID基于virtual-sensor-0的結(jié)果;

2.????????virtual-sensor-0需要用戶手動(dòng)定義;

3.????????trip_sensor 用來指示虛擬傳感器何時(shí)開始進(jìn)入polling模式(輪詢),trip_sensor必須為常規(guī)傳感器,不能為另外一個(gè)虛擬傳感器;

4.????????set_point是trip sensor的門限值,當(dāng)高于此門限值時(shí),trip sensor將從中斷模式進(jìn)入輪詢模式,輪詢頻率由虛擬傳感器的sampling字段設(shè)置;

5.????????set_point_clr是trip sensor的門限值,當(dāng)?shù)陀诖碎T限值時(shí),trip sensor將停止輪詢模式然后等待下一個(gè)門限事件;

6.????????weights給定了傳感器數(shù)組的權(quán)重值;

7.????????虛擬傳感器的set_point必須小于pid算法的set_point,以便當(dāng)達(dá)到set_point時(shí)pid能收到通知,另外,如果虛擬傳感器未進(jìn)入輪詢模式,pid將不能獲取到它的溫度;

8.????????如果tirp sensor不支持從中斷模式到查詢模式的改變,第8條可以被忽略。此時(shí)虛擬傳感器的采樣率將應(yīng)該和pid的采樣率一致。

示例5

?????????配置文件:

?

???????? debug

?

???????? [bcm_monitor]

???????? algo_type??? ????????????? monitor

???????? sensor?????????? ???? bcm

???????? sampling?????????? 1000

???????? thresholds????????? 70000???????? 90000 ??????????????? // 注意,單位為m%

???????? thresholds_clr??????? 69000???????? 89000

???????? actions???????????? cpu???????????? cpu

???????? action_info????????? 768000?????? 384000

?

?????????描述:

1.????????使能調(diào)試信息輸出;

2.????????當(dāng)采樣電流達(dá)到imax的70%時(shí),門限1觸發(fā),調(diào)整cpu最大允許頻率為768000KHz;

3.????????當(dāng)采樣電流達(dá)到imax的90%時(shí),門限2觸發(fā),調(diào)整cpu最大允許頻率為384000KHz;

4.????????bcm僅支持2級(jí)門限調(diào)節(jié);

5.????????有效的門限值取值為:40000,50000,60000,70000,80000,90000。


總結(jié)

以上是生活随笔為你收集整理的高通thermal-engine配置文件格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。