往期系列:【HarmonyOS HiSpark AI Camera试用连载 】第一篇 开箱报告
【HarmonyOS HiSpark AI Camera试用连载 】第二篇 开发环境搭建
★Hispark Ai Camera文件挂载和烧录
前言
参考官方文件挂载和烧录文档: https://device.harmonyos.com/cn/docs/start/introduce/oem_camera_start_first_example-0000001051610926
Part 1:
网口烧录配置和驱动安装:
串口线连接开发板和PC机、网口连接路由器和开发板后配置主机ip和相关参数,确保开发板和PC机网络在同一个网段。
连接串口需要安装相关驱动,参考:
https://device.harmonyos.com/cn/docs/ide/user-guides/hi3516_hi3518-drivers-0000001050743695
图1-1 hitool设置
图1-2 本地ip配置
图1-3 boot参数配置
图1-4 与PC机ping测试
图1-5 打开hitool进行选择对应的芯片,选择烧写emmc设置开始地址和长度
Part 2:
进入boot,配置环境变量:
①setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";
从flash地址0x800开始处取出长度为0x4800的代码(512Byte即第一个扇区)段拷贝到内存中起始地址为0x80000000处,将cs:ip指向到0x80000000处。(OHOS_Image.bin)
②setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=15M rw;saveenv";
设置启动参数,输出模式为串口输出,波特率为115200,数据位8,rootfs挂载于EMMC器件,文件系统类型为vfat,保存当前配置(rootfs.img)
③reset复位单板
Part 3:
进入系统,显示第一个程序的结果
图1-5 camera_app程序
图1-6 第一个用户态进程
Last:
到这里说明开发板已经没有问题了,准备着手开始踏上新的开发之路!
体会:
鸿蒙的编译系统使用的是gn+ninjia,这二者结合起来比传统的makefile编译系要高效,尤其适合大系统的并行编译。
附1:
附2:鸿蒙文件目录结构(源:https://mp.weixin.qq.com/s/A9CvXh9MVOPwUw2SBD5agw )
base
├──startup 启动恢复子系统根目录
├──── frameworks
│ └── syspara_lite
│ ├── LICENSE 开源LICENSE文件
│ ├── parameter 系统属性模块源文件目录
│ │ ├── BUILD.gn
│ │ └── src
│ │ ├── BUILD.gn
│ │ ├── param_impl_hal 系统属性模块基于LiteOS-M核实现
│ │ └── param_impl_posix 系统属性模块基于LiteOS-A核实现
│ └── token
│ ├── BUILD.gn
│ └── src
│ ├── token_impl_hal
│ └── token_impl_posix
├──── hals
│ └── syspara_lite 系统属性模块硬件抽象层头文件目录
├──── interfaces
│ └── kits
│ └── syspara_lite 系统属性模块对外接口目录
└──── services
├── appspawn_lite 应用孵化模块
│ ├── BUILD.gn 应用孵化模块编译配置
│ ├── include 应用孵化模块头文件目录
│ ├── LICENSE 开源LICENSE文件
│ ├── moduletest 应用孵化模块自测试代码目录
│ └── src 应用孵化木块源文件目录
├── bootstrap_lite 启动服务模块
│ ├── BUILD.gn 启动服务模块编译配置
│ ├── LICENSE 开源LICENSE文件
│ └── source 启动服务模块源文件目录
└── init_lite 启动引导模块
├── BUILD.gn 启动引导模块编译配置
├── include 启动引导模块头文件目录
├── LICENSE 开源LICENSE文件
├── moduletest 启动引导模块自测试代码目录
└── src 启动引导模块源文件目录
vendor
└──huawei
└──camera
└──init_configs 启动引导模块配置文件目录(json格式,部署于/etc/目录下)