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