《HarmonyOS开发 - IPC Camera开发笔记》第3章 HiSpark IPC Camera源码编译与下载

2024-08-30 12:18

本文主要是介绍《HarmonyOS开发 - IPC Camera开发笔记》第3章 HiSpark IPC Camera源码编译与下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开发环境:
开发系统:Ubuntu 20.04
开发板:HiSpark IPC Camera(Hi3518)

3.1 Harmony源码编译

Harmony在V1.1.1之后引入hb工具,因此不同的版本会有不同的编译方式。

3.1.1 Harmony V1.0编译

进入源码目录,执行以下命令:

$ python build.py ipcamera_hi3518ev300

ipcamera_hi3518ev300代表HiSpark IPC Camera开发板。

然后等待编译完成。

在这里插入图片描述

编译成功后,在out目录会生成ohos_image.bin, rootfs.img, userfs.img三个文件。

在这里插入图片描述

3.1.2 Harmony V1.1.4编译

HiSpark IPC DIY Camera基于华为海思Hi3518芯片,对应的产品名字是ipccamera_hispark_aries。
接下来编译ipccamera_hispark_aries,这里采用hb工具编译,在代码根目录下执行

$hb set

然后输入‘.’表示当然路径。

这里我们选择ipccamera_hispark_aries

在这里插入图片描述

可使用上下键进行选择,也可使鼠标选择。

然后输入以下命令开始编译:

$ hb build -f

等待编译完成。

编译成功后,在out目录会生成ohos_image.bin, rootfs_jffs2.img, userfs_jffs2.img三个文件。

在这里插入图片描述

ohos_image.bin, rootfs_jffs2.img, userfs_jffs2.img三个文件是需要烧写的,因此需要拷贝到Windows。

值得注意的是,Harmony最新均是采用hb编译。

3.2 Harmony固件烧写

HiSpark IPC Camera烧写Harmony固件到flash可以采用两种方式:串口方式、USB方式。
下面一一介绍。

3.2.1串口烧写

这里使用海思自研的烧录工具Hitool。

接下来准备好需要用到的文件,由于没有编译Hi3518ev300的Uboot,这里可以到润和官网下载。

固件下载地址

在这里插入图片描述

下载之后解压需要用到里面的Uboot文件。

在这里插入图片描述

这里按照分区方式烧写,可以将uboot、ohos_image.bin, rootfs_jffs2.img, userfs_jffs2.img四个文件一起烧写,也可以只烧写ohos_image.bin, rootfs_jffs2.img, userfs_jffs2.img三个文件。

然后准备一个分区文件ipcamera_hi3518.xml,输入以下内容:

<?xml version="1.0" encoding="GB2312" ?>
<Partition_Info ProgrammerFile="">
<Part Sel="1" PartitionName="fastboot" FlashType="spi" FileSystem="none" Start="0" Length="1M" SelectFile="u-boot-hi3518ev300.bin"/>
<Part Sel="1" PartitionName="ohos_image" FlashType="spi" FileSystem="none" Start="1M" Length="6M" SelectFile="OHOS_Image.bin"/>
<Part Sel="1" PartitionName="rootfs" FlashType="spi" FileSystem="none" Start="7M" Length="8M" SelectFile="rootfs_jffs2.img"/>
<Part Sel="1" PartitionName="userfs" FlashType="spi" FileSystem="none" Start="15M" Length="1M" SelectFile="userfs_jffs2.img"/>
</Partition_Info>

准备好所有文件资源就可以开始烧写了。

在这里插入图片描述

首先打开Hitool,选择HiBurn工具。

在这里插入图片描述

选择hi3518ev300芯片。

在这里插入图片描述

在 USB 线没有上电的前提下,选择好对应的串口号后,选择传输方式为串口,然后选择分区文件表。

在这里插入图片描述

接着勾选所有文件,上电,再点击擦除按钮。

在这里插入图片描述

不管是擦除还是烧写,都需要拔掉电源再插上电源。可以按照HiBurn控制台的提示进行操作。

在这里插入图片描述

等待烧写完成即可,串口烧写的时间比较长,请耐心等待。

在这里插入图片描述

修改U-boot的bootcmd及bootargs内容,打开终端,输入以下语句到终端:

setenv bootargs "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M";
setenv bootcmd "sf probe 0;sf read 0x40000000 0x100000 0x600000;go 0x40000000";
saveenv

在这里插入图片描述
然后输入reset即可重启。

在这里插入图片描述

输入回车会出现 OHOS # 提示符表示系统启动完成。

3.2.2 USB烧写

首先安装HiUSBBurnDriver,不然无法使用USB烧写。

在烧写之前,先擦除分区,参看上一节内容。

接下来就可以烧写固件了。

在这里插入图片描述

等待烧写完成即可。

在这里插入图片描述

输入以下语句到终端:

setenv bootargs "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M";
setenv bootcmd "sf probe 0;sf read 0x40000000 0x100000 0x600000;go 0x40000000";
saveenv

然后输入reset即可重启。

在这里插入图片描述



欢迎访问我的网站

BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
BruceOu的知乎


欢迎订阅我的微信公众号

关注公众号[嵌入式实验楼]获取更多资讯

这篇关于《HarmonyOS开发 - IPC Camera开发笔记》第3章 HiSpark IPC Camera源码编译与下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120796

相关文章

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

Python实现文件下载、Cookie以及重定向的方法代码

《Python实现文件下载、Cookie以及重定向的方法代码》本文主要介绍了如何使用Python的requests模块进行网络请求操作,涵盖了从文件下载、Cookie处理到重定向与历史请求等多个方面,... 目录前言一、下载网络文件(一)基本步骤(二)分段下载大文件(三)常见问题二、requests模块处理

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j