跳转至

固件编译

设置编译工具链

XR806_SDK使用gcc进行编译,推荐使用gcc-arm-none-eabi-10-2020-q4-major。linux环境下载window环境下载

编译工具链下载完成后保存在“~/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文件,生成图形化配置界面,如下图所示:

image-20211022163127380

(7)hb set

用于选择指定工程,输入命令后界面应该如下:

image-20211022165018261

此时再enter一下,界面如下:

image-20211022165059589

确定选中的是wifi_skylark,直接enter即可。

(8) hb build -f

比较常见的异常是出现下图:

image-20211022165824381

这是因为旧的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即可。