固件编译
设置编译工具链
XR806_SDK使用gcc进行编译,推荐使用gcc-arm-none-eabi-10-2020-q4-major。
编译工具链下载完成后保存在“~/tools”目录下(“~/tools”不存在则先创建)。
OpenHarmony的编译分两部分,一部分是编译OpenHarmony的系统库,使用gn脚本,OpenHarmony的编译工具在device/xradio/xr806/liteos_m/config.gni设置:
# Compiler prefix.
board_toolchain_prefix = "~/tools/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-"
# Compiler type, "gcc" or "clang".
board_toolchain_type = "gcc"
另一部分是芯片驱动的编译,也叫原生库,使用makefile脚本,原生库的编译工具在device/xradio/xr806/xr_skylark/gcc.mk设置:
# -------------------------------------------------------------
# cross compiler
# -------------------------------------------------------------
CC_DIR := ~/tools/gcc-arm-none-eabi-10-2020-q4-major/bin
CC_PREFIX := $(CC_DIR)/arm-none-eabi-
对代码工程进行配置
首次编译工程,需要对原生库进行配置,否则无法编译通过,配置步骤如下:
cd device/xradio/xr806/xr_skylark #(1)进入原生SDK目录
cp project/demo/audio_demo/gcc/deconfig .config #(2)复制配置文件
make menuconfig #(3)图形化界面配置
make build_clean #(4)清除旧配置
make lib -j #(5)根据配置生成静态库和全局头文件
cd - #(6)返回Harmony根目录
hb set #(7)选择wifi_skylark
hb build -f #(8)编译,后续不需要重新配置
关键步骤说明
(3)make menuconfig
执行该命令后,会获取目录下的.config文件,生成图形化配置界面,如下图所示:
(7)hb set
用于选择指定工程,输入命令后界面应该如下:
此时再enter一下,界面如下:
确定选中的是wifi_skylark,直接enter即可。
(8) hb build -f
比较常见的异常是出现下图:
这是因为旧的flash分配方案不再使用,这种情况会在device/xradio/xr806/xr_skylark/project/demo/wlan_ble_demo/image/xr806(或者device/xradio/xr806/xr_skylark/project/demo/audio_demo/image/xr806)自动生成文件image_auto_cal.cfg,把image_auto_cal.cfg里面的内容覆盖image_wlan_ble.cfg或者image.cfg即可。
固件烧录
烧录软件位置
编译生成的固件在device/xradio/xr806/xr_skylark/out,名称为xr_system.img。
XR806的烧录固件为phoenixMC_xxxx.exe,文件位于device/xradio/xr806/xr_skylark/tools。打开后界面如下:
软件配置
点击“刷新”按钮,COM1对位置会出现已经连接对串口。XR806_OpenHarmony开发板使用的是串口芯片是CP2102,通过设备管理器可以看到开发板的端口号,如下图所示,如果没有则先安装CP2102驱动(点击下载)。
修改烧录速率,从921600修改为3000000。
点击“选择固件”,选择xr_system.img。
点击“设置”,勾选“硬件复位烧写模式”,如下图所示。
设置完成后界面如下图所示,点击“升级固件”,等下方的进度条完成即可。
常见问题
- 驱动已经安装,点击刷新没反应
可能是因为开发板已经连接了串口调试助手,串口被占用。
类似的情况还有点击升级时,烧录软件提示:open uart error!
- 进度95%失败
点击“设置”,如果“写入后进行校验”没有勾选,可以尝试勾选能否解决。
- 显示synchron error!
如果开发板能正常工作,使用串口(波特率115200)输入upgrade后,再进行烧录。
如果开发板不能工作,检查开发板C3时候漏焊或者虚焊。如果焊接正常,尝试使用镊子或其他办法短接开发板上的GNB和PB2两个焊点后,按下复位按键,再进行烧录。
资料参考:
https://xr806.docs.aw-ol.com/
资料版权及解释权由全志科技所有。