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

移植OpenHarmony 3.0到ARM單片機

系統
星空派(GD)開發板是由旗點科技推出的一款GD32開發板,板載GD32F303ZET6芯片,可直接替代STM32F103和GD32F103系列。

[[428941]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

9月30日,OpenHarmony 3.0 LTS版本發布。

本文將介紹如何移植OpenHarmony 3.0到星空派開發板上。

1. 星空派開發板介紹

星空派(GD)開發板是由旗點科技推出的一款GD32開發板,板載GD32F303ZET6芯片,可直接替代STM32F103和GD32F103系列。

支持WiFi、4G、loRa等物聯通信接口。板載Flash、eeprom等,支持3.2寸的TFT - LCD屏幕。所有IO口均引出,可完整地進行外設開發,包括:JTAG、RTC、I2C、UART、SPI、SDIO、EXMC、DAC、ADC、USB、TFT-LCD等。

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

2. ARM芯片移植輕量系統基礎知識

在做芯片移植工作之前,我們需要掌握一點點基礎知識。

(1)適配LiteOS-M輕量系統

GD32F303系列器件是基于Arm® Cortex®-M4處理器的32位通用微控制器。所以我們使用的是內核是LiteOS-M,對應的是OpenHarmony輕量系統。

事實上,OpenHarmony已經做好了Cortex®-M4 核相關的通用移植工作,具體代碼可以查看文件夾:“kernel\liteos_m\kernel\arch\arm”。

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

可以看到目前已經支持了cortex-m4核。所以內核移植工作基本不需要,減少了我們很多工作量,但是我們仍然需要移植GD32F303芯片相關的。

(2)哈佛架構

GD32F303采用的是哈佛架構,哈佛架構的特點是代碼指令和數據分開存儲。對于GD32F303而言,代碼是存放在片內flash上,地址是0x8000000。

數據(也就是代碼中用到的各種變量、內存等)是存放在芯片內部內存RAM上,地址是0x20000000,總共64K,即0x10000。

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

(3)編譯結果分析

對于GD32F303而言,編譯出來的固件一般是bin格式、或者hex格式。通常編譯最后的結果會產生4種不同的內容,有時我們也稱為4段:

1)code:即程序代碼部分,該內容由所有程序指令組成,也是代碼運行的主體,通常是要燒錄到GD32F303片內flash上。

2)RO-data:只讀數據段,例如我們在程序中所定義的全局常量數據和字符串都位于此處。由于這些數據都是只讀,不會改變的,那這些只讀的全局就沒必要放到內存種,可以直接放到flash中,可以節省內存。

3)RW-data:已初始化的讀寫數據,程序中定義并且初始化的全局變量和靜態變量位于此處。由于內存剛上電后,內存上的數據是未知,所以我們需要事先把這些全局變量、靜態變量的初始值先存放到flash中,然后上電后,由CPU將flash中的初始值賦予到內存中的變量中。

4)ZI-data:未初始化的全局變量或者初始化為0的全局變量,這些變量默認都是0,我們只需要CPU上電后,將這些內存都清零即可。

由上我們可以的出來2個結論:

1)我們編譯出來的固件要燒錄到GD32F303的片內flash,需要由3段數據:code、RO-data、RW-data。

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

2)芯片上電后,GD32F303需要將RW-data的內容復制到內存對應位置,從而保證初始化的全局變量和靜態變量的值正確;還要對內存中的ZI-data段進行清零操作,最后才能執行main函數。

(4)程序如何啟動

對于ARM Cortex-M系列的芯片而言,當芯片上電后,ARM核會將地址為0x8000000的數據映射到0地址,然后從0地址開始讀取程序指令。

而0x8000000地址是芯片內部flash的起始地址。也就是編譯生成的固件最終要燒錄到的地址。所以我們的固件前面的代碼非常重要,它是我們芯片啟動后執行的第一條指令。

(5)中斷向量表

對于ARM Cortex-M系列的芯片而言,0x8000000地址第一個字節是棧指針,由于棧是從高往下增長的,所以該棧指向芯片最大內存處即可。

接下來從0x8000000的第2個字節開始是中斷向量表,存放著所有中斷處理函數指針。前面16個是內核中斷,其中第一個中斷指針存放的是Reset_Handler復位中斷處理函數。芯片一上電、或者復位,都會先從該中斷函數開始運行,所以這個函數是我們最重要的,我們需要在該函數中完成RW-data、ZI-data數據的操作,同時初始化好芯片時鐘、最后進入main函數。

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

