img_01.png

君正®


Copyright © Ingenic Semiconductor Co. Ltd 2022. All rights reserved.

Release history

Date Revision Change
2020.11.30 1.0 First release
2022.12.2 2.0 Second release

SDK工程下载

开发板配套的SDK源码工程均是通过百度网盘的方式进行对外发布。本节将讲述如何下载最新的源码工程以及解压相关的压缩包,文中附带下载链接。

SDK下载

网盘下载链接:https://pan.baidu.com/s/1PxHJhv7j_oXkFTjAVNInxA 

提取码:6svw

该链接下有开发板的芯片数据手册、开发板的硬件原理图以及SDK软件包。这里主要讲述软件包的下载,其他资料用户可根据自己的需要自行选择下载。这里选择最新的SDK软件包进行下载,如图1-1所示,如果有更新的版本请选择最新的。

img_02.png

图1-1

Buildroot下载

Halley5配套的软件开发平台需要使用Buildroot来提供最基础的文件系统,因此这里需要下载君正已经修改制作的Buildroot工程。

网盘下载链接: https://pan.baidu.com/s/1e57Ze_WXoOHGFN6xhcNLkQ

提取码: gx42

同样这里也选择最新的工程下载。(特别需要注意的是dl-xxxx的版本号一定要和SDK的版本号相对应,原则上推荐都下载最新的)

img_03.png

图1-2

工程解压

1、将下载完成的SDK工程目录中的

ingenic-linux-kernel4.4.94-x2000_v12-v8.0-20200125.tar.bz2文件拷贝到一个新建的目录下。

1. 将下载完成的Buildroot工程目录下的dl.tar.bz2拷贝到上述新建的目录下。在SDK工程中一般会带有Buildroot工程,如果没有需单独下载解压

2. 执行命令进行解压

$ tar -xf ingenic-linux-kernel4.4.94-x2000_v12-v8.0-202210125.tar.bz2

$ tar -xf dl.tar.bz2 -C ./buildroot/

SDK 简介

工程整体结构

Halley5配套的软件开发平台是君正开发的一套linux系统的发布、开发平台,平台的编译系统可支持c文件、cpp文件。同时可支持静态库、动态库以及可执行文件的编译生成。本软件开发平台还能够快速方便的集成、添加第三方应用和库文件。工程支持整体编译、模块的单独编译以及选择性编译。本软件开发平台的工程目录如下所示。

工程结构
build 整个工程的编译规则和说明文档
buildroot buildroot源码,提供最基础的文件系统
development 开发中的软件库
device 板级配置信息
docs 文档说明及SDK用户手册
external 第三方软件包
frameworks 中间件软件库
kernel kernel源码
packages 应用程序
prebuilts 编译工具链
tools ota升级工具
u-boot uboot源码

文档说明

本文档目的是为了帮助开发者快速的了解如何对SDK的编译以及程序的烧录,如果用户需要更加深入的了解Halley5的各个外设模块和应用开发,可以参考Halley5配套发布的其它文档。各文档的介绍说明请参考表1。

表1

文档名文档内容说明
Halley5 软件平台快速开发指南 帮助开发者快速了解平台软件的编译和烧写以及测试
Halley5 uboot开发手册 U-boot的配置编译、内核加载以及文件系统的挂载
Halley5 Linux内核开发手册 各内核驱动模块的配置编译,以及相应驱动源码的在内核结构的位置
Halley5 平台应用开发手册 Buildroot的配置编译、用户应用程序的添加和编译、应用程序的调试方法

SDK 编译

整体编译

本节主要介绍快速对SDK工程进行整体编译的方法,编译步骤具体如下:

1、设置环境变量

在工程目录下执行命令:

$ source build/envsetup.sh

1. 选择device

在工程目录下执行命令:

$ lunch

