分享一下嵌入式 HarmonyOS 的學習思路
在我拿到小熊派鴻蒙開發板后,首先按照教程,搭建了開發環境,體驗了一下程式是如何進行編譯和下載,以及初步了解了一下資料的架構,
關于小熊派鴻蒙開發板的資訊,可以戳這里 開始學習 HarmonyOS 嵌入式開發
在這里,分享一下我的學習思路,希望能對大家有一點點的幫助~
HarmonyOS是什么?
我們在學習一件新的事物之前(比如即將要學習的HarmonyOS),首先要去做的,并不是看它的原始碼,也不是去技術博客看它的實作原理,更不是去一些論壇或者群里面,看一些片面的資訊,
而是要先了解清楚,HarmonyOS 到底是什么?
而了解它最好的方式,就是去官方的網站,看一下官方是如何對它進行定義的,很明顯,在 HarmonyOS 相關的官方網站里面,已經對其進行了具體的定義,
https://device.harmonyos.com/cn/home/

由于我們是要學習嵌入式 HarmonyOS 相關的內容,所以,我們關注的是 Harmony Device 這個網站,里面包含了一些硬體設備開發相關的內容,
HarmonyOS 還有一個應用開發者網站,HarmonyOS Developer ,這個網站的內容,大多數都是關于上層應用設計開發的,
https://developer.harmonyos.com/cn/home
這兩個網頁建議收藏,并且都瀏覽一遍,在大腦里面建立一個初步的印象,有些概念可能一時間看不懂,但不要緊,因為后面在學習的程序中還是會不斷地往回看,學習,就是一個螺旋式漸進的程序,
下載資料
當我們拿到一款開發板之后,第一時間肯定是去下載這款開發板的資料~
小熊派鴻蒙開發板的全部資料,都是用 gitee 進行管理的,直接使用 git clone 命令,就可以把開發板的全部資料下載到本地
git clone https://gitee.com/bearpi/bearpi-hm_nano

當然,也可以直接在 gitee 上在線翻看資料,可以不用下載到本地,下載到本地是因為,有些PDF檔案適合離線觀看,而不需要打開太多瀏覽器視窗~
分析資料架構
資料下載到本地后,不需要馬上去看開發板相關的原始碼,只需要先關心以下兩個目錄的內容,
目錄1:bearpi-hm_nano\applications\BearPi\BearPi-HM_Nano\docs\quick-start

quick-start 目錄,主要包含了一些快速入門的檔案,檔案都是 .md 格式,可以使用 Typora 這個軟體打開,通過這幾個檔案,就可以快速把開發環境搭建好,在開發板上面運行一個簡單的程式,
為了更好的閱讀體驗,也可以在 gitee 上面,直接在線看這部分的檔案,如下圖所示,


目錄2:bearpi-hm_nano\applications\BearPi\BearPi-HM_Nano\docs\board

board 目錄主要包含了小熊派的硬體相關資料,比如原理圖和芯片手冊,這些硬體手冊,一開始瀏覽一遍就可以了,
重點是 board\課程配套PPT 這個目錄,里面包含了視頻教程的PPT檔案,這些檔案在我們看視頻的時候,有很重要的借鑒作用,

在初步搞清楚了資料分布之后,就可以開始搭建開發板的開發環境了~
搭建開發環境
根據檔案【BearPi-HM_Nano十分鐘上手.md】,基本上,十分鐘就可以把小熊派的開發環境搭建好了,
這份檔案里面的內容,就是用 VMware 軟體,直接匯入一個已經配置完的 ubuntu 虛擬機,然后用 RaiDrive軟體,把虛擬機ubuntu的檔案目錄,直接映射到windows上進行檔案共享,
使用 MobaXterm 作為命令列終端,通過 hpm 包管理器,直接拉取服務器上面的原始碼,然后使用命令進行編譯,生成一個 all_in_one 的韌體,最后使用 HiBurn 工具,通過串口進行開發板韌體燒錄更新,
整個程序非常簡單,基本上就是 Step by Step 的操作,
這個十分鐘上手的開發環境搭建,由于是直接提供了配置好的ubuntu虛擬機,可以讓初學者節省了不少時間~
如果想了解虛擬機ubuntu的開發環境是如何搭建的,可以看一下以下的視頻,或者看一下之前下載的 PPT 檔案【2_開發環境搭建.pdf】