3. 移植GD32F303芯片到OpenHarmony3.0

這里提供移植好的相關代碼,下載鏈接:https://gitee.com/qidiyun/gd32-f303-for-open-harmony-3.0

(1)先按官網教程搭建好Ubuntu下的開發環境。

下載arm交叉編譯器:

git clone https://gitee.com/harylee/gcc-arm-none-eabi-10-2020-q4-major.git ,將交叉編譯器環境變量bin目錄配置到.bashrc文件中或者配置device/st/stm32l4r9i_disco/liteos_m/config.gni文件中board_toolchain_path宏為交叉編譯器bin路徑。

(2)下載上方移植好的代碼,文件夾如下:

將device文件夾下的gd文件夾復制到OpenHarmony3.0代碼的device文件夾下。

將vendor文件夾下的gd文件夾復制到OpenHarmony3.0代碼的vendor文件夾下。

復制后,OpenHarmony3.0的device文件夾內容如下:

OpenHarmony3.0的vendor文件夾內容如下:

(3)編譯

進入OpenHarmony3.0源碼根目錄,輸入 hb set 可以看到由gd32f303_qidian的編譯選項。選擇。

輸入 hb build -f開始全編譯:

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

有看到 [OHOS INFO] gd32f303_qidian build success 表示編譯成功。

編譯完成后,可以在“out\gd32f303_qidian\gd32f303_qidian”文件夾下看到編譯結果,其中“gd32f303_qidian_ninjia.hex”就是可以直接燒錄到開發板的固件。

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

4. vendor文件夾

該文件下最重要的文件是“config.json”。

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

內如如下,主要是配置相關組件:

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

5. device代碼

(1)device文件夾:

該文件夾下是星空派開發板的重要代碼部分,其中就有啟動文件、main函數、中斷處理等。

由于移植內容較長,本文重點介紹啟動文件、鏈接腳本。

(2)啟動文件

啟動文件startup_gd32f30x.s 。最重要的是將RW-data的內容復制到內存對應位置,從而保證初始化的全局變量和靜態變量的值正確;還要對內存中的ZI-data段進行清零操作,最后才能執行main函數。

代碼都是匯編,參考自st和gd相關啟動文件,重要代碼如下:

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

(3)鏈接腳本

鏈接腳本是“gd32f30x_qidian.ld”,用于指定code、RO-data、RW-data、ZI-data如何分布。

首先指定內存地址為0x20000000,大小為64K。

片上flash地址為:0x8000000,大小為512K。

這里跟芯片相關,需要正確修改,否則可能起不來。

這里跟芯片相關,需要正確修改,否則可能起不來。

(4)固件生成規則。

同時鏈接腳本也指定了固件的生成規則:

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

這里只截取了部分,可以看到生成的固件最開始存放的isr_vector,這個是中斷向量表,在啟動文件中定義:

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

接下來就是text,也就是代碼段。

還有rodata,只讀數據段。

后面還有其它定義,我們下一篇再細節。

至此我們的啟動文件、鏈接腳本中比較關鍵的部分已經說明完。

6. liteos-m內核配置

進入“device\gd\gd32f303_qidian\liteos_m”文件夾,可以看到有這個文件“config.gni”。

該文件用于配置 liteos-m內核。

其中比較重要部分是指定我們的處理器架構和交叉編譯工具鏈,如下:

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

我們使用的交叉編譯工具鏈是 “arm-none-eabi-”。

下面還配置了相關宏定義和gd標準庫頭文件路徑,需要大家修改。

移植OpenHarmony 3.0到ARM單片機-鴻蒙HarmonyOS技術社區

好了~~~,初步移植要點講完了,下一篇文章講openharmony內核配置文件、main函數啟動后如何進入鴻蒙輕量內核。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

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

2021-07-08 09:15:20

單片機編程狀態機編程語言

2011-06-09 11:06:36

JVM

2021-06-22 10:02:07

單片機語言代碼

2022-06-21 11:30:22

littleVGL鴻蒙

2009-04-11 15:12:24

2010-09-08 15:18:54

單片機TCP IP協議棧

2010-06-19 13:32:36

TCP IP協議棧

2010-06-19 14:10:35

TCP IP協議棧

2022-06-21 11:02:27

系統移植鴻蒙

2021-12-31 10:00:30

