真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

AliOSThings電源管理框架怎么使用

這篇文章主要講解了“AliOS Things電源管理框架怎么使用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“AliOS Things電源管理框架怎么使用”吧!

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的通道網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

一、電源管理框架簡介

電源管理框架的目的在于節(jié)約CPU的功耗。傳統(tǒng)上,當(dāng)操作系統(tǒng)處于空閑狀態(tài)時,比如所有用戶任務(wù)和系統(tǒng)任務(wù)處于阻塞狀態(tài),將執(zhí)行idle task。idle task的通常做法是一個while(1)空循環(huán),從匯編視角看是不斷執(zhí)行跳轉(zhuǎn)指令,也就是說當(dāng)操作系統(tǒng)空閑時,CPU將處于空轉(zhuǎn)狀態(tài)。使能電源管理框架后,當(dāng)系統(tǒng)進入idle task后,將設(shè)置CPU進入低功耗狀態(tài),從而節(jié)省CPU的功耗。

AliOS Things電源管理框架怎么使用cdn.com/96a5ec7cc6a37077316a02632ad479e7cf228220.png">

AliOS Things 電源管理框架具有如下特點:

(1)應(yīng)用配置電源管理框架并添加初始化代碼后,整個框架的運行對應(yīng)用透明,用戶無需為了支持電源管理框架而修改應(yīng)用代碼;

(2)支持多級低功耗狀態(tài);

在某些MCU上,根據(jù)不同的節(jié)電程度和喚醒時間分為多級睡眠,電源管理框架提供了對該特性的支持,在進入低功耗狀態(tài)時將根據(jù)睡眠時間和節(jié)電程度選擇最佳睡眠等級。

(3)支持tickless機制

當(dāng)MCU決定進入低功耗狀態(tài)時,將關(guān)閉系統(tǒng)tick中斷,并在醒來的時候恢復(fù)系統(tǒng)tick中斷并補償睡眠過程中丟失的tick數(shù)。這種策略通過減少系統(tǒng)時鐘中斷來最大程度降低系統(tǒng)空閑時的功耗。

(4)支持精簡的低功耗模式

當(dāng)MCU進入低功耗后,不關(guān)閉系統(tǒng)tick中斷,系統(tǒng)tick也能喚醒系統(tǒng)。它的優(yōu)點是實現(xiàn)簡單,但當(dāng)系統(tǒng)長時間空閑時,由于系統(tǒng)時鐘頻繁喚醒系統(tǒng),不利于節(jié)能。

在某基于nrf52832 MCU的開發(fā)板上測試電源管理框架的運行效果如下:

在普通運行模式下nrf52832 MCU的平均運行電流在4mA左右,在添加電源管理模塊后MCU的電流測試如下表所示:

測試項

平均電流

說明

低功耗狀態(tài)

2.06uA


BLE廣播態(tài)功耗(開啟低功耗模塊,廣播intervel 100ms)

120uA

電壓3v,發(fā)送負(fù)載21字節(jié),TX功率0dBm。

BLE廣播態(tài)功耗(開啟低功耗模塊,廣播intervel 1000ms)

14.7uA

電壓3v,發(fā)送負(fù)載21字節(jié),TX功率0dBm。

BLE廣播態(tài)功耗(開啟低功耗模塊,廣播intervel 2000ms)

8.1uA

電壓3v,發(fā)送負(fù)載21字節(jié),TX功率0dBm。

從測試結(jié)果可以看出,在對功耗敏感的系統(tǒng)上,比如依靠電池供電的系統(tǒng),非常有必要使用電源管理框架,它可顯著降低系統(tǒng)功耗,增加系統(tǒng)待機時間。

二、應(yīng)用配置(為應(yīng)用添加低功耗支持)

應(yīng)用若要使用電源管理框架,需進行如下配置:

(1)應(yīng)用目錄的.mk文件中添加對電源管理模塊的依賴,示例:

     GLOBAL_DEFINES += RHINO_CONFIG_CPU_PWR_MGMT=1

$(NAME)_COMPONENTS := rhino/pwrmgmt

(2)在應(yīng)用初始化函數(shù)中(比如application_start(int argc, char *argv[]))調(diào)用電源管理模塊初始化函數(shù)。

    cpu_pwrmgmt_init();

三、示例應(yīng)用( app/example/pwr_test )

