硬件及开发环境简述
这次感谢百问网的活动,有幸参与D1-H开发板的评测活动,因为也是第一次玩soc的板子,之前主要做mcu的,所以评测呢,选了简单点的部分,红外遥控切换由HDMI输出的lvgl的界面。这么选原因呢,一个是19年接触过lvgl,那时候是5.3的版本,后面产品定型后,几年主要软件开发,也没太关注硬件,这次也想试试,熟悉下soc的流程,尤其是咱们国产的全志D1—H,这个其实很早也关注过,后面国产化大环境,起码得上下手。
其他就不说了,根据开发流程,后面按照下面的流程进行测试
- 熟悉硬件
- 熟悉开发环境
- 熟悉开发流程
- 配置HDMI输出流程
- 在HDMI屏幕上显示LVGL
- 测试红外遥控键值
- 整体测试红外遥控器切换lvgl界面
1. 熟悉硬件
- 本次采用百问网提供的东山D1-H开发板,板子暂时没有手册,根据提供的图纸看开发板配置如下:
- 硬件:开发板可以参考东山哪吒STU硬件
- CPU : 全志D1-H,是玄铁C906,RISCV架构的,可以从全志官网看介绍
- 内存:从free看,应该是512M的
- 存储:du的结果是82M
- 板载有4个A口usb,2个C口usb(一个是串口调试,一个是usb,后面烧录用的就是这个usb)
- 一个mipi口,一个hdmi,可以做双显
- 供电是2.2的供电口,6~12V供电
- 两个按键(一个fel,一个reset,烧录用)
- 核心板是D1-h和内存、存储器、及xr829wifi组,ipx接口的外置天线
- 其他有红外,及背板部位预留的贴片排针位置
2. 环境搭建
- 从官网下载已装好编译环境所需依赖的ubuntu虚拟机
- SDK及其他资料的获取(见百问网资源下载)
- 解压SDK,这里必须在虚拟机下解压,本来这里是想在win下解压,然后在虚拟机挂个共享目录来着,但因文件格式问题,在win下解压报错(解压过程中会提示莫名的权限问题,然后网上有网友遇到过,讲是文件格式在win下无法识别导致的,我猜测是特殊的文件格式触发了用户权限),因此压缩包必须在虚拟机下解压
但是由于虚拟机空间可能不够,所以这里需要先在win下将压缩包的分包文件,综合为单独的压缩文件,然后再在虚拟机下解压这个单独的文件(很大的压缩包)
步骤如下:
3.1 先用cat将多个分包输出到一个压缩包,步骤如下:
在虚拟机(或wsl)命令行,切换到共享目录,然后执行
cat tina-d1-h.tar.bz2* > tina-d1-h.tar
将多个sdk分包打包为一个tar.bz2,此时路径下会有一个tina-d1-h.tar文件
这里的压缩文件及前面分包都可以用文件的md5跟下载源里的md5文件比对下,看下载有无问题
3.2 在虚拟机下解压到桌面,执行如下:
在虚拟机的shell下(切换到压缩包目录),执行
tar -xvf tina-d1-h.tar ~/Desktop/tina-d1-h
等待个几分钟吧,在桌面会有一个tina-d1-h的文件夹,这个就是sdk的目录了,后面基本都在这里面操作
-
前面sdk解压完成,可以验证下sdk,具体步骤如下:
1. 在shell执行,cd ~/Desktop/tina-d1-h,切换到sdk目录下 2. 继续执行,source build/envsetup.sh,设置tina的开发环境变量到当前shell 3. 执行lunch tina-d1-h-tina,选择编译目标,这个首次需要选tina-nezha,后面如果虚拟机不重启,再新建shell,直接lunch,然后两次回车(第二次会有个确认是不是tina-nezha的)就行 4. 最后执行make看下 ,如果前面没问题,这里能执行成功,则编译环境搭建ok(编译时间跟配置的虚拟机性能有关,我的要十分种左右,给的20线程)
-
在windows下安装好板子usb口的驱动,串口的驱动,确保在设备管理器能识别到一个adb设备,和ch343的串口设备,后面会通过adb下载测试应用及烧录镜像,用串口终端打开这个串口进行一些板子shell下的调试,所以这里驱动要装ok
3. 熟悉编译命令及固件烧录
在上一步已经搭建好的编译环境下,可以执行下面的命令
命令 | 命令有效目录 | 作用 |
---|---|---|
make | tina根目录 | 编译整个sdk |
make menuconfig | tina根目录 | 启动软件包配置界面 |
make kernel_menuconfig | tina根目录 | 启动内核配置界面 |
croot | tina下任意目录 | 快速切换到tina根目录 |
cconfigs | tina 下任意目录 | 快速切换到方案的 bsp 配置目录 |
cdevice | tina 下任意目录 | 快速切换到方案配置目录 |
cgeneric | tina 下任意目录 | 快速切换到方案 generic 目录 |
cout | tina 下任意目录 | 快速切换到方案的输出目录 |
cboot | tina 下任意目录 | 快速切换到 bootloader 目录 |
cgrep | tina 下任意目录 | 在 c / c++ / h 文件中查找字符串 |
minstall | path/to/package/ | tina 根目录 编译并安装软件包 |
mclean | path/to/package/ | tina 根目录 clean 软件包 |
mm [-B] | 软件包目录 | 编译软件包, -B 指编译前先 clean |
pack | tina 根目录 | 打包固件 |
m | tina 下任意目录 | make 的快捷命令,编译整个 sdk |
p | tina 下任意目录 | pack 的快捷命令,打包固件 |
在上一步已经在根目录执行了make,编译完整个sdk之后,按照上面列表里的命令在之前的shell里执行pack进行镜像打包,可能需要等个一分钟左右才能打包完毕,打包完在根目录下的out目录会有tina的img镜像文件,像下面这样:
tina_d1-h-nezha_uart0.img
格式应该是“tina开发平台+芯片型号+开发板+调试串口“这样子
最后就开始烧录
- 在shell中将img拷贝到win下(之前挂的共享目录)
- 在win中执行phoenixsuit烧录软件
- 在一键刷机选择上面共享目录中拷贝出来的img文件
- 选择全盘擦除升级,然后点击立即升级就完事儿(当然前提是驱动得装好,后面调试应用会用到adb),这里如果升级没反应,按下fel,然后reset两秒左右松开,然后松开fel就行了