开发板简介
请参考《【D1 Dock Pro开发板】Lichee D1 Dock 开发板用户指南》。
02
硬件环境搭建
2.1 硬件连接
Dock开发板供电采用Type-C口进行供电, 见图下方连接。
- Type-C接口供电,同时拥有JTAG和UART的功能。剑池CDK(以下简称CDK)烧写和命令行烧写时接这跟线就够了。
- 扬声器,可以播放声音
2.2 串口配置
按照2.1章节的图连接好JTAG/UART这个线(Type-C)之后,进入我的电脑设备管理器查看,可以发现有串口设备显示出来了。
2.2.1 串口软件配置
可以使用各种串口客户端软件,选择波特率为115200,这里以SSCOM为例。
2.3 烧写工具安装
工具下载、安装及烧写请参考全志官方网站。
全志官网:
https://d1.docs.aw-ol.com/study/study_4compile/?spm=a2cl5.25411629.0.0.6a1a180fTvZ5FJ#phoenixsuit
烧写工具下载:
https://www.aw-ol.com/downloads/resources/13?spm=a2cl5.25411629.0.0.6a1a180fTvZ5FJ
打开PhoenixSuit工具可以看到以下工具界面:
试用全志工具烧写时的硬件连接图如下:
注意:用全志工具烧写时,请先拔掉JTAG/UART的Type-C连线,待烧写完毕之后再插上。
03
软件环境搭建
3.1 CDK开发
3.1.1 CDK介绍
基于Lichee D1 dock开发板的应用是利用CDK集成开发环境进行开发的。
关于的CDK的介绍,可以直接前往平头哥芯片开发社区进行查看,网址:
3.1.2 CDK安装包获取
直接前往平头哥芯片开放社区资源下载中心进行下载,其版本>=2.14.0。
CDK下载地址:
https://occ.t-head.cn/community/download?spm=a2cl5.25411629.0.0.3f5d180fm46vMC&id=575997419775328256
3.1.3 CDK安装
解压缩直接双击setup.exe进行安装,按照安装提示逐步点击完整即可。
3.2 命令行开发
3.2.1 yoctools介绍
yoctools是 YoC 软件开发平台的命令行编译系统,通过 YocTools 工具建立 YoC 开发环境,支持 YoC 组件管理、程序编译、烧录等功能。YocTools 支持 Git 来获取 YoC 组件的代码,只是为了让您在 YoC 环境中更轻松地使用 Git,每个组件都是一个独立的 Git仓库,仍然支持使用 Git 命令来维护代码的版本管理。
3.2.2 yoctools安装
执行以下命令安装yoctools, 其版本需要>=2.0.21
docker-ubuntu18:~$ sudo pip install yoctools -U docker-ubuntu18:~$ yoc -V 2.0.21
3.2.3 toolchain安装
使用yoc命令进行安装
lst@lst:~ > sudo yoc toolchain --riscv Start to download toolchain: riscv64-unknown-elf 100.00% [##################################################] Speed: 5.069MB/S Start install, wait half a minute please. Congratulations!
工具链会安装到/usr/local/thead/riscv64-unknown-elf目录下。
lst@lst:~ > ls /usr/local/thead/riscv64-unknown-elf bin include lib lib64 libexec riscv64-unknown-elf share lst@lst:~ > ls /usr/local/thead/riscv64-unknown-elf/bin riscv64-unknown-elf-addr2line riscv64-unknown-elf-gcc-ar riscv64-unknown-elf-ld.bfd riscv64-unknown-elf-ar riscv64-unknown-elf-gcc-nm riscv64-unknown-elf-lto-dump riscv64-unknown-elf-as riscv64-unknown-elf-gcc-ranlib riscv64-unknown-elf-nm riscv64-unknown-elf-c++ riscv64-unknown-elf-gcov riscv64-unknown-elf-objcopy riscv64-unknown-elf-c++filt riscv64-unknown-elf-gcov-dump riscv64-unknown-elf-objdump riscv64-unknown-elf-cpp riscv64-unknown-elf-gcov-tool riscv64-unknown-elf-ranlib riscv64-unknown-elf-elfedit riscv64-unknown-elf-gdb riscv64-unknown-elf-readelf riscv64-unknown-elf-g++ riscv64-unknown-elf-gdb-add-index riscv64-unknown-elf-size riscv64-unknown-elf-gcc riscv64-unknown-elf-gprof riscv64-unknown-elf-strings riscv64-unknown-elf-gcc-10.2.0 riscv64-unknown-elf-ld riscv64-unknown-elf-strip lst@lst:~ >
3.2.4 Debugger Server
当需要在命令行开发模式下通过JTAG烧写或者调试的时候需要先安装T-Head Debugger Server工具。工具的安装包和使用说明文档在平头哥芯片开放社区资源下载中心,请使用最新的版本。
工具下载网址:
https://occ.t-head.cn/community/download?spm=a2cl5.25411629.0.0.3f5d180fm46vMC&id=616215132330000384
04
Helloworld示例演示
4.1 CDK演示
4.1.1 示例获取
双击打开CDK,点击工具栏最右侧的平头哥图标。点击新建工程按钮。
在搜索栏里输入helloworld, 在结果里选择helloworld,点击右侧的创建工程,版本选择v7.5.1。
4.1.2 编译
右键点击helloworld工程,选择build,进行编译,直到结束。
编译完成后,可以在工程目录下out文件夹里找到yoc_rtos_8M.img文件。
注意:编译的速度依赖于WINDOWS下是否有安装杀毒软件或者监控软件,比如杀毒卫士360,卡巴斯基,赛门铁克等。通过尝试删除或停止该类软件运行,可以提高编译速度。
4.1.3 下载
- 通过CDK烧写
先连接好硬件JTAG。然后点击红色框框处的按钮开始烧写。
烧写完毕之后,按复位键即可启动。
- 通过全志工具烧写
在没有JTAG的情况下,只能通过全志的PhoenixSuit工具进行烧写。将编译出来的yoc_rtos_8M.img文件选中。
- 按住FEL按钮,重新上电后,重启后固件开始烧录,直到完成。
- 如果当前镜像已经支持xfex模式烧写(通过命令行help命令查看是否支持xfex命令),直接在串口命令行执行“xfex"命令,再执行"reboot"命令进行重启,重启后固件自动开始烧录,直到完成。
4.2 命令行演示
4.2.1 示例获取
docker-ubuntu18:~$ mkdir test docker-ubuntu18:~$ cd test docker-ubuntu18:~$ yoc init docker-ubuntu18:~$ yoc install sdk_app_d1 -b v7.5.1 Start to install components... sdk_app_d1 (v7.5.1), clone https://gitee.com/yocop/sdk_app_d1.git ... …… (省略) …… d1_evb (v7.5.1), clone https://gitee.com/yocop/d1_evb.git ... chip_d1 (v7.5.1), clone https://gitee.com/yocop/chip_d1.git ... Download components finish. docker-ubuntu18:~/test$ ls boards components solutions
4.2.2 编译
进入helloworld目录执行make进行编译,直到完成。
docker-ubuntu18:~/test/solutions$ cd helloworld docker-ubuntu18:~/test/solutions/helloworld$ make …… (省略) …… LINK out/helloworld/yoc.elf Generating yoc.bin riscv64-unknown-elf-objdump -d out/helloworld/yoc.elf > yoc.asm INSTALL yoc.elf scons: done building targets. YoC SDK Done [INFO] Create bin files [2022-02-23 16:05:31] Start to sign images with key:def_otp [2022-02-23 16:05:31] Sign [prim] with [def_otp] [2022-02-23 16:05:31] rsa verify ok.... [2022-02-23 16:05:31] Sign prim ok. ---------------------------------------------------------------- boot0, 0, 0, 0x00000000, 0x0000c000, 0x0000c000, boot0 gpt, 0, 0, 0x0000c000, 0x00004000, 0x00010000, gpt boot, 0, 0, 0x00010000, 0x00025000, 0x00035000, boot imtb, 0, 0, 0x00035000, 0x00002000, 0x00037000, imtb prim, 1, 0, 0x00037000, 0x00360000, 0x00397000, prim lfs, 0, 0, 0x00397000, 0x00452000, 0x007e9000 misc, 0, 0, 0x007e9000, 0x00013000, 0x007fc000 kv, 0, 0, 0x007fc000, 0x00004000, 0x00800000 boot0, 49152 bytes gpt, 8192 bytes boot, 143896 bytes prim, 131228 bytes imtb, 8192 bytes ---------------------------------------------------------------- Create yoc_rtos_8M.img in out directory Success!
4.2.3 烧写
可以通过4.1.3的下载方式进行烧录,也可以通过命令行进行烧录。
命令行烧录之前要先连接好T-HeadDebugServer。然后在终端输入make flashall命令:
lh@lh:~/.../solutions/helloworld > make flashall [2022-02-15 17:52:00] I am RISC-V Program partition: boot0 address: 0x0, size 49152 byte erasing... program 00x0000c000, 100% Program partition: gpt address: 0xc000, size 8192 byte erasing... program 00x0000e000, 100% Program partition: boot address: 0x10000, size 142980 byte erasing... program 0x00032000, 100% Program partition: imtb address: 0x35000, size 8192 byte erasing... program 00x00037000, 100% Program partition: prim address: 0x37000, size 131072 byte erasing... program 00x00057000, 100% lh@lh:~/.../solutions/helloworld >
4.3 运行
重新上电或按下RST键,系统启动,串口会有以下打印信息,表示系统运行成功。
[ (cli-uart)# 0.180]<I>[app]<app_task>app start........ [ 0.190]<I>[app]<app_task>hello world [ 3.190]<I>[app]<app_task>hello world [ 6.190]<I>[app]<app_task>hello world [ 9.190]<I>[app]<app_task>hello world [ 12.190]<I>[app]<app_task>hello world [ 15.190]<I>[app]<app_task>hello world [ 18.190]<I>[app]<app_task>hello world [ 21.190]<I>[app]<app_task>hello world
总结
本文介绍了DOCK开发板的开发环境及软硬件搭建,再通过一个helloworld示例演示了如下载代码, 编译,下载和运行。后续我们将为大家介绍D1 Dock Pro开发板的Button按键示例,讲解按键的简单触发机制。欢迎大家继续关注。