【GzMark】D1h开发板硬件及开发环境简述

硬件及开发环境简述

这次感谢百问网的活动,有幸参与D1-H开发板的评测活动,因为也是第一次玩soc的板子,之前主要做mcu的,所以评测呢,选了简单点的部分,红外遥控切换由HDMI输出的lvgl的界面。这么选原因呢,一个是19年接触过lvgl,那时候是5.3的版本,后面产品定型后,几年主要软件开发,也没太关注硬件,这次也想试试,熟悉下soc的流程,尤其是咱们国产的全志D1—H,这个其实很早也关注过,后面国产化大环境,起码得上下手。
其他就不说了,根据开发流程,后面按照下面的流程进行测试
- 熟悉硬件
- 熟悉开发环境
- 熟悉开发流程
- 配置HDMI输出流程
- 在HDMI屏幕上显示LVGL
- 测试红外遥控键值
- 整体测试红外遥控器切换lvgl界面

1. 熟悉硬件

  1. 本次采用百问网提供的东山D1-H开发板,板子暂时没有手册,根据提供的图纸看开发板配置如下:
    • 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. 环境搭建

  1. 从官网下载已装好编译环境所需依赖的ubuntu虚拟机
  2. SDK及其他资料的获取(见百问网资源下载)
  3. 解压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的目录了,后面基本都在这里面操作
  1. 前面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线程)
    
  2. 在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开发平台+芯片型号+开发板+调试串口“这样子

最后就开始烧录

  1. 在shell中将img拷贝到win下(之前挂的共享目录)
  2. 在win中执行phoenixsuit烧录软件
  3. 在一键刷机选择上面共享目录中拷贝出来的img文件
  4. 选择全盘擦除升级,然后点击立即升级就完事儿(当然前提是驱动得装好,后面调试应用会用到adb),这里如果升级没反应,按下fel,然后reset两秒左右松开,然后松开fel就行了