鴻蒙HarmonyOS應用

2010-09-27 16:26:09

JVMarm

2022-01-26 08:31:25

聯合體單片機編程

2011-05-24 17:47:40

2022-03-01 08:31:37

volatile變量編譯器

2021-12-29 16:11:11

鴻蒙HarmonyOS應用

2010-07-01 15:38:41

TCP IP協議棧單片機

2021-07-05 08:04:46

Linux運行地址

2009-04-22 17:18:29

PCB技術單片機

2023-06-27 15:12:46

C++三方庫移植

2022-09-15 15:21:22

操作系統鴻蒙
點贊
收藏

51CTO技術棧公眾號

欧美精品日韩精品| 国产高清在线精品| 在线视频免费一区二区| 福利视频999| 日本片在线观看| 久久久精品日韩欧美| 91精品久久久久久久久久| 精品无码人妻一区二区三区品| 最新国产精品视频| 日韩欧美中文一区| 99视频在线视频| 成年男女免费视频网站不卡| 国产精品久久综合| 免费国产一区| 亚洲精品视频91| 免费欧美在线视频| 日av在线播放中文不卡| 欧美色图一区二区| 日韩精品永久网址| 精品爽片免费看久久| 日韩精品在线免费观看| 国产精品女主播| 欧美不卡视频在线观看| 久久久久久久久丰满| 一区二区三区国产在线观看| 国产麻豆剧传媒精品国产av| 视频一区日韩| 欧美日韩精品欧美日韩精品| 无码精品国产一区二区三区免费| 波多野结衣在线播放| 亚洲欧美激情小说另类| 亚洲黄色一区二区三区| 嫩草研究院在线| www.视频一区| 国产精品久久久久久久天堂第1集| 国产精品久久久久久69| 日本伊人色综合网| 国产成人精品最新| 99超碰在线观看| 国产精品毛片| 欧美在线观看日本一区| 精品国产乱码一区二区| 国产欧美亚洲一区| 91精品国产91久久| 一区二区三区视频免费看| 在线观看视频免费一区二区三区| 欧美成人在线免费| 青青草手机在线视频| 亚洲草久电影| 欧美巨猛xxxx猛交黑人97人| 91高清免费观看| 2023国产精品久久久精品双 | 激情在线视频| 2欧美一区二区三区在线观看视频| 精品一区二区日本| 欧美大片aaa| 国产喂奶挤奶一区二区三区| 久久一区二区三区欧美亚洲| 精品乱码一区二区三四区视频| 久久伊99综合婷婷久久伊| 久久精品日韩| 免费成人av电影| 中文成人综合网| 香蕉视频在线网址| 欧美xxx黑人xxx水蜜桃| 亚洲va欧美va国产va天堂影院| 成人免费播放器| 日韩福利一区| 欧美日韩一级片网站| 在线观看日本www| 成人在线超碰| 亚洲欧洲在线视频| 潘金莲一级黄色片| 合欧美一区二区三区| 91av视频在线免费观看| 香蕉污视频在线观看| 九色porny丨国产精品| 翡翠波斯猫1977年美国| 亚洲欧美日韩成人在线| 国产精品视频你懂的| 神马午夜伦理影院| 中文字幕高清在线播放| 欧美在线观看你懂的| 欧美日韩理论片| 精品国产一区二区三区不卡蜜臂 | 成人欧美一区二区| 深夜福利视频在线观看| 一区二区中文字幕在线| 久色视频在线播放| 在线欧美激情| 日韩av在线网址| 中文字幕第69页| 9国产精品视频| 国产视频福利一区| 天堂成人在线视频| 久久精品一二三| 国产高清不卡无码视频| 桃色一区二区| 亚洲电影免费观看高清| 精品一区二区在线观看视频| 亚洲美女色禁图| 国产一区私人高清影院| 色网站免费观看| 亚洲欧洲精品成人久久奇米网| 久久久久久久久久网| 国产精品免费精品自在线观看| 日韩大片在线观看视频| 青草草在线视频| 人人超碰91尤物精品国产| 国内精品久久久久久久果冻传媒| 麻豆影视国产在线观看| 日韩欧美亚洲成人| 人妻激情偷乱频一区二区三区| 日韩国产专区| 日本一区二区不卡| 天天操天天射天天舔| ㊣最新国产の精品bt伙计久久| 欧美日韩亚洲一| 9l亚洲国产成人精品一区二三 | 农村黄色一级片| 蜜桃精品在线观看| 日本一区二区三区精品视频| 国产美女一区视频| 日韩欧美中文一区二区| 久久成人小视频| 日本色综合中文字幕| 麻豆成人小视频| 在线观看爽视频| 亚洲高清免费观看高清完整版| 黄色一级视频免费| 国产高清久久久久| 综合视频在线观看| 日本久久久久| 日韩资源在线观看| 正在播放亚洲精品| 中文字幕乱码一区二区免费| 色哟哟精品视频| 精品freesex老太交| 日韩免费在线观看视频| 免费黄色片在线观看| 色呦呦网站一区| 国产激情在线免费观看| 久久国产福利| 日本不卡一区| 色天使综合视频| 中文亚洲视频在线| 一区二区精品视频在线观看| 国产精品视频九色porn| 青青草久久伊人| 欧美va天堂在线| av一本久道久久波多野结衣| 日本资源在线| 日韩不卡在线观看| 69xxxx国产| 中文字幕av一区二区三区免费看| 免费看污污网站| 国产精品久久久久蜜臀| 91在线在线观看| 成人爽a毛片免费啪啪动漫| 日韩黄色高清视频| 天堂网免费视频| 亚洲欧洲三级电影| 人妻互换一二三区激情视频| 国产日韩高清一区二区三区在线| 奇米888一区二区三区| 久久久久久久性潮| 欧美夫妻性生活xx| 亚洲欧美日韩动漫| 精品视频1区2区3区| 欧美成人手机视频| 99国产精品一区| 亚洲国产精品三区| 亚洲小说欧美另类社区| 免费看污久久久| 亚洲成人1区| 97色在线视频观看| 在线免费av网站| 日韩欧美你懂的| 国产午夜精品久久久久| 综合中文字幕亚洲| 日本xxxx裸体xxxx| 久久精品国产一区二区| 4444亚洲人成无码网在线观看| 女厕嘘嘘一区二区在线播放| 92看片淫黄大片看国产片| 国产高潮在线| 久久婷婷国产麻豆91天堂| 天天操天天操天天操| 欧美性色综合网| 国产网友自拍视频| 国产精品乱码一区二区三区软件| 精品久久久久一区二区| 老司机精品视频导航| 国产精品久久..4399| 五月婷婷亚洲| 欧美一区免费视频| 中文字幕一区图| 国产热re99久久6国产精品| 17videosex性欧美| 久久这里只有精品99| 免费播放片a高清在线观看| 精品少妇一区二区三区视频免付费 | 青青青国内视频在线观看软件| 亚洲毛片一区二区| 亚洲精品视频专区| 欧美喷潮久久久xxxxx| 午夜毛片在线观看| 一区二区成人在线观看| 青青青视频在线免费观看| 26uuu另类欧美亚洲曰本| 亚洲精品成人无码毛片| 久久99久久久久久久久久久| 人妻少妇被粗大爽9797pw| 欧美不卡一区| 亚洲第一综合网站| 欧美aaaa视频| 日韩高清三级| 免费成人av| 国产一区二区在线网站| 91精品国产自产精品男人的天堂| 亚洲a在线播放| 日本一区二区三区中文字幕| 国产精品成人播放| 欧美色网在线| 国产精品igao视频| 免费电影日韩网站| 日本国产精品视频| 日韩伦理福利| 5278欧美一区二区三区| 爱啪啪综合导航| 性色av一区二区咪爱| 久久99亚洲网美利坚合众国| 久久不射电影网| av免费在线网站| 欧美成人中文字幕| 天堂av资源在线观看| 欧美成人免费视频| bestiality新另类大全| 欧美成人午夜免费视在线看片| 黄色在线论坛| 久久成人免费视频| 天天色天天射天天综合网| 欧美激情喷水视频| av老司机免费在线| 97不卡在线视频| 在线能看的av网址| 日韩免费av一区二区| 日本欧美韩国| 国产噜噜噜噜噜久久久久久久久| 日韩电影精品| 91久久精品www人人做人人爽| 日韩精品视频在线看| 国产精品区一区二区三在线播放| 国产一区二区三区亚洲| 快播亚洲色图| 欧洲杯足球赛直播| 一本一本a久久| 欧美国产先锋| 欧美三级在线观看视频| 老司机精品福利视频| 我要看一级黄色大片| 韩国女主播成人在线观看| 一级黄色免费毛片| av电影在线观看完整版一区二区| 草草影院第一页| 国产精品毛片久久久久久| 免费国产羞羞网站美图| 午夜精品免费在线观看| 97人妻一区二区精品视频| 欧美日韩美少妇| 亚洲国产欧美另类| 亚洲精品在线看| 黄色网页在线免费观看| 久久久免费精品视频| 欧美黑人疯狂性受xxxxx野外| 国产日韩精品在线播放| 草莓视频一区二区三区| 日韩电影免费观看在| 在线精品视频在线观看高清| 日韩在线一级片| 久久激情五月婷婷| 日韩成人av一区二区| 中文成人av在线| 欧美一级视频免费观看| 欧美日韩电影在线| 色哟哟国产精品色哟哟| 伊人久久精品视频| xxxx成人| 91老司机精品视频| 国产传媒欧美日韩成人精品大片| 黄黄视频在线观看| 日本成人在线不卡视频| 丰满岳乱妇一区二区| 国产精品日韩成人| 男人的天堂一区二区| 日韩一区二区免费在线观看| 精品视频一二三| 欧美极品xxxx| 成人亚洲精品| 青娱乐国产91| 一本色道久久综合亚洲精品不卡 | 久久久精品免费网站| 久草综合在线视频| 欧美性受xxxx黑人xyx性爽| 亚洲男人天堂久久| 久久久精品999| 日韩欧美精品一区二区综合视频| 国产乱子伦精品| 欧美高清不卡| 狠狠干狠狠操视频| 91久色porny| 在线观看 中文字幕| 日韩一级大片在线观看| 色三级在线观看| 国产精品高潮呻吟久久av野狼| 好吊妞视频这里有精品| 潘金莲一级淫片aaaaaa播放1| 久久国产精品72免费观看| 黄免费在线观看| 色香蕉成人二区免费| 手机看片1024国产| 久久久噜噜噜久久久| 视频在线一区| 91视频成人免费| 国产一区二区三区四| 国产亚洲精品久久久久久豆腐| 色999日韩国产欧美一区二区| 四虎影视精品成人| 18性欧美xxxⅹ性满足| 欧美黄色影院| 欧美变态另类刺激| 99久久99久久精品免费看蜜桃| 久草国产在线视频| 精品久久久久香蕉网| 丁香花在线观看完整版电影| 国产成人精品自拍| 亚洲激情专区| 国产精品300页| 色综合网站在线| 国产精品麻豆一区二区三区| 国产精品www色诱视频| 欧美日韩一区二区综合| 日本老熟妇毛茸茸| 国产精品久久久久婷婷| 91欧美日韩麻豆精品| 久久色精品视频| 日韩av综合| 亚洲中文字幕无码av永久| 94色蜜桃网一区二区三区| 久久精品视频7| 中文字幕精品久久| 国产精品一区二区美女视频免费看| 性欧美18一19内谢| 国产精品亚洲综合一区在线观看| 激情综合五月网| 日韩精品极品视频| 日韩中文影院| 中文一区一区三区免费| 国产麻豆精品在线观看| 日本少妇毛茸茸高潮| 日韩精品一二三四区| av在线一区不卡| 91精品国产吴梦梦| 94色蜜桃网一区二区三区| 中文字幕在线天堂| 欧美精品在线第一页| 鲁大师精品99久久久| 99久久国产宗和精品1上映| 成人免费视频在线观看| 秋霞欧美在线观看| 国产精品视频精品视频| 国内精品久久久久国产盗摄免费观看完整版 | 你懂的国产在线| 日日骚av一区| 国语一区二区三区| 美女一区二区三区视频| 洋洋av久久久久久久一区| 免费在线一级视频| 91中文字精品一区二区| 久久精品九九| 欧美黄色一级网站| 亚洲午夜精品视频| 九九九九九九精品任你躁| 又粗又黑又大的吊av| 亚洲欧美一区二区视频| 视频一区二区免费| 91亚洲人电影| 久久婷婷影院| 久久精品一级片| 中文字幕日韩高清| 乱亲女h秽乱长久久久| www.夜夜爽| 日韩欧美国产激情| 日本在线视频中文有码| 日韩一区二区电影在线观看| 99精品热视频| 国产黄色一区二区| 国产精品久久久久aaaa九色| 99riav1国产精品视频| 精品人妻伦九区久久aaa片|