基於華為雲的智慧路燈實現--小熊派學習筆記(1)


一,該功能實現的系統架構

捕獲

從上至下,最上層為系統級應用層,在雲服務平台上實現,比如 智慧家居、智慧交通、車聯網等等。一般通過PC、手機、端設備與用戶進行交互,實現配置、監控、管理等功能。

雲平台現在有阿里雲、騰訊雲、華為雲、亞馬遜雲等。

端設備通過 無線4G/5G/LoRa/NB-IOT/eLTE-IOT及有線的方式家庭網關企業網關與雲平台連接。

端設備通過固定的協議,LWM2M、CoAP、MQTT(基於TCP,UDP的協議)與雲平台通信,端設備一般用於采集目標數據,或者執行目標操作。一般有完整的軟件機構層次,統一的應用層協議,方便與各大平台連接。

下圖為基於liteos的端設備架構

liteos

最上層為系統應用組件,例如GUI框架,傳感器框架,OTA差分升級。

應用層接口支持CMSIS,POSIX,通行協議棧(LwM2M,CoAP,MQTT)。

文件系統支持vfs,littlefs,spiffs。

內核增強主要包括C++支持,低功耗,調測。

基礎內核實現系統基本功能,IPC通信,軟件定時器,內存任務管理,異常管理,中斷管理。

硬件抽象層

硬件內核支持 ARM-M,ARM-A,ARM-64,RISC-V。

二、LiteOS 使用介紹

支持LINUX下以及WINDOWS下的編譯,配置項目工程使用了make menuconfig工具。

liteos啟動流程圖

liteos

內存管理支持兩種方式,靜態內存和動態內存的方式,支持內存的初始化,分配及釋放。

軟件定時器是基於系統Tick時鍾中斷且由軟件來模擬的定時器。LiteOS支持創建、啟動,停止,刪除,獲取TICK,配置等對軟件定時器的操作。

Liteos支持對中斷函數的創建、配置、刪除。支持中斷共享,中斷嵌套,支持獨立中斷棧,支持中斷優先級配置等。

Liteos支持異常接管,屬於一種調測手段。

Liteos支持多任務,搶占式調度,時間片輪詢。支持配置任務優先級設置。

任務狀態示意圖

為了配合任務機制的運行,Liteos還支持隊列,信號量,互斥鎖,自旋鎖。

隊列用於任務間數據交互的支持。

信號量用於任務事件發生在任務之間同步使用。

自旋鎖、互斥鎖通常用於對共用內存數據的保護。

詳細Liteos的使用間接請參考華為Liteos開發文檔

liteos 應用入口在targets\…\Src\main.c的main函數中,在任務調度函數(LOS_Start)運行前,初始化應用任務(create_work_tasks)即可。

1

單次與循環任務寫法

initParam.pfnTaskEntry = (TSK_ENTRY_FUNC)TestTask1;

ret = LOS_TaskCreate(&g_taskLoId, &initParam); //在main函數中創建任務


UIN32 testTask1(VOID)

{

UCHAR i = 5;

Single Task(); //此處任務運行一次

while(1)

{

Cyclic Tasks(); //此處任務無限次數運行

}

while(i –)

{

Multiple Tasks(); //此處任務運行 i次

}
}


中斷寫法

ret = LOS_HwiCreate(_VECTOR,0,0(VOID(*)(uintptr_t)) osInterruptHandler,0);

STATIC VOID osInterruptHandler(VOID);

{

        //中斷服務處理函數

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM