#openharmony # #uart# #RK3568 DAYU200# #源码:官方release 4.0#
一、驱动适配
首先查看厂商是否声明了节点:
在 vendor/hihope/rk3568/hdf_config/khdf/device_info/device_info.hcs 中确认设备节点:
在 vendor/hihope/rk3568/hdf_config/khdf/platform/rk3568_uart_config.hcs
在 drivers/hdf_core/adapter/khdf/linux/platform/uart/uart_adapter.c 编写了对接linux驱动的代码
对设备节点做好定义之后,就可以写串口读写代码了。
二、串口读写
1、uart代码
参考官方文档: https://docs.openharmony.cn/pages/v4.1/zh-cn/device-dev/driver/driver-platform-uart-des.md
uart_test.c文件:
BUILD.gn
bundle.json
OpenHarmony编译按照产品-子系统-部件-模块展开,这里我们创建了A2_uart部件,这里要将其加入到编译体系中:
在build/subsystem_config.json文件中声明子系统,加入构建:
在vendor/hihope/rk3568/config.json 中声明gcw子系统的各个部件,加入编译。
2、文件编译
编译日志文件位置: find /root/code/release_4_0/rk3568/out/rk3568/build.log
取消远程编译 | ./compile_cancel.sh |
开始远程编译(全量编译) | ./compile.sh ./build.py -p rk3568 |
快速编译(在不更改gn文件时可用) | ./compile.sh ./build.py -p rk3568 --fast-rebuild |
组件编译 | ./compile.sh ./build.sh --product-name rk3568 --build-target A2_uart |
注:./compile.sh 启用后台主机编译
编译部件、模块之前须全编译一次。
更多命令参考: https://blog.51cto.com/harmonyos/6049040
3、镜像文件下载
压缩镜像文件 | tar -cvzf gcw_images.tar.gz images/ |
上传镜像文件: | ./upload.sh code/release_4_0/rk3568/out/rk3568/packages/phone/gcw_images.tar.gz |
下载镜像文件: | /root/code/url.txt |
取消自动息屏: | hdc shell power-shell setmode 602 |
注:
在phone目录下压缩整个images。tar -cvzf images.tar.gz images/ 为压缩后的文件名
这样操作的话,3G的镜像文件最后被压缩为400M,还能很快下载完成。
4、镜像文件
镜像文件位置:/root/code/release_4_0/rk3568/out/rk3568/packages/phone/images
镜像地址和功能信息:
地址 | 名字 | 文件名 | 大小 | 功能 |
0x0000_0000 | Loader | MiniLoaderAll.bin | 455,104 | 加载操作系统内核 |
0x0000_0000 | Parameter | parameter.txt | 655 | 镜像配置信息 |
0x0000_2000 | Uboot | uboot.img | 4,194,304 | 引导启动程序 |
0x0000_4000 | misc | --- | --- | 系统配置信息 |
0x0000_6000 | resource | resource.img | 3,794,944 | 系统资源文件 |
0x0000_9000 | Boot_linux | boot_linux.img | 67,108,864 | linux内核启动程序 |
0x0003_9000 | ramdisk | ramdisk.img | 2,267,249 | 内存磁盘暂存启动 |
0x0003_B000 | System | system.img | 1,610,608,640 | ohos系统 |
0x0043_B000 | Vendor | vendor.img | 268,431,360 | 厂商软件和驱动 |
0x0063_B000 | sys-prod | sys_prod.img | 268,431,360 | 系统文件区 |
0x0065_4000 | chip-prod | chip_prod.img | 52,428,800 | 芯片配置文件 |
0x0066_D000 | updater | updater.img | 10,307,800 | 系统更新区 |
0x0067_D000 | Userdata | userdata.img | 1,468,006,400 | 用户数据 |
5、小结
可以看到,编译后生成的可执行文件在:code/release_4_0/rk3568/out/rk3568/packages/phone/system/bin 中
三、设备连接
1、UT-8851连接方式
2、DAYU200连接方式
将连接器USB一端连接电脑,另一端三根线连接至开发板【UART_RX_M1、UART_TX_M1、GND】。
三、程序执行
1、打开hdc调试
打开终端软件,这里直接用DEVECO,输入hdc targets list,会显示连接的设备:
然后查看system目录可以看到烧录的uart可执行文件。
2、执行程序
可以看到,能够收发数据。数据错误是因为输出显示格式问题。
四、总结
注意编译构建,依赖的部件、模块需要声明,编译命令要正确使用。