鸿蒙OpenHarmony南向:【Hi3516标准系统入门(命令行方式)】

 

Hi3516标准系统入门(命令行方式)

icon-caution.gif

 注意:

从3.2版本起,标准系统不再针对Hi3516DV300进行适配验证,建议您使用RK3568进行标准系统的设备开发。

如您仍然需要使用Hi3516DV300进行标准系统相关开发操作,则可能会出现无法适配的现象,此时请联系芯片供应商获取相关适配指导,或自行完成适配。

除小型系统外,Hi3516DV300开发板还支持标准系统。此章节简要介绍如何使用命令行在Hi3516DV300开发板上进行标准系统的开发。

下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。

在进行开发之前,请首先完成搭建开发环境。

编写“Hello World”程序

示例目录

applications/sample/hello│── BUILD.gn│── include│   └── helloworld.h│── src│   └── helloworld.c├── bundle.jsonbuild└── subsystem_config.jsonvendor/hisilicon└── Hi3516DV300└── config.json

开发步骤

开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

请在源码目录中通过以下步骤创建“Hello World”应用程序:

  1. 创建目录,编写业务代码。 新建applications/sample/hello/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改World为OHOS)。其中helloworld.h包含字符串打印函数HelloPrint的声明。当前应用程序可支持标准C及C++的代码开发。

    #include <stdio.h>
    #include "helloworld.h"
    int main(int argc, char **argv)
    {HelloPrint();return 0;
    }
    void HelloPrint()
    {printf("\n\n");printf("\n\t\tHello World!\n");printf("\n\n");
    }

    再添加头文件applications/sample/hello/include/helloworld.h,代码如下所示。

    #ifndef HELLOWORLD_H
    #define HELLOWORLD_H
    #ifdef __cplusplus
    #if __cplusplus
    extern "C" {
    #endif
    #endif
    void HelloPrint();
    #ifdef __cplusplus
    #if __cplusplus
    }
    #endif
    #endif
    #endif // HELLOWORLD_H

  2. 新建编译组织文件。

    1. 新建applications/sample/hello/BUILD.gn文件,内容如下所示:

      import("//build/ohos.gni")  # 导入编译模板
      ohos_executable("helloworld") { # 可执行模块sources = [       # 模块源码"src/helloworld.c"]include_dirs = [  # 模块依赖头文件目录"include" ]cflags = []cflags_c = []cflags_cc = []ldflags = []configs = []deps =[]    # 部件内部依赖part_name = "hello"    # 所属部件名称,必选install_enable = true  # 是否默认安装(缺省默认不安装),可选
      }

    2. 新建applications/sample/hello/bundle.json文件,添加sample部件描述,内容如下所示。

      {"name": "@ohos/hello","description": "Hello world example.","version": "3.1","license": "Apache License 2.0","publishAs": "code-segment","segment": {"destPath": "applications/sample/hello"},"dirs": {},"scripts": {},"component": {"name": "hello","subsystem": "sample","syscap": [],"features": [],"adapted_system_type": [ "mini", "small", "standard" ],"rom": "10KB","ram": "10KB","deps": {"components": [],"third_party": []},"build": {"sub_component": ["//applications/sample/hello:helloworld"],"inner_kits": [],"test": []}}
      }

      bundle.json文件包含两个部分,第一部分描述该部件所属子系统的信息,第二部分component则定义该部件构建相关配置。添加的时候需要指明该部件包含的模块sub_component,假如有提供给其它部件的接口,需要在inner_kits中说明,假如有测试用例,需要在test中说明,inner_kits与test没有也可以不添加。

  3. 修改子系统配置文件。 在build/subsystem_config.json中添加新建的子系统的配置。

    "sample": {"path": "applications/sample/hello","name": "sample"},

  4. 修改产品配置文件。 在vendor/hisilicon/Hi3516DV300/config.json中添加对应的hello部件,直接添加到原有部件后即可。

        "usb:usb_manager_native":{},"applications:prebuilt_hap":{},"sample:hello":{},"wpa_supplicant-2.9:wpa_supplicant-2.9":{},

编译

OpenHarmony支持hb和build.sh两种编译方式。此处介绍hb方式,build.sh脚本编译方式请参考使用build.sh脚本编译源码。

想要详细了解OpenHarmony编译构建模块功能的开发者可参考编译构建指南。