目前AliOS Things 2.0版本在developerkit和PCA10040平臺上對電源管理框架進行了適配,可用如下命令編譯示例應(yīng)用并下載到develoerkit上運行:

aos make pwr_test@developerkit

aos upload pwr_test@developerkit

示例應(yīng)用創(chuàng)建了2個任務(wù)demo1和demo2。demo1的主要邏輯是一個while循環(huán):count1增1,同時打印count1和g_idle_count[0]的值,然后睡眠1秒。demo2的主要邏輯也是一個while循環(huán):count2增1,同時打印count2的值,然后睡眠2秒。

其中g(shù)_idle_count[0]是一個全局變量,idle任務(wù)在執(zhí)行時會累加該值。

若沒有開啟低功耗模塊,那么當(dāng)demo1和demo2處于睡眠狀態(tài)時,idle任務(wù)持續(xù)執(zhí)行,g_idle_count[0]不斷增加。輸出示例如下:

count1 = 0, idle = 0

count2 = 0

count1 = 1, idle = 2347298

count1 = 2, idle = 4693421

count2 = 1

count1 = 3, idle = 7036926

count1 = 4, idle = 9383049

count2 = 2

count1 = 5, idle = 11726554

count1 = 6, idle = 14072465

開啟低功耗時,當(dāng)demo1和demo2處于睡眠狀態(tài)時,idle任務(wù)執(zhí)行g(shù)_idle_count[0]增1后,調(diào)用cpu_pwr_down()進入低功耗狀態(tài)。因此系統(tǒng)每次進入空閑狀態(tài),g_idle_count[0]只增加1。輸出示例如下:

count1 = 0, idle = 0

count2 = 0

count1 = 1, idle = 1

count2 = 1

count1 = 2, idle = 3

count1 = 3, idle = 4

count2 = 2

count1 = 4, idle = 6

count1 = 5, idle = 7

說明:如果條件允許,直接測試功耗,比如測試MCU的電流,效果更直觀。 

四、電源管理框架的適配

由于電源管理框架的運行依賴于硬件能力,因此在適配時首先要分析目標(biāo)硬件是否有能力支持,然后要基于硬件能力為電源管理框架提供相關(guān)驅(qū)動。

4.1 硬件要求

要想支持電源管理框架,目標(biāo)MCU需要支持如下特性:

(1)至少支持一種低功耗模式。在該低功耗模式下,RAM和寄存器的值能夠被維持。

(2)在低功耗模式下,存在可用的定時器,且該定時器能喚醒系統(tǒng)。在tickless機制下,該定時器用于計算低功耗時間,以補償系統(tǒng)時鐘。

4.2 適配接口

為了支持電源管理模塊需完成如下接口適配: 

適配接口

功能說明

board_cpu_pwr_init

初始化CPU的電源管理能力,比如注冊CPU電源狀態(tài)設(shè)置函數(shù),注冊CPU電源管理能力,注冊喚醒延遲時間,注冊喚醒/計時定時器。

cpu_cstate_set_t

設(shè)置CPU的低功耗狀態(tài)

systick_suspend

掛起系統(tǒng)時鐘,系統(tǒng)時鐘在低功耗狀態(tài)下停止運行

systick_resume

恢復(fù)系統(tǒng)時鐘

one_shot_timer_t

低功耗下運行的喚醒/計時定時器。在低功耗下的計時,用于退出低功耗狀態(tài)時補償系統(tǒng)時鐘。

在適配過程中用戶可以調(diào)用如下接口:

可用接口

功能概述

cpu_pwr_node_init_static

初始化CPU節(jié)點

cpu_pwr_node_record

注冊CPU節(jié)點

cpu_pwr_c_state_capability_set

設(shè)置CPU支持的低功耗模式

cpu_pwr_c_state_latency_save

設(shè)置某個指定低功耗狀態(tài)的喚醒延遲時間

tickless_one_shot_timer_save

注冊支持tickless機制的定時器

cpu_pwr_c_method_set

注冊CPU狀態(tài)設(shè)置函數(shù)

感謝各位的閱讀,以上就是“AliOS Things電源管理框架怎么使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對AliOS Things電源管理框架怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


網(wǎng)頁名稱:AliOSThings電源管理框架怎么使用
分享路徑:http://weahome.cn/article/igssdi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部