OpenHarmony设备开发之路【01】-helloword
今天我们用3861的板子来实现最简单的helloword,自此也打开我的设备开发之路。
接下来我将详细的写一下,帮助大家更好的入门
我们保证现在自己的环境都是合适的
第一步,确定目录结构
开发者编写业务时,务必先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。
例如:在app下新建jianguo_hello文件夹,其中hello.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下:
jianguo_hello$ tree
.
├── BUILD.gn
└── hello.c
0 directories, 2 files
第二步,编写业务代码
新建./applications/sample/wifi-iot/app/jianguo_hello下的hello.c文件,在hello.c中新建业务入口函数my_app,并实现业务逻辑。并在代码最下方,使用OpenHarmony启动恢复模块接口SYS_RUN()启动业务。(SYS_RUN定义在ohos_init.h文件中)
路径openharmony/applications/sample/wifi-iot/app/jianguo_hello/hello.c
#include <stdio.h>
#include "ohos_init.h"
#include "ohos_types.h"
void HelloWorld(void)
{
printf("___________>>>>>>>>>>>>>>>>>>>> [DEMO] Hello world.\n");
}
SYS_RUN(HelloWorld);
路径openharmony/applications/sample/wifi-iot/app/jianguo_hello/BUILD.gn
# 静态库名称是什么
static_library("my_app") {
#那些文件会被编译
sources = [
"hello.c",
]
#头文件去哪里找
include_dirs = [
"//utils/native/lite/include",
"//kernel/liteos_m/kal/cmsis",
"//base/iot_hardware/peripheral/interfaces/kits",
]
}
路径/openharmony/applications/sample/wifi-iot/app/BUILD.gn
BUILD.gn
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {
# 那些文件会被编译,连接的是哪个静态库
features = [ "jianguo_hello:my_app" ]
}
编写完代码,我们来编译一下
第三步,编译
首先运行
hb set
选择如图所示的编译环境
然后
hb build -f
这个时候编译成功,
编译成功
最后终端会显示编译成功,我们可以在out相应的目录下找到对应的固件
out/hispark_pegasus/wifiiot_hispark_pegasus/Hi3861_wifiiot_app_allinone.bin
我们选择下载,下载到本地,记住路径,下文要用到
第四步,烧录
此时将开发板通过USB接口连接在电脑,有的电脑可能需要安装驱动,如何安装驱动,我会在下一篇文章给出
打开Hiburn软件
Hiburn软件操作演示:
然后在Hiburn软件(HiBurn软件本文档随附)上选择”Setting”,设置串口的波特率为921600(波特率影响数据收发的速度,高波特率能加快固件烧录过程,提高调试效率):
设置完成之后,回到软件首页面,选择”SelectFile”,在弹出的文件浏览器上选择刚刚导出的固件:
点击Auto burn复选框,然后点击Connect,如下图所示
手动按一下开发板RESET按键(在usb插孔旁边),开始下载程序。
待烧录完成之后,需要先点击disconnect断开连接。
烧录步骤完成之后,可以再次按下复位按钮启动程序.
查看控制台的输出,这里我用的sscom串口调试工具,我也会给大家给出。
可以看到正常显示。
至此已完成了OpenHarmony固件烧录到润和3861开发板并输出helloword的操作
我的设备开发之路也就开始了。
完结,撒花
感谢各位大佬的指导
参考资料:
相关文章
- linux驱动开发--字符设备:自动创建设备节点
- linux驱动开发--字符设备:静态分配设备号
- USB驱动程序之USB设备驱动程序2鼠标用作键盘学习笔记
- VMware ESXi 6.7虚拟机使用主机直通设备
- 移动设备常用代码
- 【ANDROID游戏开发二十一】ANDROID OS设备谎言分辨率的解决方案!以及简单阐述游戏引擎如何使用!
- EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案-Onvif(三)使用Onvif协议进行设备PTZ云台控制
- [Tools] 一键让你的所有设备访问Google、youtube、facebook、twitter、battle.net
- 如何在移动设备上以开发模式访问SAP Spartacus
- 使用Qt开发绘制多个设备的流量曲线图(附带项目图)
- 字符设备驱动开发 Linux 设备号 字符设备驱动开发步骤 open 函数调用流程 设备号的组成 设备号的分配 Linux 应用程序对驱动程序的调用 字符设备注册与注销 实现设备的具体操作函数
- 第一讲《网络搭建与应用专业》技能大赛考核内容及所用设备
- 联想thinkpad笔记本 蓝屏后设备管理器里面独立显卡突然消失了
- win10声音控制面板扬声器默认设备显示未插入扬声器
- win10快速打开设备和打印机cmd命令
- 第二十五章 linux-总线,设备,驱动与class
- 第九章 linux-深入学习字符设备驱动编程①
- Spooling技术——利用高速共享设备(通常是磁鼓或者是磁带)将低速的独享设备模拟为高速的共享设备 不就类似缓冲区嘛 但是将高速和低速两种不同设备连在一起的速度不匹配本质矛盾还是没有解决
- RK3399平台开发系列讲解(设备树篇)设备树的详解 - 视频介绍
- 字符设备驱动程序的三种写法
- Android智能穿戴设备开发从入门到精通
- android开发,Android Studio在创建安卓虚拟设备(AVD)时,报错:Unknown Error