在我拿到小熊派鴻蒙開發板后,首先按照教程,搭建了開發環境,體驗了一下程序是如何進行編譯和下載,以及初步了解了一下資料的架構。
關于小熊派鴻蒙開發板的信息,可以戳這里
開始學習 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 的前端開發,鴻蒙背后涉及到的技術知識點非常多,整套學完是一件非常費精力的事情,普通的工程師也沒有那么多時間和精力去完成全棧式的學習。
因此,根據自己實際的工作情況以及時間安排,選擇自己感興趣的方向進行了解和學習,我覺得,這樣就差不多了~
最后,祝大家學習愉快,感謝閱讀!

原創不易,歡迎轉發、留言、點贊、分享給你的朋友,感謝您的支持!

長按識別二維碼關注我
