一. 簡(jiǎn)介
芯片介紹
XR806是全志科技旗下子公司廣州芯之聯(lián)研發(fā)設(shè)計(jì)的一款支持WiFi和BLE的高集成度無(wú)線MCU芯片,支持OpenHarmony輕量設(shè)置系統(tǒng)。具有集成度高、硬件設(shè)計(jì)簡(jiǎn)單、BOM成本低、安全可靠等優(yōu)點(diǎn)。可廣泛滿足 智能家居、智慧樓宇、工業(yè)互聯(lián)、兒童玩具、電子競(jìng)賽、極客DIY等領(lǐng)域的無(wú)線連接需求。
開發(fā)板介紹
XR806_OpenHarmony開發(fā)板是基于XR806芯片設(shè)計(jì)開發(fā)的參考評(píng)估,板身集成了XR806芯片、WiFi/BT雙天線、供電系統(tǒng)、按鈕及LED等,并引出了所有可用引腳,可供開發(fā)者進(jìn)行方案評(píng)估、DIY或小規(guī)模產(chǎn)品研發(fā)使用。以下為開發(fā)板外觀圖([更多硬件資料地址]
二. 快速上手
1. 環(huán)境搭建
開發(fā)基礎(chǔ)環(huán)境由windows 工作臺(tái)和Linux編譯服務(wù)器組成。windows 工作臺(tái)可以通過(guò)samba 服務(wù)或ssh 方式訪問(wèn)Linux編譯服務(wù)器。其中windows 工作臺(tái)用來(lái)燒錄和代碼編輯,Linux編譯服務(wù)器用來(lái)編譯OpenHarmony代碼,為了簡(jiǎn)化步驟,Linux編譯服務(wù)器推薦安裝Ubuntu20.04。
安裝編譯依賴基礎(chǔ)軟件
鴻蒙開發(fā)next學(xué)習(xí)文檔
mau123789是v直接拿取。
sudo apt-get install -y build-essential gcc g++ make zlib* libffi-dev
安裝和配置Python
打開Linux編譯服務(wù)器終端。
輸入如下命令,查看python版本號(hào),需使用python3.7以上版本。
python3 --version
如果低于python3.7版本,不建議直接升級(jí),請(qǐng)按照如下步驟重新安裝。以python3.8為例,按照以下步驟安裝python。
- 運(yùn)行如下命令,查看Ubuntu版本:
cat /etc/issue
- 根據(jù)Ubuntu不同版本,安裝python。
- 運(yùn)行如下命令,查看Ubuntu版本:
設(shè)置python和python3軟鏈接為python3.8。
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
安裝并升級(jí)Python包管理工具(pip3),任選如下一種方式。
- 命令行方式:
sudo apt-get install python3-setuptools python3-pip -y sudo pip3 install --upgrade pip
- 安裝包方式:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py
- 命令行方式:
安裝gn
打開Linux編譯服務(wù)器終端。
在根目錄下創(chuàng)建gn文件夾。
mkdir ~/gn
解壓gn安裝包至~/gn路徑下。
tar -xvf gn-linux-x86-1717.tar.gz -C ~/gn
設(shè)置環(huán)境變量。
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/gn:$PATH
生效環(huán)境變量。
source ~/.bashrc
安裝ninja
打開Linux編譯服務(wù)器終端。
解壓ninja安裝包至~/ninja路徑下。
tar -xvf ninja.1.9.0.tar -C ~/
設(shè)置環(huán)境變量。
vim ~/.bashrc
將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/ninja:$PATH
生效環(huán)境變量。
source ~/.bashrc
安裝工具鏈
- 編譯鏈工具推薦gcc-arm-none-eabi-10-2020-q4-major。
- 將gcc-arm-none-eabi-10-2020-q4-major包解壓到~/tools目錄下
tar -zxvf gcc-arm-none-eabi-10-2020-q4-major.tar.gz -C ~/tools/
2. 獲取源碼
安裝碼云repo工具
cd ~/
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ./repo
chmod a+x ./repo
sudo mv ./repo /usr/local/bin/
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
代碼下載
- OpenHarmony代碼下載,以O(shè)penHarmony 3.1 Beta版本為例,下載方式如下:
mkdir ~/openharmony
cd ~/openharmony
repo init -u git@gitee.com:openharmony/manifest.git -b refs/tags/OpenHarmony-v3.1-Beta --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'
下載板級(jí)soc模塊
soc下面是包含芯片SDK和驅(qū)動(dòng)代碼、第三方庫(kù)適配等接口層代碼。下載方法如下:mkdir ~/xradio cd ~/xradio git clone git@gitee.com:openharmony-sig/device_soc_allwinner.git
因?yàn)?a href="http://www.xsypw.cn/article/zt/" target="_blank">最新的代碼未在適配相應(yīng)的HDF驅(qū)動(dòng),所以需要將代碼回退到指定版本:d5d336941a1ba1ba3b84aebab1d7173d20968ccd
cd device_soc_allwinner git reset --hard d5d336941a1ba1ba3b84aebab1d7173d20968ccd
將此代碼拷貝到soc下并重新命名為allwinner
cp -raf device_soc_allwinner ~/openharmony/device/soc/allwinner
下載板級(jí)board模塊
board主要存放板級(jí)配置,下載方法:git clone git@gitee.com:openharmony-sig/device_board_allwinner.git
將此代碼拷貝到board下并重新命名為allwinner
cp -raf device_board_allwinner ~/openharmony/device/board/allwinner
下載vendor模塊
vendor存放的都是一些基于XRMCU開發(fā)的WiFi模組代碼樣例,下載方法:git clone git@gitee.com:openharmony-sig/vendor_allwinner.git
將此代碼拷貝到vendor下并重新命名為allwinner
cp -raf vendor_allwinner_xr806 ~/openharmony/vendor/allwinner
安裝hb
cd ~/openharmony
pip3 install build/lite # 此語(yǔ)句需要在SDK根目錄下執(zhí)行。
3. 編寫自己的hello word
? 在vendor/allwinner/xradio_wifi_demo創(chuàng)建demo_hello_world文件夾
cd vendor/allwinner/xradio_wifi_demo/
mkdir demo_hello_world
? 然后創(chuàng)建hello_world.c 以及BUILD.gn
cd demo_hello_world
touch hello_world.c
touch BUILD.gn
在hello_world.c中添加以下代碼
#include < stdio.h >
#include < string.h >
#include "ohos_init.h"
int DemoMain(int argc, char **argv)
{
printf("rnhello world!rnrn");
return 0;
}
SYS_RUN(DemoMain);
在BUILD.gn中添加以下代碼
source_set("hello_world"){
sources = [
"hello_world.c"
]
}
將helloworld添加到編譯中,在 device/soc/allwinner/xradio/xr806/BUILD.gn中添加以下依賴:
module_group(module_name) {
modules = [
"src",
"project",
"include",
]
configs = [
":SdkLdCconfig",
]
deps = [ "http://vendor/allwinner/xradio_wifi_demo/demo_hello_world:hello_world" ]
}
4. 編譯
- hb set 選擇demo指令,具體命令如下:
hb set -root # 通過(guò)鍵盤選擇 xradio_wifi_demo
修改編譯工具鏈地址
cd kernel/liteos_m make menuconfig
然后選擇Compiler->Compiler type(GCC),然后選擇路徑一行,按回車會(huì)彈出路徑的輸入框,此時(shí)輸入實(shí)際的工具鏈地址。按ESC返回,最后退出并保存配置即可。
修改配置文件中的工具鏈路徑
device/board/allwinner/xradio/liteos_m/config.gni
device/soc/allwinner/xradio/xr806/build/Makefilehb build 全量編譯命令
hb build -f
如果編譯中出現(xiàn)如下錯(cuò)誤:
需要修改device/soc/allwinner/xradio/osal/include/target_config.h
// #define OS_SYS_CLOCK (SystemCoreClock)
#define OS_SYS_CLOCK 160000000
5. 燒錄 && 運(yùn)行
- 固件和燒錄軟件位置
- 編譯生成的固件保存在out/xradio/xradio_wifi_demo目錄下,文件名固定為xr_system.img。
- 燒錄軟件保存在device/soc/allwinner/xradio/xr806/tools下,名稱為phoenixMC_xxxx.exe。
- 燒錄軟件界面
- 操作步驟
- PC安裝CP2102驅(qū)動(dòng)。
- 串口連接:通過(guò)USB-typeC數(shù)據(jù)線連接開發(fā)板和PC。
- 串口設(shè)置:點(diǎn)擊左上角的“刷新”按鈕可刷新已連接串口設(shè)備列表,勾選開發(fā)板對(duì)應(yīng)的COM口。串口波特率最大支持3000000,波特率越高,燒錄速度越快。如果高波特率下容易出現(xiàn)燒錄失敗,可檢查串口線、串口驅(qū)動(dòng)是否穩(wěn)定支持該波特率;或者降低波特率進(jìn)行嘗試。為了避免燒錄速度過(guò)慢,建議波特率選擇3000000。
- 固件選擇:點(diǎn)擊“選擇固件”按鈕選擇需要燒錄的固件文件(xr_system.img),固件信息欄會(huì)顯示出當(dāng)前固件的詳細(xì)信息。另外,通過(guò)拖拽方式將固件直接拖入工具界面也可以達(dá)到同樣的效果。
- 開啟一鍵燒錄功能:點(diǎn)擊“設(shè)置”按鈕調(diào)出設(shè)置界面,如下圖勾選“硬件復(fù)位燒寫模式”.
- 啟動(dòng)燒錄:點(diǎn)擊“升級(jí)固件”按鈕啟動(dòng)固件燒錄。燒錄狀態(tài)欄顯示當(dāng)前選定串口對(duì)應(yīng)設(shè)備的燒錄進(jìn)度和狀態(tài)。當(dāng)燒錄成功時(shí),進(jìn)度條會(huì)達(dá)到100%的進(jìn)度并顯示為綠色;當(dāng)燒錄失敗時(shí),進(jìn)度條顯示為紅色并報(bào)告錯(cuò)誤。
- 復(fù)位設(shè)備:固件燒錄成功后,開啟PC串口調(diào)試工具(115200,N,8,1),硬件復(fù)位開發(fā)板(按下復(fù)位按鈕),程序?qū)⑦\(yùn)行且看到以下打印輸出。
?審核編輯 黃宇
-
嵌入式
+關(guān)注
關(guān)注
5087文章
19150瀏覽量
306357 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5087瀏覽量
97785 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2377瀏覽量
42922 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3730瀏覽量
16424 -
xr806
+關(guān)注
關(guān)注
0文章
14瀏覽量
1326
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論