hi3516标准系统入门(ide方式)
除小型系统外,hi3516dv300开发板还支持标准系统。此章节简要介绍如何使用ide在hi3516dv300开发板上进行标准系统的开发。
下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“hello world!”。
在进行开发之前,请完成如下准备工作:
- [搭建开发环境]
- [创建工程并获取源码]
- 鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/readme.md点击或者复制转到。
编写“hello world”程序
示例目录
applications/sample/hello
│── build.gn
│── include
│ └── helloworld.h
│── src
│ └── helloworld.c
├── bundle.json
build
└── subsystem_config.json
productdefine/common
└── products
└── hi3516dv300.json
开发步骤
请在源码目录中通过以下步骤创建“hello world”应用程序:
-
创建目录,编写业务代码。 新建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
-
新建编译组织文件。
-
新建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 # 是否默认安装(缺省默认不安装),可选 }
-
新建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没有也可以不添加。
-
-
修改子系统配置文件。 在build/subsystem_config.json中添加新建的子系统的配置。
"sample": { "path": "applications/sample/hello", "name": "sample" },
-
修改产品配置文件。 在productdefine/common/products/hi3516dv300.json中添加对应的hello部件,直接添加到原有部件后即可。
"usb:usb_manager_native":{}, "applications:prebuilt_hap":{}, "sample:hello":{}, "wpa_supplicant-2.9:wpa_supplicant-2.9":{},
编译
deveco device tool支持hi3516dv300开发板的源码一键编译功能,提供编译工具链和编译环境依赖的检测及一键安装,简化复杂编译环境的同时,提升了编译的效率。
-
在菜单栏中点击project settings,进入hi3516dv300工程配置界面。
-
在tool chain页签中,deveco device tool会自动检测依赖的编译工具链是否完备。
- 如工具为“uninstalled”状态(
),可单击download uninstalled tools,自动安装所需工具,或单击工具后方的download安装指定工具。 - 如当前识别到的工具类型有缺失,需要补充,可单击add utility添加。
- 如工具无法通过download方式安装,表示该工具未被deveco device tool收录,需要开发者自行下载到本地后单击import导入。
- 如“openharmony environment dependency”的状态异常(
),请单击install安装。
部分工具安装需要使用root权限,请在terminal窗口输入用户密码进行安装。
- 如工具为“uninstalled”状态(
安装完成后,工具和环境依赖的状态显示为
-
在hispark_taurus_standard配置页签中,设置源码的编译类型build_type,默认为“debug”类型,请根据需要进行修改。
-
在project tasks中,点击对应开发板下的build,执行编译。
-
等待编译完成,在terminal窗口输出“success”,编译完成。
编译完成后,可以在工程的out目录下,查看编译生成的文件,用于后续的烧录操作。
烧录
烧录是指将编译后的程序文件下载到芯片开发板上的动作,为后续的程序调试提供基础。deveco device tool提供一键烧录功能,操作简单,能快捷、高效的完成程序烧录,提升烧录的效率。
hi3516dv300的镜像烧录通过windows环境进行烧录,开发者启动烧录操作后,deveco device tool通过remote远程模式,将ubuntu环境下编译生成的待烧录程序文件拷贝至windows目录下,然后通过windows的烧录工具将程序文件烧录至开发板中。
hi3516dv300开发板标准系统的烧录方式包括usb烧录、网口烧录两种方式,本文采用usb方式进行烧录。
前提条件
- 请安装hi3516dv300开发板串口驱动程序,请参考hi3516dv300开发板串口驱动安装指导。
- 请安装hi3516dv300开发板usb驱动程序,请参考hi3516dv300开发板usb驱动安装。
操作步骤
- 请连接好电脑和待烧录开发板,需要连接usb口和串口,具体可参考hi3516开发板介绍。
-
在deveco device tool中,选择remote development > local pc,查看远程计算机(ubuntu开发环境)与本地计算机(windows开发环境)的连接状态。
- 如果local pc右边连接按钮为
,则远程计算机与本地计算机为已连接状态,不需要执行其他操作。 - 如果local pc右边连接按钮为
,则点击绿色按钮进行连接。连接时deveco device tool会重启服务,因此请不要在下载源码或源码编译过程中进行连接,否则会中断任务。
- 如果local pc右边连接按钮为
-
在菜单栏中点击project settings按钮,进入hi3516dv300工程配置界面。
-
在“tool chain”页签,检查uploader烧录器工具是否已安装。
- 如工具为“uninstalled”状态(
),可单击download uninstalled tools,自动安装所需工具,或单击工具后方的download安装指定工具。 - 如工具无法通过download方式安装,表示该工具未被deveco device tool收录,需要开发者自行下载到本地后单击import导入。
- 如工具为“uninstalled”状态(
-
在“hispark_taurus_standard”页签,设置烧录选项,包括upload_partitions_profile、upload_port和upload_protocol。配置完成后工程将自动保存。
-
upload_partitions_profile:选择待烧录程序的配置文件(已预置默认的配置文件),该配置文件会指定烧录文件名称、起始烧录地址、地址长度等信息;同时请勾选enable to use upload_partitions_profile for upload选项。
- upload_protocol:选择烧录协议,固定选择“hiburn-usb”。
- upload_port:选择已查询到的串口号。
-
-
单击hispark_taurus_standard下的upload按钮。
此时待烧录文件会从ubuntu系统传输到windows下,传输完成后界面显示“operation paused, please press enter key to continue”时,请点击enter键启动烧录。
-
在终端窗口显示如下提示信息时,请在15秒内,按住update键,插拔usb线,最后松开update键启动烧录。
启动烧录后,界面提示success信息时,表示烧录成功。
- 烧录成功后,请根据运行章节进行操作,启动系统。
运行
启动系统
烧录完成后通过以下步骤启动系统:
-
在deveco device tool中,点击monitor,打开串口工具。
-
重启开发板,在倒计时结束前,按任意键进入系统。
-
通过以下两条命令设置启动参数。
setenv bootargs 'mem=640m console=ttyama0,115200 mmz=anonymous,0,0xa8000000,384m clk_ignore_unused 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'
-
保存参数设置。
save
-
重启开发板,完成系统启动。
reset
运行“hello world”
设备启动后打开串口工具,在任意目录下输入命令helloworld后回车,界面打印“hello world!”,程序运行成功。
鸿蒙开发岗位需要掌握那些核心要领?
目前还有很多小伙伴不知道要学习哪些鸿蒙技术?不知道重点掌握哪些?为了避免学习时频繁踩坑,最终浪费大量时间的。
自己学习时必须要有一份实用的鸿蒙(harmony next)资料非常有必要。 这里我推荐,根据鸿蒙开发官网梳理与华为内部人员的分享总结出的开发文档。内容包含了:【arkts、arkui、stage模型、多端部署、分布式应用开发、音频、视频、webgl、openharmony多媒体技术、napi组件、openharmony内核、harmony南向开发、鸿蒙项目实战】等技术知识点。
废话就不多说了,接下来好好看下这份资料。
如果你是一名android、java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。鸿蒙openharmony知识←前往。下面是鸿蒙开发的学习路线图。
针对鸿蒙成长路线打造的鸿蒙学习文档。鸿蒙(openharmony )学习手册(共计1236页)与鸿蒙(openharmony )开发入门教学视频,帮助大家在技术的道路上更进一步。
其中内容包含:
《鸿蒙开发基础》鸿蒙openharmony知识←前往
- arkts语言
- 安装deveco studio
- 运用你的第一个arkts应用
- arkui声明式ui开发
- .……
《鸿蒙开发进阶》鸿蒙openharmony知识←前往
- stage模型入门
- 网络管理
- 数据管理
- 电话服务
- 分布式应用开发
- 通知与窗口管理
- 多媒体技术
- 安全技能
- 任务管理
- webgl
- 国际化开发
- 应用测试
- dfx面向未来设计
- 鸿蒙系统移植和裁剪定制
- ……
《鸿蒙开发实战》鸿蒙openharmony知识←前往
- arkts实践
- uiability应用
- 网络案例
- ……
最后
鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!
发表评论