精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

第3章鴻蒙 hi3681 開發板入門 代碼路徑、啟動流程分析

系統
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com/#zz

[[350820]]

想了解更多內容,請訪問:
51CTO和華為官方合作共建的鴻蒙技術社區
https://harmonyos.51cto.com/#zz

第3章 Hi3681開發

目錄:

3.1 編寫一個簡單的hello world程序

3.2 Hi3861相關代碼結構

3.2 Hi3861啟動流程

3.1 編寫一個簡單的hello world程序

編寫一個hello world程序比較簡單,可以參考官網:

https://device.harmonyos.com/cn/docs/start/introduce/oem_wifi_start-0000001050168544

本文在這里做下總結:

(1)確定目錄結構。

開發者編寫業務時,務必先在./applications/sample/wifi-iot/app路徑下新建一個目錄(或一套目錄結構),用于存放業務源碼文件。

例如:在app下新增業務my_first_app,其中hello_world.c為業務代碼,BUILD.gn為編譯腳本,具體規劃目錄結構如下:

  1.  
  2. └── applications 
  3.  
  4.     └── sample 
  5.  
  6.         └── wifi-iot 
  7.  
  8.             └── app 
  9.  
  10.                 │── my_first_app 
  11.  
  12.                 │  │── hello_world.c 
  13.  
  14.                 │  └── BUILD.gn 
  15.  
  16.                 └── BUILD.gn 

 (2)編寫業務代碼。

在hello_world.c中新建業務入口函數HelloWorld,并實現業務邏輯。并在代碼最下方,使用 HarmonyOS啟動恢復模塊接口SYS_RUN()啟動業務。(SYS_RUN定義在ohos_init.h文件中)

  1. #include "ohos_init.h" 
  2.  
  3. #include "ohos_types.h" 
  4.  
  5.  
  6.  
  7.  
  8. void HelloWorld(void) 
  9.  
  10.  
  11.     printf("[DEMO] Hello world.\n"); 
  12.  
  13.  
  14. SYS_RUN(HelloWorld); 

 (3)編寫用于將業務構建成靜態庫的BUILD.gn文件。

