RISC-V大赛开发套件详解(九):D1 Dock Pro开发板快速上手教程

简介: 通过上文介绍,相信各位开发者已经对D1 Dock Pro开发板各项硬件功能有了更清晰的认识。本期我们将在上期的基础上,着重为大家讲解D1 Dock Pro开发板的开发环境搭建,并基于Helloworld例程演示通过剑池CDK下载代码、编译和运行的过程。

开发板简介

请参考《【D1 Dock Pro开发板】Lichee D1 Dock 开发板用户指南》


02

硬件环境搭建

2.1 硬件连接

Dock开发板供电采用Type-C口进行供电, 见图下方连接。

image.png

  • Type-C接口供电,同时拥有JTAG和UART的功能。剑池CDK(以下简称CDK)烧写和命令行烧写时接这跟线就够了。
  • 扬声器,可以播放声音


2.2 串口配置

按照2.1章节的图连接好JTAG/UART这个线(Type-C)之后,进入我的电脑设备管理器查看,可以发现有串口设备显示出来了。

image.png


2.2.1 串口软件配置

可以使用各种串口客户端软件,选择波特率为115200,这里以SSCOM为例。

image.png

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工具可以看到以下工具界面:

image.png

试用全志工具烧写时的硬件连接图如下:

image.png


注意:
用全志工具烧写时,请先拔掉JTAG/UART的Type-C连线,待烧写完毕之后再插上。


03

软件环境搭建

3.1 CDK开发

3.1.1 CDK介绍

基于Lichee D1 dock开发板的应用是利用CDK集成开发环境进行开发的。


关于的CDK的介绍,可以直接前往平头哥芯片开发社区进行查看,网址:

https://occ.t-head.cn/development/series/Index?spm=a2cl5.25411629.0.0.3f5d180fm46vMC&id=3864775351511420928&type=kind&softPlatformType=4


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,点击工具栏最右侧的平头哥图标。点击新建工程按钮。

image.png

在搜索栏里输入helloworld, 在结果里选择helloworld,点击右侧的创建工程,版本选择v7.5.1。

image.png

4.1.2 编译

右键点击helloworld工程,选择build,进行编译,直到结束。

image.png

编译完成后,可以在工程目录下out文件夹里找到yoc_rtos_8M.img文件。


注意:编译的速度依赖于WINDOWS下是否有安装杀毒软件或者监控软件,比如杀毒卫士360,卡巴斯基,赛门铁克等。通过尝试删除或停止该类软件运行,可以提高编译速度。


4.1.3 下载

  • 通过CDK烧写

先连接好硬件JTAG。然后点击红色框框处的按钮开始烧写。

640.png

640 (1).png

烧写完毕之后,按复位键即可启动。


  • 通过全志工具烧写

在没有JTAG的情况下,只能通过全志的PhoenixSuit工具进行烧写。将编译出来的yoc_rtos_8M.img文件选中。

image.png

  • 按住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按键示例,讲解按键的简单触发机制。欢迎大家继续关注。

相关文章
|
传感器 监控 物联网
玄铁RISC-V处理器入门与实战-RISC-V 玄铁系列开发板实践-基于玄铁C906处理器的D1 Dock Pro开发实践(下)
玄铁RISC-V处理器入门与实战-RISC-V 玄铁系列开发板实践-基于玄铁C906处理器的D1 Dock Pro开发实践
849 0
|
API
禅道----禅道和Gitlab对接
禅道----禅道和Gitlab对接
3841 0
禅道----禅道和Gitlab对接
vscode ctrl+/ 注释快捷键失效
首次安装vscode 不知道为何会快捷键失效,首先想到的就是键位冲突! 于是解决了。
6701 0
vscode ctrl+/ 注释快捷键失效
|
7天前
|
人工智能 自然语言处理 机器人
阿里云Clawdbot(OpenClaw)部署保姆级教程:接入微信/飞书/钉钉/QQ实现自动化运行
OpenClaw(前身为Clawdbot、Moltbot)是一款具备自然语言理解、任务自动化执行与多工具集成能力的开源AI代理工具,核心价值在于通过日常沟通式的指令,完成文件处理、日程管理、信息提取、团队协作同步等实操任务,彻底摆脱重复手工劳动。2026年,阿里云针对这款热门工具推出专属一键部署方案,通过预置优化镜像,将原本复杂的环境配置、依赖安装等步骤全部简化,无需专业编程基础,零基础用户也能在10分钟内完成部署,同时支持无缝接入微信、飞书、钉钉、QQ四大主流通讯工具,实现多场景自动化运行。
1415 15
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
教育领域的AI进展:智能辅导与个性化学习的技术革新与挑战
随着人工智能技术的发展,AI Agent在教育领域的应用日益广泛,特别是在智能辅导与个性化学习方面展现出巨大潜力。通过自然语言处理、机器学习和数据分析等技术,AI可模拟个性化辅导员,根据学生的学习情况提供定制化资源与实时反馈。未来,AI Agent将更注重情感分析与跨学科培养,成为教师的有力助手,推动教育公平与效率提升。然而,数据隐私、个体差异及教育资源不平衡等问题仍需克服,以实现更智能化、全面化的教育生态。
782 10
教育领域的AI进展:智能辅导与个性化学习的技术革新与挑战
|
移动开发 JavaScript 前端开发
HarmonyOS鸿蒙应用开发——探索原生与H5通信框架DSBridge
HarmonyOS版DSBridge是一个桥梁库,允许鸿蒙原生环境与JavaScript交互。它兼容Android和iOS的第三方DSBridge核心功能,支持同步和异步调用、命名空间API管理、进度回调及页面关闭监听等功能。主要特性包括适配鸿蒙NEXT版本、支持串行异步并发任务、兼容DSBridge 2.0与3.0版本JS脚本,并提供类形式集中管理API及自定义页面组件注册。源码仓库:HarmonyOS版 - DSBridge-HarmonyOS。安装命令为`ohpm install @hzw/ohos-dsbridge`。通过该库,开发者可以方便地在鸿蒙系统中实现原生与JS的高效交互。
902 1
|
机器学习/深度学习 PyTorch TensorFlow
RT-DETR改进策略【卷积层】| SPD-Conv 针对小目标和低分辨率图像的检测任务
RT-DETR改进策略【卷积层】| SPD-Conv 针对小目标和低分辨率图像的检测任务
704 11
RT-DETR改进策略【卷积层】| SPD-Conv 针对小目标和低分辨率图像的检测任务
|
数据采集 存储 人工智能
【AI大模型应用开发】【LangChain系列】实战案例2:通过URL加载网页内容 - LangChain对爬虫功能的封装
【AI大模型应用开发】【LangChain系列】实战案例2:通过URL加载网页内容 - LangChain对爬虫功能的封装
1093 0
|
安全 Java 数据库
Spring Security自定义登录认证
Spring Security自定义登录认证
693 0
|
存储 Linux 测试技术
RISC-V大赛开发套件详解(八):D1 Dock Pro开发板用户指南
通过上期介绍,相信各位开发者已经对D1 Dock Pro开发板有了初步的认识。本期我们将在此基础上,为大家带来D1 Dock Pro开发板用户指南,讲解说明开发板规格和各个接口,最后带大家上手搭建开发环境。
922 0
RISC-V大赛开发套件详解(八):D1 Dock Pro开发板用户指南