1、构建工作文件夹
(1)cd ~
(2)mkdir work
(3)cd work
(4)mkdir xr806
(5)cd xr806
2、获取资源
(1)wget http://www.armsoc.cn/whycan/xr806/xr806_sdk_v1.2.1.tgz
(2)wget http://www.armsoc.cn/whycan/xr806/gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2
如果获取失败,直接whycan下载(可能需要积分)
-->freeRTOS bsp
xr806_sdk_v1.2.1.tgz
-->gcc工具链
gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2
3、编译一个例程
(1)解压bsp
tar -xzvf xr806_sdk_v1.2.1.tgz
(2)选择一个例程进行编译
cd ~/work/xr806/xr806_sdk_v1.2.1/project/demo
ls
可以看到现在有一下几个例程
book@book-desktop:~/work/xr806/xr806_sdk_v1.2.1/project/demo$ ll
总用量 32
drwxrwxr-x 8 book book 4096 4月 2 16:50 ./
drwxrwxr-x 10 book book 4096 4月 2 16:50 ../
drwxrwxr-x 3 book book 4096 4月 2 17:26 at_demo/
drwxrwxr-x 4 book book 4096 4月 2 17:23 audio_demo/
drwxrwxr-x 8 book book 4096 4月 2 16:50 bluetooth/
drwxrwxr-x 3 book book 4096 4月 2 17:22 hello_demo/
drwxrwxr-x 4 book book 4096 4月 2 16:50 wlan_ble_demo/
drwxrwxr-x 3 book book 4096 4月 2 16:50 wlan_demo/
(3)选择hello_demo
cd hello_demo
(4)进入gcc目录,进行编译
cd gcc
make
结果,编译出错了,原因是我们没有安装交叉编译工具链。
...
/bin/sh: 1: /home/book/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi-gcc: not found
../../../../project/project.mk:437: recipe for target 'hello_demo.elf' failed
make[1]: *** [hello_demo.elf] Error 127
make[1]: 离开目录“/home/book/work/xr806/xr806_sdk_v1.2.1/project/demo/hello_demo/gcc”
../../../../project/project.mk:426: recipe for target '__all' failed
make: *** [__all] Error 2
4、安装交叉编译工具链
(1)解压工具链
cd ~/work/xr806/
tar -xvf gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2
(2)复制到项目例程指定的目录
根据上面的错误信息,我们可以知道交叉编译工具链,应该是存放在这个位置:
/home/book/tools/gcc-arm-none-eabi-8-2019-q3-update/
cd ~
mkdir tools
cd ~/work/xr806/
cp -r gcc-arm-none-eabi-8-2019-q3-update ~/tools/
5、回到例程目录,重新编译
cd ~/work/xr806/xr806_sdk_v1.2.1/project/demo/hello_demo/gcc/
make
编译结果,看起来像是成功了
~/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi-objcopy -O binary -R .xip hello_demo.elf hello_demo.bin
~/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi-objcopy -O binary -j .xip hello_demo.elf hello_demo_xip.bin
~/tools/gcc-arm-none-eabi-8-2019-q3-update/bin/arm-none-eabi-size hello_demo.elf
text data bss dec hex filename
39768 1576 2248 43592 aa48 hello_demo.elf
make[1]: 离开目录“/home/book/work/xr806/xr806_sdk_v1.2.1/project/demo/hello_demo/gcc”
book@book-desktop:~/work/xr806/xr806_sdk_v1.2.1/project/demo/hello_demo/gcc$
我们得到了两个bin文件,一个elf文件
hello_demo.bin
hello_demo_xip.bin
hello_demo.elf
最近编辑记录 LinjieGuo (2022-04-10 18:37:56)
离线
6、烧写程序到开发板
参考链接:跳转到全志在线帖子
(1)生成烧写镜像
上述make只是生成了bin文件,我们需要进一步生成烧写镜像,才可以顺利下载。
make image
Flash Layout:
sec bin 0 boot_40M.bin : flash_offs: 0x00000000( 0K) data_size: 0x00002F28( 12K)
sec bin 1 app.bin : flash_offs: 0x00004000( 16K) data_size: 0x00004920( 19K)
sec bin 2 app_xip.bin : flash_offs: 0x00029800( 166K) data_size: 0x000058E0( 23K)
generate image: xr_system.img
cp -t ../../../../out/ ../image/"xr806"/*.bin ../image/"xr806"/xr_system.img *.map
book@book-desktop:~/work/xr806/xr806_sdk_v1.2.1/project/demo/hello_demo/gcc$
(2)获取工具
工具存放在bsp包./tools目录里,程序文件为phoenixMC.exe。
(3)烧写镜像
如下图所示
(4)查看打印
如下图所示
看起来,helloworld字样已经出来了,说明编译环境基本上已经搭建好了。
最近编辑记录 LinjieGuo (2022-04-11 00:31:38)
离线