命令执行结束后会显示不同的配置方案,请根据开发板的配置输入编号进行选择,例如x2000halley5.v20或x2000halley5.v30。同时需要注意区分开发板的存储类型,如nand、nor和msc。关于lunch配置中的各选项的说明可参考表2的解读。如需要用到配置选择其对应编号即可,本文档里以x2000halley5.v30_nand_4.4.94-eng 配置进行演示。

表2

配置选项名称配置说明
x2000halley5.v30_nand_4.4.94-eng 适用于编译v30版本的开发板的kernel 4.4.94版本nand启动
x2000halley5.v30_nor_4.4.94-eng 适用于编译v30版本的开发板的kernel 4.4.94版本nor启动
x2000halley5.v30_msc_4.4.94-eng 适用于编译v30版本的开发板的kernel 4.4.94版本SD卡启动
x2000halley5.v30_msc_4.4.94_ota-eng 适用于编译v30版本的开发板的kernel 4.4.94版本OTA升级

1. 工程编译

在工程目录下执行make或make MAKE_JLEVEL=8或make -j8(多线程编译)

$ make -j8

注意:由于机器性能的不同编译时长也会有差异,通常会在2小时以上。

至此,工程的整体编译工作已完成。编译结果的输出具体如下:

① 工程目录/out/product/x2000halley5/image,生成kernel、system.ubifs、uboot镜像。

② 工程目录/out/product/x2000halley5/obj是buildroot、kernel、uboot、packages等编译过程中的输出的中间文件。

1. 工程clean

$ make clean

单独编译

本节主要介绍如何对uboot、kernel、buildroot和模块的单独编译,最后还将介绍如何打包文件系统镜像。在进行模块单独编译前需要进行环境变量设置和device的选择,具体操作请参考2.1中的相关描述,如当前终端已经设置无须重新设置。(需要注意的是单独编译的前提条件是工程已进行了整体编译)

编译uboot

1、清除uboot编译结果的方法,在工程目录下执行命令:

$ make uboot-clean

2、编译uboot的方法,在工程目录下执行命令:

$ make uboot

编译kernel

1. 清除kernel编译结果的方法,在工程目录下执行命令:

$ make kernel-clean

1. 配置kernel的方法,在工程目录下执行命令:

$ make kernel-menuconfig

3、编译kernel的方法,在工程目录下执行命令:

$ make kernel -j8

编译buildroot

1、清除buildroot编译中间文件的方法,在工程目录下执行命令:

$ make buildroot-clean

$ make buildroot-distclean

2、配置buildroot的方法,在工程目录下执行命令:

$ make buildroot-menuconfig

3、编译buildroot的方法,在工程目录下执行命令:

$ make buildroot -j8

4、局部修改buildroot后编译buildroot的方法,在工程目录下执行命令

$ make buildroot-rebuild

1. 在对一些第三方库或者是内核工具软件如,opencv和i2c-tools_4.1做出修改后可以通过执行buildroot内置的命令进行单独编译。

$ make buildroot-opencv-rebuild

$ make buildroot-i2c-tools-rebuild

buildroot工程所包含的第三方软件位于工程目录/buildroot/packages目录下,编译输出位于工程目录/out/product/x2000halley5/obj/buildroot-intermediate/build。

1. 关于buildroot其它命令的支持可以通过help选项进行查询,在工程目录下执行命令:

$ make buildroot-help

编译模块

本工程支持对单个模块的编译及对单个模块的clean操作。工程的编译系统初始化后,存在两套单模块的编译方法,一种是通用的模块编译方法mma命令,另外一种是直接在工程目录下使用make命令。在单独编译模块之前,需要确保当前终端的环境变量已设置,具体请参考2.1小节中的相关描述。

mma命令单独编译模块

mma命令为通用单模块编译方法,不区分此模块为host端还是target端。此命令的具体使用方法为:

1、进入到所要编译模块目录下,此模块目录下含有Build.mk文件。

2、执行mma命令,此模块以及此模块所依赖的模块都会被编译。