前提条件

  • 已正确[安装库和工具集]。
  • 已正确[安装编译工具]。
  • “Hello World”程序已编写完成。
  • 可正常登录Ubuntu环境。

操作步骤

请进入源码根目录,执行如下命令进行编译:

  1. 设置编译路径。

    hb set
  2. 选择当前路径。

    .
  3. 在hisilicon下选择hispark_taurus_standard并回车。

    icon-note.gif

     说明:

    同样的开发板在适配不同的场景时,要采用的编译形态不同(即此处要选择的product不同),请参考编译形态整体说明。

    图1 Hi3516编译设置图例  

    quick-start-hi3516-standard-build

  4. 执行编译。

    icon-note.gif

     说明:

    • 单独编译一个部件(例如hello),可使用“hb build -T 目标名称”进行编译。
    • 增量编译整个产品,可使用“hb build”进行编译。
    • 完整编译整个产品,可使用“hb build -f”进行编译。

    此处以完整编译整个产品为例进行说明。

    hb build -f
  5. 编译结束后,出现“build success”字样,则证明构建成功。

    icon-notice.gif

      须知:  编译结果文件及编译日志文件获取路径:out/hi3516dv300。

烧录

针对Hi3516DV300开发板,除了DevEco Device Tool(操作方法请参考[烧录]外,还可以使用HiTool进行烧录。

前提条件

  • 开发板相关源码已编译完成,已形成烧录文件。
  • 客户端(操作平台,例如Windows系统)已下载并安装[HiTool工具]。
  • 客户端(操作平台,例如Windows系统)已安装USB驱动,可参考[Hi3516DV300开发板USB驱动安装指导]。
  • 客户端已安装串口终端工具(例如IPOP)。
  • 使用USB线缆、串口线缆连接客户端与开发板。

操作步骤

  1. 准备烧录相关文件。

    1. 在客户端新建用于保存烧录文件的文件夹,例如D:\L2。
    2. 将编译完成的源码包下载至客户端并解压,将烧录相关文件拷贝至步骤1中新建的文件夹。

      Hi3516DV300开发板烧写所需文件为:boot.img、Hi3516DV300-emmc.xml、system.img、u-boot-hi3516dv300_emmc.bin、uImage、updater.img、userdata.img、vendor.img。

  2. 使用HiTool烧录。

    1. 打开HiTool。
    2. 设置HiTool参数。

      传输方式选择USB口,烧写方式选择烧写eMMC(单板的存储介质为eMMC)。

    3. 单击浏览在步骤1创建的文件夹中选择烧写配置文件(例如Hi3516DV300-emmc.xml)。

      quickstart-hi3516-standard-hitool-select

    4. 单击烧写后,按住开发板上串口旁的按钮(Update键),并拔插USB线(上下电)。。

      烧录开始后,可以在HiTool工具下方的控制台区域观察到烧录过程中的打印信息。

      烧录完成后,HiTool弹出提示框显示烧写成功。

    5. 单击确定。
  3. 导入启动参数。

    1. 使用终端工具打开串口。
    2. 拔插开发板电源使其重启,3s内在串口终端输入回车。

      终端界面中出现hisilicon #表示已连接开发板串口。

    3. 在串口终端拷贝如下启动参数后,按回车完成配置。

      setenv bootargs 'mem=640M console=ttyAMA0,115200 mmz=anonymous,0,0xA8000000,384M clk_ignore_unused androidboot.selinux=permissive rootdelay=10 hardware=Hi3516DV300 init=/init root=/dev/ram0 rw blkdevparts=mmcblk0:1M(boot),15M(kernel),20M(updater),2M(misc),3307M(system),256M(vendor),-(userdata)';setenv bootcmd 'mmc read 0x0 0x82000000 0x800 0x4800; bootm 0x82000000'
      saveenvreset

      icon-notice.gif

        须知:  输入启动参数时,请勿自行删除其中的空行。

搜狗高速浏览器截图20240326151450.png

运行

系统启动成功后,取源码out目录下的helloworld可执行文件放入系统的bin目录,通过以下步骤运行“Hello World”。

操作步骤

  1. 在启动界面进入bin目录。

    cd bin
  2. 进入bin目录后可以看到helloworld文件,通过以下命令运行helloworld程序。

    ./helloworld

    界面打印“Hello World!”,程序运行成功。

最后呢,很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

高清完整版请点击→《鸿蒙NEXT星河版开发学习文档》

针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细资料鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

《鸿蒙 (OpenHarmony)开发学习视频》

图片

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》

OpenHarmony北向、南向开发环境搭建

图片

《鸿蒙开发基础》

  1. ArkTS语言

  2. 安装DevEco Studio

  3. 运用你的第一个ArkTS应用

  4. ArkUI声明式UI开发

  5. .……

图片

《鸿蒙开发进阶》

  1. Stage模型入门

  2. 网络管理

  3. 数据管理

  4. 电话服务

  5. 分布式应用开发

  6. 通知与窗口管理

  7. 多媒体技术

  8. 安全技能

  9. 任务管理

  10. WebGL

  11. 国际化开发

  12. 应用测试

  13. DFX面向未来设计

  14. 鸿蒙系统移植和裁剪定制

  15. ……

图片

《鸿蒙开发实战》

  1. ArkTS实践

  2. UIAbility应用

  3. 网络案例

  4. ……

图片

 获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》

总结

鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发

并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/321156.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一加12/11/10/Ace2/Ace3手机上锁回锁BL无限重启黑屏9008模式救砖

一加12/11/10/Ace2/Ace3手机官方都支持解锁BL&#xff0c;搞机的用户也比较多&#xff0c;相对于其他品牌来说&#xff0c;并没有做出限制&#xff0c;这也可能是搞机党最后的救命稻草。而厌倦了root搞机的用户&#xff0c;就习惯性回锁BL&#xff0c;希望彻底变回官方原来的样…

数字旅游以科技创新为核心:推动旅游服务的智能化、精准化、个性化,为游客提供更加贴心、专业、高效的旅游服务

目录 一、引言 二、数字旅游以科技创新推动旅游服务智能化 1、智能化技术的应用 2、提升旅游服务的效率和质量 三、数字旅游以科技创新推动旅游服务精准化 1、精准化需求的识别与满足 2、精准化营销与推广 四、数字旅游以科技创新推动旅游服务个性化 1、个性化服务的创…

3D相机及应用

无论是2D相机和3D相机&#xff0c;在工业应用中都有着不可或缺的作用。3D相机与2D相机的最大区别在于&#xff0c;3D相机可以获取真实世界尺度下的3D信息&#xff0c;而2D相机只能获取像素尺度下的2D平面图像信息。通过3D相机得到的数据&#xff0c;我们可以还原出被测量物体的…

java线上问题排查之内存分析(三)

java线上问题排查之内存分析 使用top命令 top命令显示的结果列表中&#xff0c;会看到%MEM这一列&#xff0c;这里可以看到你的进程可能对内存的使用率特别高。以查看正在运行的进程和系统负载信息&#xff0c;包括cpu负载、内存使用、各个进程所占系统资源等。 2.用jstat命令…

RapidJSON介绍

1.简介 RapidJSON 是一个 C 的 JSON 解析库&#xff0c;由腾讯开源。 支持 SAX 和 DOM 风格的 API&#xff0c;并且可以解析、生成和查询 JSON 数据。RapidJSON 快。它的性能可与strlen() 相比。可支持 SSE2/SSE4.2 加速。RapidJSON 独立。它不依赖于 BOOST 等外部库。它甚至…

从互联网医院源码到搭建:开发视频问诊小程序的技术解析

如今&#xff0c;视频问诊小程序作为医疗服务的一种新形式&#xff0c;正逐渐受到人们的关注和青睐。今天&#xff0c;小编将为您详解视频问诊小程序的开发流程。 一、背景介绍 互联网医院源码是视频问诊小程序开发的基础&#xff0c;它提供了一套完整的医疗服务系统框架&…

Windows PC上从零开始部署ChatGML-6B-int4量化模型

引言 ChatGLM-6B是清华大学知识工程和数据挖掘小组&#xff08;Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University&#xff09;发布的一个开源的对话机器人。6B表示这是ChatGLM模型的60亿参数的小规模版本&#xff0c;约60亿参数。 ChatGML-6B-in…

spring高级篇(七)

1、异常处理 在DispatcherServlet中&#xff0c;doDispatch(HttpServletRequest request, HttpServletResponse response) 方法用于进行任务处理&#xff1a; 在捕获到异常后没有立刻进行处理&#xff0c;而是先用一个局部变量dispatchException进行记录&#xff0c;然后统一由…

文心一言 VS 讯飞星火 VS chatgpt (253)-- 算法导论18.2 6题

六、假设 B-TREE-SEARCH 的实现是在每个结点内采用二分查找&#xff0c;而不是线性查找。证明&#xff1a;无论怎样选择 t ( t 为 n 的函数)&#xff0c;这种实现所需的 CPU 时间都为 O(lgn)。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 首先&#xff0c;我…

ChatGPT理论分析

ChatGPT "ChatGPT"是一个基于GPT&#xff08;Generative Pre-trained Transformer&#xff09;架构的对话系统。GPT 是一个由OpenAI 开发的自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;它使用深度学习来生成文本。以下是对ChatGPT进行理论分析的几个主…

PTA|小字辈

题目 本题给定一个庞大家族的家谱&#xff0c;要请你给出最小一辈的名单。 输入格式&#xff1a; 输入在第一行给出家族人口总数 N&#xff08;不超过 100 000 的正整数&#xff09; —— 简单起见&#xff0c;我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号&#x…

c#数据库: 10.调用存储过程查询信息,并显示在窗体上

查询女生信息&#xff0c;并将信息显示在窗体上: 原数据表//右键数据库名,新建查询 ------------- 新建查询窗口,添加新建存储过程Procedure_GetGirls1和查询代码如下 : CREATE PROCEDURE dbo.Procedure_GetGirls1 /*存储过程名称*/ AS SELECT * f…

《设计一款蓝牙热敏打印机》

主控芯片用易兆威蓝牙ic&#xff0c;通讯接口&#xff1a;蓝牙、串口、usb 安卓apk用java kotlin编写、上位机用Qt编写。

STM32F4xx开发学习_SysTick

SysTick系统定时器 SysTick属于CM4内核外设&#xff0c;有关寄存器的定义和部分库函数都在core_cm4.h这个头文件中实现&#xff0c;可用于操作系统&#xff0c;提供必要的时钟节拍 SysTick简介 SysTick是一个 24 位向下定时器&#xff0c;属于CM4内核中的一个外设&#xff0c;…

套管外径测量仪 多尺寸型号 规格全可定制

套管&#xff08;bushing&#xff09;是一种将带电导体引入电气设备或穿过墙壁的一种绝缘装置。前者称为电器套管&#xff0c;后者称为穿墙套管。套管通常用在建筑地下室&#xff0c;是用来保护管道或者方便管道安装的铁圈。套管的分类有刚性套管、柔性防水套管、钢管套管及铁皮…

python+flask+ldap3搭建简易版IDaaS系统(前端站点)

Python工具开源专栏 Py0006 pythonflaskldap3搭建简易版IDaaS系统&#xff08;前端站点&#xff09; Python工具开源专栏前言目录结构前端网站的部分演示首页查询数据数据同步数据关联查询系统日志 完整代码已在GitHub上开源 前言 pythonflaskldap3搭建简易版IDaaS系统的前端站…

shell常用文件处理命令

1. 解压 1.1 tar 和 gz 文件 如果你有一个 .tar 文件,你可以使用以下命令来解压: tar -xvf your_file.tar在这个命令中,-x 表示解压缩,-v 表示详细输出(可选),-f 后面跟着要解压的文件名。 如果你的 .tar 文件同时被 gzip 压缩了(即 .tar.gz 文件),你可以使用以下…

Linux信号捕捉

要处理信号&#xff0c; 我们进程就得知道自己是否收到了信号&#xff0c; 收到了哪些信号&#xff0c; 所以进程需要再合适的时候去查一查自己的pending位图 block 位图 和 hander表&#xff0c; 什么时候进行检测呢&#xff1f; 当我们的进程从内核态返回到用户态的时候&…

微搭低代码入门06分页查询

目录 1 创建自定义代码2 编写分页代码3 创建页面4 创建变量5 配置数据列表总结 我们在数据模型章节介绍了微搭后端服务编写的三种方式&#xff0c;包括Http请求、自定义代码、云函数。本篇我们详细讲解一下利用自定义代码开发分页查询的功能。 1 创建自定义代码 打开控制台&am…

绘唐ai工具怎么获取

这款产品的最大亮点在于其高度精准的语音克隆能力&#xff0c;利用先进的模型&#xff0c;能够捕捉到用户独特的音调、音高和调制方式&#xff0c;使用户能够以前所未有的方式复制和利用自己的声音。仅需10秒钟的录制时间&#xff0c;即可实现声音的克隆&#xff0c;相当便捷。…