用ubuntu虛擬機從頭開始搭建開發環境,可能對于沒有 Linux 系統使用經驗的工程師來說,會顯得有一點復雜,
所以,如果想快速進入開發階段,可以直接使用配置好的ubuntu;而如果想更深入地體驗一下環境的搭建程序,可以自己按照上面檔案描述,嘗試去搭建,
基本上,當環境搭建好之后,就可以成功地對代碼進行編譯和燒錄了,
Hello world
學過軟體編程,或者學過嵌入式軟體開發的人都知道,通常我們在剛入門的時候,都是在螢屏上輸出 helloworld,或者點亮開發板上面的一個LED~
可以說,能夠在終端控制臺上輸出 helloworld,或者點亮一個LED,就已經是成功了一大半,
輸出 helloworld 和 點亮LED,小熊派都錄制了比較詳細的視頻,跟著視頻一步一步實作,問題不大,

輸出 helloworld 和點亮LED,兩個案例具體的套路都是,需要在sample檔案夾里面,創建對應的工程目錄,
然后在工程目錄里面,新增加業務相關的代碼,比如說 hello_world.c 或者 led_example.c,這些 C 源檔案(或頭檔案)是我們工程里面必須的,在這些源檔案和頭檔案里面,實作我們想要的業務邏輯,
以前做單片機開發,只需要往 MDK 或者 IAR 里面添加好源檔案,然后配置好頭檔案的路徑,在IDE軟體里面設定一下編譯相關的引數,語法沒問題基本上就可以編譯了,
但小熊派開發板的代碼,是使用命令列進行編譯的,跟我們以往開發單片機使用的那種集成開發環境不一樣,所以,還需要新增加一個編譯腳本 -- BUILD.gn,這個編譯腳本指定了一些工程編譯的相關引數,
小熊派錄制了一節視頻和提供了一份PPT,是介紹 HarmonyOS 的編譯框架的,里面會比較詳細介紹如何使用 BUILD.gn 來編譯代碼模塊,
內核、驅動、網路應用
完成 helloworld 和點燈之后,基本上,小熊派鴻蒙開發板算是學會最初步的入門使用了,
接下來,按照教程的內容,可以分為三大塊:HarmonyOS內核、驅動子系統、網路應用,

這三大部分的內容,需要花時間去重點消化~
對于 HarmonyOS 內核相關的內容,在嵌入式開發里面,其實是相當于學習一個實時作業系統(RTOS),里面涉及到一個實時作業系統必學的內容,比如任務調度管理,信號量和互斥鎖,事件管理,訊息佇列,等等,
內容就跟以前學習 RT-Thread 的時候差不多, RT-Thread 學習筆記
至于驅動子系統,就是基于 HarmonyOS 的內核,對 Hi3861 這款芯片一些常用的芯片外設進行適配,這些外設在我們以前學習單片機的時候,也接觸了不少,原理都是相差不大的,
由于 Hi3861這款芯片是一顆 WiFi SOC,所以,網路這一塊的內容是必不可少的,如何聯網是首先要解決的問題,TCP/IP 和 UDP 是在做網路應用的時候,用得最多的兩個偏底層的網路協議,這兩個協議的實作原理,一開始不用去深究,會使用就行了,
MQTT是在物聯網應用中用得最多的通信傳輸協議,基本上,很多 IoT 云平臺都支持設備通過 MQTT 協議進行接入和傳輸資料,因此,這部分的內容也是需要學習的,
基本上,按照以上的思路,就可以在小熊派鴻蒙開發板(Hi3861)上玩透嵌入式HarmonyOS 了,
但了解過鴻蒙的工程師都知道,鴻蒙并不單指某一個技術領域的作業系統,嚴格來說,它的存在意義,是想構建一種分布式的生態,面向全場景,逐步實作萬物互聯,
所以,不管目前是從事單片機應用開發,還是從事嵌入式Linux驅動/應用開發,或者是從事手機應用開發以及界面 UI 的前端開發,鴻蒙背后涉及到的技術知識點非常多,整套學完是一件非常費精力的事情,普通的工程師也沒有那么多時間和精力去完成全堆疊式的學習,
因此,根據自己實際的作業情況以及時間安排,選擇自己感興趣的方向進行了解和學習,我覺得,這樣就差不多了~
最后,祝大家學習愉快,感謝閱讀!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/287807.html
標籤:其他