Target端模块编译

Tartget端模块编译是在工程目录下进行的,命令格式为:

$ make $(LOCAL_MODULE)

命令使用示例,以工程目录/packages/example/App/v4l2-h264dec模块为例,该模块在其目录下的Build.mk文件中LOCAL_MODULE赋值为:v4l2-h264dec。单独编译模块只需要在工程目录下执行命令:

$ make v4l2-h264dec

编译后的可执行文件最终将被直接安装到文件系统的相应路径下,可根据编译后最终的安装路径找到相应的可执行文件。

Target端模块clean

Tartget端模块clean可在工程目录下进行,命令格式为:

$ make $(LOCAL_MODULE)-clean

命令使用示例,以工程目录/packages/example/App/v4l2-h264dec模块为例,该模块在其目录下的Build.mk文件中LOCAL_MODULE赋值为:v4l2-h264dec。单独clean概模块只需要在工程目录下执行命令:

$ make v4l2-h264dec-clean

编译文件系统镜像

单独编译文件系统镜像的方法为,在工程目录下执行命令:

$ make systemimage

命令执行结束后,会在工程目录/out/product/x2000halley5/image下重新生成system的镜像。

打包文件系统镜像

打包文件系统镜像,将编译后输出的文件打包成最终的文件系统镜像,用于烧录到开发板。打包文件系统镜像需要在工程目录下执行命令:

$ make post-image

最终的文件系统镜像输出在工程目录/out/product/x2000halley5/image目录下。

烧录工具使用

本节主要讲述本开发平台配套的USB烧录工具的使用,此USB烧录工具可在ubuntu12.04、windowsXP以及Windows7以上的版本,均支持32位和64位。本开发指南只针对在ubuntu下使用USB烧录工具进行相应的烧写演示。在工程目录下运行get-burner下载最新的烧录工具。进入到烧写工具目录下,输入解压烧录工具文件命令:

$ tar -xf cloner-“版本号”-ubuntu_alpha.tar.gz

解压完成后进入到相应的烧写工具目录下,准备进行uboot、kernel、rootfs的烧录。开始烧录前需要确保开发板的两个Type-C接口和PC已连接。

注意:实际烧录工具版本可能与文档不一致,以SDK发布为准.

支持的烧录配置如下表所示, 注意区分X2000 和 X2000E 系列芯片

烧录配置说明
x2000_mmc0_lpddr3_linux.cfg eMMC启动默认烧录配置
x2000_mmc2_dtb_lpddr3_linux.cfg SD 卡启动外部devicetree烧录配置
x2000_mmc2_lpddr3_linux.cfg SD 卡启动默认烧录配置
x2000_sfc_nand_dtb_lpddr3_linux.cfg Nand 启动外部devicetree烧录配置
x2000_sfc_nand_lpddr3_linux.cfg Nand 启动默认配置
x2000_sfc_nand_ota_lpddr3_linux.cfg Nand 启动,支持OTA升级的烧录配置
x2000_sfc_nor_lpddr3_linux.cfg Nor 启动默认烧录配置

烧录SFC Nand

烧写SFC Nand的具体方式为:

1、进入烧写工具目录,执行命令:

$ ./cloner

2、命令执行结束后将打开一个图形界面软件,首先先进行相应的配置点击Config。

img_04.png

图4-1

  1.  基本信息的配置,点击INFO,进入基本配置信息,Platform选择x2000,Board选择x2000_sfc_nand_lpddr3_linux.cfg,具体可参图4-2。

    img_05.png

图4-2

  1.  配置镜像文件路径,点击POLICY进行相应的配置。顺序设置uboot、kernel和rootfs镜像文件的相应路径(文件名分别是uboot、kernel、system.ubifs),点击其对应的setting即可进行文件选择。配置可参考图4-3。

    img_06.png

图4-3

1. 设置完成后点击Save保存配置,准备烧写。