如步驟1所述,BUILD.gn文件由三部分內容(目標、源文件、頭文件路徑)構成,需由開發者完成填寫。以my_first_app為例,需要創建./applications/sample/wifi-iot/app/my_first_app/BUILD.gn,并完如下配置。 

  1. static_library("myapp") { 
  2.  
  3.     sources = [ 
  4.  
  5.         "hello_world.c" 
  6.  
  7.     ] 
  8.  
  9.     include_dirs = [ 
  10.  
  11.         "//utils/native/liteos/include" 
  12.  
  13.     ] 
  14.  

static_library中指定業務模塊的編譯結果,為靜態庫文件libmyapp.a,開發者根據實際情況完成填寫。

sources中指定靜態庫.a所依賴的.c文件及其路徑,若路徑中包含"//"則表示絕對路徑(此處為代碼根路徑),若不包含"//"則表示相對路徑。

include_dirs中指定source所需要依賴的.h文件路徑。

(4)編寫模塊BUILD.gn文件,指定需參與構建的特性模塊。

配置./applications/sample/wifi-iot/app/BUILD.gn文件,在features字段中增加索引,使目標模塊參與編譯。features字段指定業務模塊的路徑和目標,以my_first_app舉例,features字段配置如下。

  1. import("//build/lite/config/component/lite_component.gni"
  2.  
  3.  
  4.  
  5.  
  6. lite_component("app") { 
  7.  
  8.     features = [ 
  9.  
  10.         "my_first_app:myapp"
  11.  
  12.     ] 
  13.  

my_first_app是相對路徑,指向./applications/sample/wifi-iot/app/my_first_app/BUILD.gn。

myapp是目標,指向./applications/sample/wifi-iot/app/my_first_app/BUILD.gn中的static_library("myapp")。

3.2 Hi3861相關代碼結構

目前hi3861用的是liteos-m內核,但是目前hi3681的liteos-m被芯片rom化了,固化在芯片內部了。所以在harmonyOS代碼是找不到hi3861的內核部分。

但是這樣不妨礙我們去理清hi3861的其他代碼結構。

hi3861平臺配置文件

build\lite\platform\hi3861v100_liteos_riscv\platform.json

該文件描述了hi3681平臺相關的代碼路徑,例如application、startup等。

 這里我列舉出來幾個比較重要的:

子系統:applications :

路徑:applications/sample/wifi-iot/app

作用:這個路徑下存放了hi3681編寫的應用程序代碼,例如我們剛剛寫得hello world 代碼就放在這個路徑下。

子系統:iot_hardware :

路徑:base/iot_hardware/frameworks/wifiiot_lite

作用:存放了 hi3681 芯片相關的驅動、例如spi、gpio、uart等。

子系統:vendor

路徑:vendor/hisi/hi3861/hi3861

作用:存放了 hi3681 相關的廠商SDK之類的文件。其中最重要的是

vendor\hisi\hi3861\hi3861\app\wifiiot_app\init\app_io_init.c

vendor\hisi\hi3861\hi3861\app\wifiiot_app\src\app_main.c

其中,app_io_init.c 是hi3681內核啟動后的io口相關設置,用戶需根據應用場景,合理選擇各外設的IO復用配置。

app_main.c 是內核啟動進入的應用程序入口。

3.2 Hi3861啟動流程

由于hi3681的liteos-m被芯片rom化了,固化在芯片內部了。所以我們主要看內核啟動后的第一個入口函數。

代碼路徑:

vendor\hisi\hi3861\hi3861\app\wifiiot_app\src\app_main.c

  1. hi_void app_main(hi_void) 
  2.  
  3.  
  4. #ifdef CONFIG_FACTORY_TEST_MODE 
  5.  
  6.         printf("factory test mode!\r\n"); 
  7.  
  8. #endif 
  9.  
  10.  
  11.  
  12.  
  13.     const hi_char* sdk_ver = hi_get_sdk_version(); 
  14.  
  15.     printf("sdk ver:%s\r\n", sdk_ver); 
  16.  
  17.     hi_flash_partition_table *ptable = HI_NULL; 
  18.  
  19.  
  20.  
  21.  
  22.     peripheral_init(); 
  23.  
  24.  
  25.  
  26.  
  27.       …..中間省略代碼 
  28.  
  29.  
  30.  
  31.  
  32.       HOS_SystemInit(); 
  33.  

app_main一開始打印了 SDK版本號,最后一行會調用HOS_SystemInit(); 函數進行鴻蒙系統的初始化。我們進去看下初始化做了哪些動作。

路徑:base/startup/services/bootstrap_lite/source/system_init.c 

  1. void HOS_SystemInit(void) 
  2.  
  3.  
  4.     MODULE_INIT(bsp); 
  5.  
  6.     MODULE_INIT(device); 
  7.  
  8.     MODULE_INIT(core); 
  9.  
  10.     SYS_INIT(service); 
  11.  
  12.     SYS_INIT(feature); 
  13.  
  14.     MODULE_INIT(run); 
  15.  
  16.     SAMGR_Bootstrap(); 
  17.  

我們可以看到主要是初始化了 一些相關模塊、系統,包括有bsp、device(設備)。其中最終的是MODULE_INIT(run);

它負責調用了,所有run段的代碼,那么run段的代碼是哪些呢?

事實上就是我們前面application中使用SYS_RUN() 宏設置的函數名。

還記得我們前面寫的hello world應用程序嗎?

  1. #include "ohos_init.h" 
  2.  
  3. #include "ohos_types.h" 
  4.  
  5.  
  6.  
  7.  
  8. void HelloWorld(void) 
  9.  
  10.  
  11.     printf("[DEMO] Hello world.\n"); 
  12.  
  13.  
  14. SYS_RUN(HelloWorld); 

也就是說所有用SYS_RUN() 宏設置的函數都會在使用MODULE_INIT(run); 的時候被調用。

為了驗證這一點,我們可以加一些打印信息,如下:

 我們重新編譯后燒錄。打開串口查看打印信息,如下:

可以看到在35行之后,就打印 hello world的信息。符合預期。

想了解更多內容,請訪問:
51CTO和華為官方合作共建的鴻蒙技術社區
https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-08-19 10:54:47

操作系統鴻蒙

2021-05-25 14:47:43

鴻蒙HarmonyOS應用

2020-11-18 11:56:06

鴻蒙Hi3861

2020-12-08 12:36:41

Hi3861 ADC驅動開發

2020-11-06 10:15:16

HiBurn

2020-10-14 09:37:03

HiBurn鴻蒙.bin文件

2021-12-15 15:28:18

鴻蒙HarmonyOS應用

2020-12-15 11:57:49

Hi3861 HarmonyOS開發板

2020-12-29 09:59:01

鴻蒙HarmonyOS智能家居

2021-06-25 09:28:46

鴻蒙HarmonyOS應用

2020-10-27 10:08:19

Hi3861ADC驅動

2021-09-16 10:03:39

鴻蒙HarmonyOS應用

2020-12-16 10:05:48

鴻蒙開發板Onenet平臺

2021-06-25 15:32:13

鴻蒙HarmonyOS應用

2021-12-20 21:01:52

鴻蒙HarmonyOS應用

2020-12-17 10:02:16

鴻蒙Hi3861開發板

2020-10-30 17:12:05

Hi3861

2020-10-30 17:42:36

鴻蒙 OS Hi386

2020-11-06 11:32:11

NV操作

2020-12-09 09:44:29

Hi3861硬件介紹鴻蒙開發板
點贊
收藏

51CTO技術棧公眾號

亚洲深夜视频| 亚洲欧洲成人在线| 狠狠入ady亚洲精品| 日韩av在线看| 在线免费视频一区| 国产高清在线a视频大全| 久久亚洲综合av| 91影视免费在线观看| 九九热国产视频| 波多野结衣的一区二区三区| 日韩一级二级三级| 欧在线一二三四区| 182tv在线播放| www激情久久| 91在线观看网站| 欧美一区免费看| 黄色日韩精品| 久久精品国产2020观看福利| 亚洲精品毛片| 麻豆91精品91久久久的内涵| 欧美高清视频免费观看| 天堂在线中文视频| 麻豆成人入口| 欧美高清视频在线高清观看mv色露露十八 | 久久理论电影网| 91久久在线观看| 亚洲午夜无码久久久久| 国产日韩视频| 欧美激情精品久久久久久久变态 | 亚洲成人福利片| 亚洲人一区二区| 国产三级在线免费| 99re这里只有精品视频首页| 亚洲在线免费看| 在线免费观看日韩视频| 久久国产日本精品| 97欧美精品一区二区三区| avtt天堂在线| 欧美国产一级| 色妞色视频一区二区三区四区| 国精产品一区一区三区免费视频| jizz国产精品| 日韩欧美高清dvd碟片| 久久婷婷中文字幕| 亚洲欧洲专区| 欧美日韩国产经典色站一区二区三区| av网址在线观看免费| 亚洲性色av| 欧美日韩另类字幕中文| 国产视频九色蝌蚪| sm捆绑调教国产免费网站在线观看| 一区二区三区在线视频播放| 少妇高潮大叫好爽喷水| 草莓福利社区在线| 亚洲久草在线视频| 2021狠狠干| 免费影视亚洲| 亚洲国产精品一区二区久久 | 欧美日产一区二区三区在线观看| 亚洲欧美另类综合| 成+人+亚洲+综合天堂| 国产一级精品aaaaa看| 五月婷婷激情在线| 久久久久国产精品麻豆| 视频一区二区在线| 九色porny在线| 亚洲人123区| 国产精品一线二线三线| 黄色在线观看www| 欧美视频在线视频| 最新中文字幕免费视频| av在线成人| 精品粉嫩aⅴ一区二区三区四区| 麻豆精品国产传媒av| 亚洲成人一品| 一区二区成人精品| 丝袜美腿小色网| 日韩午夜精品| 国产精品久久久久久久电影| 国产乱人乱偷精品视频| 成人在线综合网| 欧美日韩一区二 | 精品人妻一区二区三区蜜桃 | 成人片黄网站色大片免费毛片| 国产精品中文字幕亚洲欧美| 日韩在线免费观看视频| 欧产日产国产v| 亚洲每日更新| 国产精品久久久久国产a级| 国内毛片毛片毛片毛片| 99久久精品99国产精品| 亚洲免费在线精品一区| 色婷婷av在线| 在线精品视频小说1| 亚洲理论中文字幕| 日韩电影在线观看完整免费观看| 中文字幕免费国产精品| 国产精品不卡av| 蜜乳av一区二区| 久草一区二区| 18视频在线观看网站| 日本乱人伦一区| 韩国三级视频在线观看| 日韩精品水蜜桃| 97久久国产精品| 国产伦精品一区二区三区免.费| 91麻豆蜜桃一区二区三区| 小说区视频区图片区| 中文不卡1区2区3区| 欧美一区二区免费视频| www久久久久久久| 99精品免费| 91日韩久久| 日韩在线免费电影| 一本色道久久综合亚洲aⅴ蜜桃 | www.色视频| 国产精品伦理一区二区| 欧美日韩在线不卡视频| 东京久久高清| 欧美成人手机在线| 亚洲手机在线观看| 欧美国产丝袜视频| av动漫在线观看| 东京久久高清| 欧美疯狂做受xxxx高潮| 91中文字幕在线播放| 国产欧美一区二区精品秋霞影院 | 免费久久精品视频| 明星裸体视频一区二区| 成人ssswww在线播放| 精品少妇一区二区三区日产乱码| 91制片厂在线| 久久精品999| 亚洲精品在线视频观看| 亚洲伦乱视频| 亚洲精品自拍视频| 麻豆久久久久久久久久| 99视频精品在线| 男女视频网站在线观看| 澳门成人av| 久久久久久国产免费| 久久久成人精品视频| 国产精品三级在线观看无码| 亚洲激情av| 国产精品久久久久久久久久久久午夜片 | 亚洲精品久久久久久无码色欲四季| 中文字幕在线观看一区| 色一情一区二区三区| 久久日文中文字幕乱码| 国产精品永久免费观看| 9i精品一二三区| 欧美视频一区二区三区在线观看| 国产精成人品免费观看| 麻豆精品久久久| 99re99热| 8848成人影院| 97视频免费在线观看| 欧美日韩国产综合视频| 91极品美女在线| 天堂网中文在线观看| 精品一区二区免费看| 艳母动漫在线观看| 一区视频网站| 日本国产精品视频| 国产二区视频在线观看| 91精品国产日韩91久久久久久| 欧美一区二区三区爽爽爽| 国产成人精品免费网站| 毛片在线视频播放| 国产一区二区三区四区大秀| 成人精品一区二区三区| 欧洲成人综合网| 亚洲精品中文字幕女同| 在线免费观看日韩视频| 亚洲香蕉伊在人在线观| 尤物视频最新网址| 国产一区二区三区免费看| 男女激情免费视频| 欧美色婷婷久久99精品红桃| 成人有码视频在线播放| 国产美女高潮在线| 日韩中文字幕在线播放| 色综合久久久久久| 欧美在线免费播放| 中文字幕手机在线观看| 26uuu国产电影一区二区| 日本不卡一区二区在线观看| 99在线|亚洲一区二区| 亚洲精品成人自拍| 国产精品videossex| 国产成人精品久久| 欧美24videosex性欧美| 亚洲无线码在线一区观看| 99免费在线视频| 日韩欧亚中文在线| 国产探花在线播放| 国产精品无码永久免费888| 国产伦精品一区二区三区88av| 免费久久99精品国产| 波多野结衣家庭教师在线播放| 欧美高清视频在线观看mv| 免费看成人片| 亚洲一区二区三区日本久久九| 国产精品久久91| 乡村艳史在线观看| 欧美精品在线看| av在线免费观看网站| 亚洲国产高清福利视频| 国产精品久久欧美久久一区| 色一情一伦一子一伦一区| 久久精品www| 亚洲视频在线观看三级| 51妺嘿嘿午夜福利| 成人av在线一区二区三区| 午夜免费福利网站| 欧美aaa在线| 免费大片在线观看| 亚洲一区观看| 91丨porny丨探花| 亚洲一级毛片| 正义之心1992免费观看全集完整版| 国产一区二区精品福利地址| 精品欧美一区二区三区久久久 | 少妇影院在线观看| 国产精品久久久久久亚洲毛片 | 亚洲国产综合av| 麻豆精品新av中文字幕| 韩国视频一区二区三区| 久久人人97超碰国产公开结果| 午夜免费福利小电影| 国产一区美女| 蜜桃视频一区二区在线观看| 91精品福利| 二级片在线观看| 99热精品久久| 中文字幕一区二区中文字幕 | 久久精品免费播放| 日本视频在线观看| 久久精品亚洲94久久精品| 免费在线观看av片| 日韩中文字幕在线| 成人看av片| 欧美另类xxx| 欧美hdxxxx| 久久人人爽人人| 国产高清自产拍av在线| 欧美一级片在线播放| 国产日韩电影| 国产精品av在线播放| 亚洲第一会所001| 国产精品爽黄69天堂a| 日韩在线免费| 91在线播放国产| 香蕉大人久久国产成人av| 成人av蜜桃| 亚洲图区在线| 日韩欧美在线电影| 五月激情综合| 欧美久久久久久久久久久久久久| 亚洲一本视频| 久久久久久久久久久福利| 日本欧美一区二区| 五月天丁香花婷婷| 国产91丝袜在线播放九色| 久久偷拍免费视频| 国产精品亲子乱子伦xxxx裸| 欧美色图亚洲视频| 亚洲成人av一区二区三区| 国产www在线| 欧美区视频在线观看| 亚洲精品无amm毛片| 亚洲精选中文字幕| 麻豆网站在线看| 国外成人在线视频| 欧美123区| 91青青草免费在线看| 亚洲精品进入| 最新不卡av| 一本色道久久综合亚洲精品高清| 国产精品无码av无码| 国产精品538一区二区在线| 人妻少妇精品视频一区二区三区| 国产精品久久免费看| www.av视频在线观看| 欧美制服丝袜第一页| 黄色av网址在线| 一个色综合导航| 91福利在线尤物| 国产欧美中文字幕| 欧美五码在线| 300部国产真实乱| 日韩高清中文字幕一区| 九色91porny| 欧美国产日韩亚洲一区| 精品视频一区二区在线观看| 欧美亚洲综合色| 人妻无码中文字幕| 精品国产欧美成人夜夜嗨| 亚洲欧洲自拍| 国产精品久久亚洲| 欧美hd在线| 天天摸天天碰天天添| 岛国一区二区在线观看| 中文字幕求饶的少妇| 色88888久久久久久影院按摩 | 99精品视频一区| 精品无码久久久久成人漫画| 色美美综合视频| 欧美熟妇另类久久久久久不卡| 久久精品成人一区二区三区 | 欧美日韩视频不卡| 色吊丝在线永久观看最新版本| 另类美女黄大片| 91在线成人| 秋霞久久久久久一区二区| 亚洲日韩成人| 天天躁日日躁狠狠躁免费麻豆| 综合激情成人伊人| 国产裸体美女永久免费无遮挡| 日韩精品极品毛片系列视频| 韩国日本一区| 97超碰人人看人人| 亚洲色图二区| 色91精品久久久久久久久| 国产欧美日韩中文久久| 欧美国产成人精品一区二区三区| 亚洲成在人线av| 91九色porn在线资源| 成人精品水蜜桃| 欧美一区二区三区久久精品茉莉花| 天天综合网久久| 国产精品亲子伦对白| 中文字幕av网站| 中文精品99久久国产香蕉| 99久久亚洲国产日韩美女| 视频一区视频二区视频三区视频四区国产 | 免费看毛片的网站| 亚洲五码中文字幕| 三级网站免费观看| 97色在线播放视频| 综合综合综合综合综合网| 男女午夜激情视频| 久久综合九色综合欧美98| 毛片在线免费视频| 亚洲色图17p| 日韩精品一区二区三区av| 亚洲mv在线看| 国产中文字幕一区| 五月婷婷一区二区| 精品久久久久久最新网址| www成人免费观看| 久久久综合香蕉尹人综合网| 午夜亚洲福利在线老司机| 欧美色图亚洲激情| 在线观看免费成人| 欧美极品另类| 91蜜桃网站免费观看| 亚洲一区二区伦理| 亚洲天堂岛国片| 制服丝袜av成人在线看| 日本资源在线| 九色综合婷婷综合| 奇米影视一区二区三区小说| 五月天色婷婷丁香| 日韩欧美一二区| 涩涩视频在线播放| 色狠狠久久av五月综合| 国产自产视频一区二区三区| 国产精品美女毛片真酒店| 亚洲美女自拍视频| 亚洲国产一区二区久久| 国产小视频免费| 久久综合九色综合久久久精品综合| 中文字幕观看视频| 欧美床上激情在线观看| 午夜a一级毛片亚洲欧洲| 麻豆三级在线观看| 洋洋成人永久网站入口| 黄色片在线看| 91偷拍精品一区二区三区| 性色av一区二区怡红| 永久免费看片直接| 亚洲电影在线观看| 国产精品第一| 青青艹视频在线| 中文字幕亚洲精品在线观看 | 久久综合久久久久88| 国产精品欧美激情在线| 午夜欧美大片免费观看| 999视频精品| 草草地址线路①屁屁影院成人| 欧美人伦禁忌dvd放荡欲情| zzzwww在线看片免费| 亚洲在线视频一区二区| av午夜精品一区二区三区| 一区二区 亚洲| 97色在线播放视频| 欧美fxxxxxx另类| 国产美女免费网站| 亚洲精品一区二区三区福利|