D1s RDC2022纪念版开发板开箱评测及点屏教程

作者@new_bee
part.0
 目录
芯片介绍
开发板介绍
rt-smart用户态系统编译使用
感想
引用
part.1
芯片介绍
risc-v架构由于其精简和开源的特性,得到业界的认可,近几年可谓相当热门。操作系统方面有rt-thread,linux等支持。在今年早些时候,google希望risc-v成为android支持的“一级”架构。
d1s 是22nm 64bit risc-v 架构的处理器,主频720mhz。内置64m ddr2。支持rgb,mipi等视频输出接口,adc、dac、i2s、pcm、dmic、owa 等多种音频接口。音视频编解码支持如下:
video decoding    h.265 up to 1080p@60fps    h.264 up to 1080p@60fps    mpeg-1/2/4, jpeg, vc1 up to 1080p@60fpsvideo encoding    jpeg/mjpeg up to 1080p@60fps    supports input picture scaler up/down  
part.2
开发板介绍
rdc2022 纪念版开发板是基于d1s芯片的小尺寸开发板,尺寸为5.5cm*4cm。正面包含一块d1s核心板,外围电路采用me3116作为dcdc降压芯片,ch340n作为usb-ttl芯片,pt4103作为背光驱动,并包含一块lm4890音频功放。总体电路比较简洁。
开发板背面为sd卡插槽,一个rgb888接口接显示屏,和一个触摸屏接口。该开发板还包含两组12脚的pmod接口用于接插外设。
rgb接口按引脚定义可以接入通用rgb屏幕,我这里接的是480*272的屏幕,引脚定义如下:
part.3
 rt-smart用户态系统编译使用
首先用typec数据线一端插入烧录口,按住fel按钮同时另一端插入电脑,此时设备进入fel模式。第一次插入设备管理器会发现未知设备。运行zadig安装驱动,如下图:
之后就可以在fel模式下刷机。
用typec数据线一端插入调试口,另一端插入电脑。电脑打开串口软件,选择对应串口,波特率设为500000,则可以通过串口进行调试。
开发编译环境准备
下载用户态代码:
git clone https://github.com/rt-thread/userapps.git  
下载内核态代码(注:位置可以与用户态代码分开,只要设置riscv64的工具链环境变量即可):
git clone https://github.com/rt-thread/rt-thread.git  
下载risc-v 64工具链:
cd userappspython3 tools/get_toolchain.py riscv64  
配置risc-v 64工具链环境变量(注意:按官方脚本需要执行):
source smart-env.sh riscv64  
这个脚本完成两个工作:
设置rtt_cc等环境变量
copy riscv的config到.config
但是某些shell下获取当前脚本目录错误,导致无法完成copy,第一次使用的话会继续用默认的arm工具链编译。
比较简单的解决办法是执行两步:
source smart-env.sh riscv64cp configs/def_config_riscv64 .config  
编译rt-thread内核
进入bsp目录
cd rt-thread/bsp/allwinner/d1s  
修改编译配置
scons --menuconfig  
首先打开uart3串口,选中uart3,并修改tx引脚为gpiog08,rx引脚为gpiog09,路径为:
general deivers configuration->general purpose uarts  
设置终端使用uart3,修改为uart3,路径为:
rt-thread kernel->kernel device object,  
这回目标是点屏,所以要打开lcd驱动,路径为:
general deivers configuration->enable lcd  
以上完成内核配置,保存退出。编译成功后会生成内核文件:
将sd.bin拷贝到windows下xfel工具目录下。按住开发板fel按钮同时另一端插入电脑。执行命令完成烧录:
xfel.exe sd write 57344 sd.bin  
编译rt-smart用户态应用点屏
首先将d1s bsp目录下 mksdcard.sh 脚本拷贝到userapps目录下,下载修改代码:
https://github.com/rbb666/rt-smart-userapp.git  
拷贝项目下的lvgl到userapps/apps目录下。
由于一些宏定义缺失,需要将lvgl-nes/lv_rtt_port下的lv_conf.h和lv_port.h拷到对应目录下:
同时,由于我没有触摸屏设备,所以注释掉lv_demo.c中的触摸屏初始化代码。
在用户态代码根目录下,编译用户态应用,执行脚本制作root文件系统,生成sdroot.bin,最后烧录文件系统。
scons./mksdcard.shxfel.exe sd write 8388608 sdroot.bin  
烧录完成后重启,就可以用调试口看到目录下有lvgl.elf。执行点亮屏幕
./lvgl.elf  
part.4
 感想
总体而言,risc-v的生态在厂商和开源社区的努力下逐步完善起来。芯片,开发板,操作系统都有诸多选择,工具链也可以较透明的无缝移植。
但是感触比较深的还是缺少更多的文档和入门教程,对于新人不会像树莓派等有开箱即用的效果(当然树莓派现在的性价比就不说了)。
另外,scons编译确实较方便,不过针对一些复杂的基于makefile的开源项目,移植到scons较为繁复。在用riscv工具链编译一些基于makefile的开源项目时,也遇到了一些坑,之后会写文章分享。当然riscv的发展不是一蹴而就的事,仍需业界和开源社区大力支持。


企业如何落地实施IPD(产品集成开发)?
4G牌照博弈升级:中国将成单一TD-LTE市场?
国产笔记本创新哪家强?小米Air等三款笔记本告诉你
以PICl6F7x单片机为主控芯片的读卡器系统设计
一线大厂产品显示:LED标称值封装是其中一个趋势
D1s RDC2022纪念版开发板开箱评测及点屏教程
管座漏电误诊一例
机器人拥有人类思维,实在不可思议
电流传感器的磁调制工作原理详解
松山湖机器人技能大赛正在报名中
高通投资Arm竞争对手
工控安全作为工业互联网发展的保障,其市场潜力巨大
2017年世界互联网大会,马云_马化腾_李彦宏_雷军_库克讲话汇总
浅谈智能照明系统
将电源管理与高速微控制器结合使用
北京街头大爷练书法,成就了Maker Faire绝赞应用
usb音频接口有哪些
锂电池生产工艺中变频器承担着什么作用
什么是有源音箱和无源音箱_有源音箱和无源的区别是什么
珠海力士乐叶片泵油封被击穿而串油的原因分析