2. 点击烧录工具主界面的Start按钮。

3. 开发板进入烧写状态,先按下开发板的BOOT_SEL1按键,然后按下RST_N按键,待蓝色指示灯亮起后,再分别松开RST_N和BOOT_SEL1按键。

4. 等待烧录工具各项烧录完成到100%,如图4-4所示。

img_07.png

图4-4

烧录SFC Nor

烧录SFC Nor和SFC Nand的烧写差异在于配置的不同,具体的 配置方法为:

  1.  基本信息的配置,点击INFO,进入基本配置信息,Platform选择x2000,Board选择x2000_sfc_nor_lpddr3_linux.cfg,具体可参图4-5。

    img_08.png

图4-5

  1.  配置镜像文件路径,点击POLICY进行相应的配置。顺序设置uboot、kernel和rootfs镜像文件的相应路径,点击其对应的setting即可进行文件选择。配置可参考图4-6。

    img_09.png

图4-6

  1.  SFC配置,由于烧录工具支持的flash种类较多,在进行烧写前需要根据板载的nor flash的型号解决ID冲突的问题。点击norinfo,根据name查找到对应板载nor flash的ID并浏览是否有标红冲突的,如果有冲突择将其他的删除。配置界面参考图4-7。

    img_10.png

图4-7

4、设置完成后点击Save保存配置,准备烧写。

5、点击烧录工具主界面的Start按钮。

6、开发板进入烧写状态,先按下开发板的BOOT_SEL1按键,然后按下RST_N按键,待蓝色指示灯亮起后,再分别松开RST_N和BOOT_SEL1按键。

7、等待烧录工具各项烧录到100%,如图4-4所示。

烧录SD卡

本小节主要讲述如何通过USB烧录工具将镜像文件烧录到SD卡,以及如何从SD卡启动。烧录SD卡和烧录Nand的区别主要在于配置的差异,具体的 配置为:

1、基本信息的配置,点击INFO,进入基本配置信息,Platform选择x2000,Board选择x2000_mmc2_lpddr3_linux.cfg,具体可参图4-8。

img_11.png

图4-8

2、配置镜像文件路径,点击POLICY进行相应的配置。顺序设置uboot、kernel和rootfs镜像文件的相应路径(文件名分别是uboot、kernel、system.ext2),点击其对应的setting即可进行文件选择。配置可参考图4-9。需要注意的是,不同的存储介质使用的文件系统格式是不同的,均需要再编译之前重新进行lunch配置再编译。

img_12.png

图4-9

3、MMC选项配置,如图4-10所示。

img_13.png

图4-10

4、设置完成后点击Save保存配置,准备烧写。

5、点击烧录工具主界面的Start按钮。

6、开发板进入烧写状态,先按下开发板的BOOT_SEL1按键,然后按下RST_N按键,待蓝色指示灯亮起后,再分别松开RST_N和BOOT_SEL1按键。

7、等待烧录工具各项烧录到100%,如图4-4所示。

8、烧录完成后从SD卡启动:先按下开发板的BOOT_SEL0按键,然后按下RST_N按键,待蓝色指示灯亮起后,再分别松开RST_N和BOOT_SEL0按键。

烧录eMMC

Halley5 平台本身没有eMMC, 由于eMMC与SD类似,可以参考SD烧录过程。

烧录工具的擦除选项

本烧录工具擦除选项有整体擦除和非整体擦除,在第一次烧写时需要选择整体擦除,如果后续只想烧录某一个文件则可以将该选项去掉。相关配置界面如图4-11所示。

img_14.png

图4-11

其他配置

配置串口

串口是开发过程中最为重要的工具之一,在使用串口调试之前需要进行串口环境的配置:

1. 在ubuntu安装串口工具,执行命令:

$ sudo apt-get install minicom

2. 串口工具配置

minico配置,再PC终端输入命令:

$ sudo minicom -s

