Wordiansom · 2021年12月21日

《XR806开发板试用》成功编译到按键控制灯开关

xr806这个的编译环境安装真复杂,记录下。

1.在新机器上使用受限要安装repo

1.1 根目录下创建.bin文件夹

mkdir ~/.bin

1.2 配置为临时环境变量(也可配置为永久的)

PATH=~/.bin:$PATH

1.3 下载repo

curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo(你可能需要安装curl,按照步骤安装curl)

1.4 chmod +x repo

1.5 需要替换为国内的地址

https://mirrors.ustc.edu.cn/aosp/git-repo
在修改git-repo下载到的repo文件REPO_URL地址
将git-repo中的repo文件复制到 1 创建的.bin目录中

cd git-repo
cp repo ~/.bin/

1.6修改权限

chmod a+x ~/.bin/repo

1.7git认证:

git config --global user.email  "xxxxxxxx@qq.com"
git config --global user.name "your gitee/github'name"

2.安装Openharmony

2.1下载openharmony源码

mkdir xr806_openharmony
cd xr806_openharmony
repo init -u ssh://git@gitee.com/openharmony-sig/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify -m devboard_xr806.xml
repo sync -c
repo forall -c 'git lfs pull'

2.2安装必要库和工具

3.编译

3.1 编译文件

推荐使用gcc-arm-none-eabi-10-2020-q4-major

下载完成后保存在“~/tools”目录下(“~/tools”不存在则先创建)
解压命令:tar jxvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
修改~/xr806_openharmony/device/xradio/xr806/liteos_m/config.gni第37行,改为相应地址
`#Compiler prefix.
board_toolchain_prefix = "~/tools/gcc-arm-none-eabi-10-2020-q4-major/bin/arm-none-eabi-"`
由于按照之前的步骤都是一样的,就不需要修改了
修改~/xr806_openharmony/device/xradio/xr806/xr_skylark/gcc.mk
第八行,改地址

CC_DIR := ~/tools/gcc-arm-none-eabi-10-2020-q4-major/bin
CC_PREFIX := $(CC_DIR)/arm-none-eabi-

3.2 图形界面编译

cd device/xradio/xr806/xr_skylark #(1)进入原生SDK目录
cp project/demo/audio_demo/gcc/defconfig .config #(2)复制配置文件
make menuconfig #(3)图形化界面配置
make build_clean #(4)清除旧配置
make lib -j #(5)根据配置生成静态库和全局头文件
cd - #(6)返回xr806_openharmony根目录
hb set #(7)执行命令

image.png

image.png
image.png
选择wifi_skylark,回车
hb build -f #(8)编译
image.png

4.按键控制灯代码

static void MainThread(void *arg)                                               
{
    printf("LED test start\r\n");
    IoTGpioInit(GPIO_ID_PA21);                                                    //(3)
    IoTGpioSetDir(GPIO_ID_PA21, IOT_GPIO_DIR_OUT);                                //(4)

    IoTGpioInit(GPIO_ID_PA11);
    IoTGpioSetDir(GPIO_ID_PA11, IOT_GPIO_DIR_IN);

    IotGpioValue value;
        

    while (1) 
    {
       IoTGpioGetInputVal(GPIO_ID_PA11, &value);
       if (value == 1)
        {
            IoTGpioSetOutputVal(GPIO_ID_PA21, 1);  
        }
        else
        {
            IoTGpioSetOutputVal(GPIO_ID_PA21, 0); 
        }
                                                                
    }
}

5.烧录文件

xr_system.img固件
硬件复位烧写模式勾选上。
image.png
烧录成功界面:
image.png

6.效果

image.png!

推荐阅读
关注数
13823
内容数
139
全志XR806开发板相关的知识介绍以及应用专栏。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息