命令执行后会进入如下界面:

img_15.png

选择Serial port setup,回车进入串口配置,通过输入字母选择需要修改配置的选项,如下图所示:

img_16.png

关于配置选项的一些说明:

• Serial Device需要根据实际设备名称来选择,通常是ttyUSBx。

• 选项E,配置具体意义为波特率 115200,8个数据位,无校验位以及一个停止位。

• 选项F和G,硬件和软件流控选项必须是No。配置结束后回车进入1中的界面,选择Save setup as dfl保存配置,然后选择Exit from minicom退出。

3. 串口工具使用

在终端下输入命令:

$ sudo minicom

安全烧录

参考USBCloner烧录工具说明文档.pdf

SN烧录

参考USBCloner烧录工具说明文档.pdf

SD卡烧工具使用

本节将介绍SD卡烧录工具的使用,该烧录方式可以通过读卡器将镜像写入到SD卡并启动,从而实现对板载的Nand/Nor Flash的烧写,该方法主要针对不方便使用USB烧写的情景。使用SD卡对Nand或者Nor进行镜像的烧写必须经过三个步骤:

1. SD卡启动镜像的制作和烧写。

2. Nand/Nor镜像的制作和写入到SD卡。

3. 从开发板SD卡启动并烧写Nand/Nor。

SD卡启动镜像制作

本小节介绍如何编译制作用于SD卡启动的镜像(如果使用烧录工具提供的镜像文件,可以直接跳转至5.2小节)。

1. 进入工程目录下,执行命令:

$ source build/envsetup.sh

$ lunch

2. 根据实际需求选择相应的配置:

x2000halley5.v20_msc_4.4.94_burn-eng

3. 修改设备树,由于SD卡烧写需要通过device tree获取nand/nor flash的分区信息,所以需要修改工程目录/kernel-4.4.94/module_drivers/dts-stage/x2000/halley5_v20.dts,将ingenic,use_ofpart_info = /bits/ 8 <0>中的/bits/ 8 <0>改为/bits/ 8 <1>,具体可参考图5-1。

img_17.png

图5-1

4. 修改UBOOT配置,X2000芯片内置的是LPDDR3,X2000E内置LPDDR2。因此在不使用USB烧录工具的情况下需要修改u-boot的配置,选择对应的DDR类型。修改文件路径:工程目录/u-boot/include/configs/x2000_halley5.h ,修改配置参考图5-2。

img_18.png

图5-2

5. 在工程目录下执行编译命令:

$ make -j8

6. 编译完成后在工程目录/out/product/x2000halley5/image下会重新生成相应的镜像文件(kernel、system.ext2、uboot)。

SD卡启动镜像烧录

本小节主要讲述如何通过PC机将SD卡启动镜像写入到SD卡上指定位置,需要注意的是SD卡的设备节点/dev/sd*需要根据PC机上的实际名称自行确定,,勿直接执行以下步骤中的命令。烧录到SD卡的镜像文件可以是自己编译生成的,也可以直接使用烧录工具提供的镜像文件,对应关系如下表所示。


自行编译 烧录工具自带的镜像文件
命令中的文件名 X2000/X2000E X2000 X2000E
uboot uboot uboot_lpddr3 uboot_lpddr2
kernel kernel kernel kernel
system.ext2 system.ext2 system.ext2 system.ext2

1. 将编译后生成的三个镜像文件拷贝到烧录工具目录下(如果使用工具自带的镜像可忽略此步)。

2. 烧写uboot到SD卡指定位置,偏移为0

$ sudo ./burn_sd.sh 0 uboot /dev/sd*

3. 烧写kernel到SD卡指定位置,偏移为6144

$ sudo ./burn_sd.sh 6144 kernel /dev/sd*

4. 烧写system.ext2到SD卡指定位置,偏移为409600

$ sudo ./burn_sd.sh 409600 system.ext2 /dev/sd*

5. 烧录完成后,SD卡被分为了8个分区,这里需要将第八个分区格式化用于存放要烧录到nand/nor的镜像以及配置文件。具体步步骤如下:

a.格式化分区

$ sudo mkfs.ext2 /dev/sd*8

b.挂载分区到PC机/mnt目录

$ sudo mount /dev/sd*8 /mnt

c.进入到/mnt目录下,并创建image目录用于存放需要烧写到nor/nand的镜像文件

$ cd /mnt

$ sudo mkdir image

6. 至此,和SD卡相关的镜像已经制作完成,下面就如何使用SD卡烧写nor和nand分别讲述。

Nand镜像制作和烧录

烧录Nand镜像制作

1. 编译用于烧写到nand flash 的镜像文件

a. 打开uboot中flash参数配置功能相关的宏,器对应的路径位于工程目录/u-boot/include/configs/x2000_halley5.h,打开如下配置的宏:

#define CONFIG_NAND_BUILTIN_PARAMS

b. 修改工程目录/u-boot/tools/ingenic-tools/sfc_builtin_params/nand_device.c,中的相关分区使其保持和设备树文件halley5_v20.dts中的&sfc->nandflash节点的分区一致。

c. 在工程目录下执行命令,配置nand的编译环境,这里以 x2000halley5.v20_nand_4.4.94-eng 为例。

$ lunch x2000halley5.v20_nand_4.4.94-eng

d. 在工程目录下执行命令,重新编译生成相应的镜像文件

$ make -j8

2. 在SD卡烧录工具下新建一个目录,用于存放需要烧写到nand的镜像文件,注意这里的镜像文件应当是在使用lunch命令选择对应nand配置后重新编译后生成的镜像文件,请注意区分。

a.新建目录

$ mkdir nand_burn_file

b.将SD卡烧录工具目录下的add_chip_info_host拷贝到新建的目录下

$ cp add_chip_info_host nand_burn_file

c.将步骤1中编译后生成的三个镜像文件拷贝到新建的目录下

3. 进入到上述新建的目录下,使用add_chip_info_host工具,处理编译后生成的uboot镜像,以区分不同的芯片,该工具位于sd卡烧录工具目录下,以X2000芯片为例直接在该目录下执行命令:

$ ./add_chip_info_host uboot 128 X2000 /* 针对X2000的命令 */ $ ./add_chip_info_host uboot 128 X2000E /* 针对X2000E的命令 */

$ mv uboot U-BOOT.bin

4. 制作system.ubi,工程编译后生成system.ubifs是裸镜像,需要制作ubi卷标。

a.制作ubinize配置文件ubinize.ini,放在nand_burn_file 目录

参考文件工程目录/buildroot/package/ingenic/system_config/sd_burn/ubinize.ini(可直接将该文件拷贝一份)

b.开始制作system.ubi,在nand_burn_file 目录下执行命令:

$ ubinize -o system.ubi -p 131072 -m 2048 -s 2048 ubinize.ini

ubinize 参数:

-o:输出文件名。

-m:最小输入输出大小为2KiB(2048bytes),一般为页大小。

-p:物理可擦出块大小为128KiB=每块的页数页大小=642KiB=128KiB。

-s:用于UBI头部信息的最小输入输出单元,一般与最小输入输出单元(-m参数)大小一样。

6. nand_burn.ini制作,具体可参考工程目录/prebuilts/sd-burntools/nand_burn.ini,配置的语法如图5-3,如有需要可以自行修改。(注意:nand_burn.ini中的分区需要和步骤1中的分区保持严格一致如果需要添加分区,则需要对三个位置的配置进行修改)。

img_19.png

图5-3

Nand镜像写入到SD卡

1. 将制作好的 U-BOOT.bin、kernel、system.ubi拷贝到SD卡的第八个分区的image目录下。在拷贝之前需要确认一下sd卡的第八个分区是否已挂载到pc机的/mnt目录下,如果没有正确挂载请参考4.2节最后的说明。

$ ls /mnt /* 如果正确挂载 mnt目录下应该有一个名为image的目录 */

$ sudo cp U-BOOT.bin kernel system.ubi /mnt/image/

2. 将制作好的nand_burn.ini文件拷贝到SD卡的第八个分区下。

$ sudo cp nand_burn.ini /mnt/

至此烧录前的准备工作已完成,SD卡第八个分区下的目录结构如下:

├── **image**
│   ├── kernel
│   ├── system.ubi
│   └── U-BOOT.bin
├── **lost+found**
└── nand_burn.ini

SD卡启动烧录

1. 将SD卡插入开发板,进行SD卡烧录nand flash操作:先按下开发板的BOOT_SEL0按键,然后按下RST_N按键,待蓝色指示灯亮起后,再分别松开RST_N和BOOTL_SEL0按键。

2. 打印如图5-5信息则表示烧写成功。

img_20.png

图5-5

FAQ

如何将编译好的可执行程序模块导入至开发板?

A:导入程序的方式有adb、tftp等方式,具体方法可参考<<Halley5 平台应用开发手册>>。

编译kernel出现问题

/home/xxx/x2000/kernel/kernel-4.4.94 is not clean, please run 'make mrproper'

in the '/home/xxxx2000/kernel/kernel-4.4.94' directory.

/home/xxx/x2000/kernel/kernel-4.4.94/Makefile:1003: recipe for target 'prepare3' failed

make[2]: *** [prepare3] Error 1

make[2]: Leaving directory '/home/xxx/x2000/out/product/x2000halley5.v30_nand_4.4.94-eng/obj/kernel-intermediate'

Makefile:150: recipe for target 'sub-make' failed

make[1]: *** [sub-make] Error 2

出现上述现象通常是因为在kernel目录下执行了 make menuconfig进行了配置,然后到工程目录下执行编译命令造成的。这个时候的解决办法:

1. 到kernel目录下执行命令

$ make distclean

1. 回到工程顶层目录执行lunch选择板级后,并执行命令编译内核

$ make kernel -j8

提示:本SDK所有的编译配置都可以在工程顶层目录进行编译配置,具体参考本文档相关内容,不建议进入到某个目录下单独进行配置。

USB 烧录失败

换一根typeC 线或者换一个USB口重新尝试烧录,如果还是不能烧录成功,发送邮件到support@ingenic.com

程序无法执行或者编译时链接失败

确保编译器使用gcc version 7.2.0 (Ingenic Linux-Release5.1.0-Default(xburst2(fp64)+glibc2.29) 2021.12-22 10:52:10)执行 mips-linux-gnu-gcc -v可以查看.

Using built-in specs.

COLLECT_GCC=mips-linux-gnu-gcc

COLLECT_LTO_WRAPPER=/home/lcren/x2000/prebuilts/toolchains/mips-gcc720-glibc229/bin/../libexec/gcc/mips-linux-gnu/7.2.0/lto-wrapper

Target: mips-linux-gnu

Configured with: /home/toolchains/release/src/gcc-5-2015.11/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=mips-linux-gnu --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-arch-32=mips32r2 --with-arch-64=mips64r2 --with-float=hard --with-mips-plt --enable-extra-sgxxlite-multilibs --with-gnu-as --with-gnu-ld

..................................... --with-build-time-tools=/home/toolchains/release/install/opt/codesourcery/mips-linux-gnu/bin --with-build-time-tools=/home/toolchains/release/install/opt/codesourcery/mips-linux-gnu/bin SED=sed

Thread model: posix

gcc version 7.2.0 (Ingenic Linux-Release5.0.2-Default(xburst2(fp64)+glibc2.29) 2021.09-06 11:15:35)

如果没有上述现象,尝试进行编译环境变量设置和lunch板级选择,参考本文档的SDK编译部分的内容。