文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

嵌入式开发小白跟连老师学鸿蒙设备开发之Hello World

2024-12-03 11:06

关注

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

1. 背景介绍
上回说到在家组装了一台鸿蒙小车,但是,还不会玩,准备烧个鸿蒙系统体验一下。《鸿蒙陪我(们)过大年~》

但是,折腾了一天发现,这个小车其实是已经内置鸿蒙系统了。

小车通电以后,显示屏上会快速显示:Hello Harmony,然后变成 Robot Car Stop。

如果按小车的按键1,小车就会自动向前走,同时显示屏上显示:trace

再多按几次,显示屏会出现“ultrasonic”字样,但是我还没有发现这个超声波的作用。

经过我一番胡乱摸索,大概知道了各个模块的基本功能。

其中,小车的左上角的模块是主控模块,插上Type-C线以后,可以对小车进行调试和供电,就不需要电池了。

小车已经就位,下一步,就是试着写一个hello world了。

在51CTO的鸿蒙社区以及鸿蒙官网上找了好几圈,发现还是连老师的资料最完整,最后折腾了一天,终于完成了第一个Hello World。

2. 参考文献

作为一个没有开发过南向设备应用的北向应用开发者,面对这么一个小车,是既兴奋又懵逼的状态。

好在51CTO的鸿蒙社区分享的开发者很多,而华为的鸿蒙开发者网站的资料也非常的全,尤其是连志安老师的鸿蒙设备开发的系列文章,让我能够摸着石头过河,并最终实现一个小目标。

在此非常感谢。

对于鸿蒙设备开发的新新新手,推荐以下资料,建议详细阅读:

3. 调试笔记

接下来,我整理一下自己摸索的笔记,作为嵌入式开发0经验的非专业设备开发者,有些名词表述不专业,敬请见谅。

3.1. 环境搭建

目前鸿蒙设备的开发环境,可以分为2个部分:Windows调试环境,和Linux编译环境。

其中,

特别注意,Linux环境不可少,因为目前只支持在Linux环境下编译,不信邪,强行在Windows上编译的结果就是:

3.2. Windows开发环境搭建

安装开发工具

Windows环境需要的工具列表:

详情可以参考鸿蒙开发者网站: 《Windows开发环境准备》

一些要点

可以通过在命令行里用管理员执行 “set-executionpolicy remotesigned”来解决。

参考:《Windows 鸿蒙环境搭建 hpm 报错:无法加载文件 hpm.ps1,因为在此系统上禁止运行脚本》

安装USB驱动

用USB线将小车连接到电脑后,可以先到系统的设备里查看一下,是否能找到对应的设备。 

如果出现了感叹号,表示需要安装相关的驱动。

参考开发者文档《Hi3861系列开发板串口驱动安装》

步骤:

http://www.wch.cn/search?q=ch340g&t=downloads

3.3. 安装Linux编译环境

这个可以参考 《Ubuntu开发环境准备》,从文档里可以看到,所需的开发工具跟Windows是一致的。

我本来想自己装一个Ubuntu,但是发现速度有点慢,就直接用了连老师给的虚拟机了。建议用百度网盘的虚拟机,这个已经预装了samba服务。

连老师给的虚拟机是VMWare格式的,可以用VMWare的Player直接打开。

关于Linux虚拟机的详情,具体的可以看连老师的文章,这里只列几个要点:

3.4. Windows连接Linux

利用已经安装好的samba服务,Windows可以很方便的访问Linux中的文件:

通过在Windows的VSCode中打开Linux中的鸿蒙项目,就可以把Linux环境中编译好的鸿蒙包,在Windows下烧录到鸿蒙小车中。

另,连老师还很贴心地建议映射成网络驱动器,比如我就把它映射成了Y盘。

3.5. 烧录第一个鸿蒙系统

1). 打开鸿蒙项目

在Windows的VSCode中,打开Linux环境下的鸿蒙源码目录,在 harmony\code\code-1.0文件夹

如果提示这不是一个鸿蒙项目,选择“继续打开”,即可。

2). 配置项目

DevEco Home -> Projects -> Settings

配置好upload_port为刚刚在设备管理器看到的COM口,如果只连了一个鸿蒙设备,直接从列表里选中就可以了。

其他upload_protocol和upload_partitions没什么可选的,按照截图别放空就好。

记得保存Save。

然后点Open打开项目,留意左边第二列的PROJECT TASKS,这是一系列快捷指令,接下去的操作要用到这些指令。

另外,这个地方,与鸿蒙开发者网站的截图略有不同,我找了好久也没有找到官网图示的位置,好在不影响hello world。

3). 编译Build

前边说过,直接在Windows的VSCode里执行build,是不可以的。

连老师的这个虚拟机貌似是没有装VSCode的,但是支持从命令行进行编译。

所以,编译可以直接在Linux虚拟机上进行,也可以选择在Windows上利用ssh连接到Linux来进行。

具体的做法是,

  1. python build.py wifiiot 

看到这段日志,表示编译成功:

4). 烧录

烧录可以在Windows上进行,从刚刚的PROJECT TASKS中执行Upload指令即可。

出现Connecting, please reset device的日志时,在30秒内,按一下小车的系统复位键(RST):

如果动作太慢,烧录指令就会失败。否则,应该能看到日志继续刷新,直到出现SUCCESS字样,表示烧录成功。

怎么知道烧录成功了呢?

还记得小车显示屏上显示的文字吗?

如果现在看不到了,那就表示你把原来自带的鸿蒙系统给覆盖了,说明烧录成功了……

3.6. 编写HelloWorld

但是,这还没有完,因为我们还没有写HelloWorld。

参考:《开发Hi3861第二个示例程序》

1). 添加HelloWorld App目录

切换到Explorer模式,查看文件列表。

在code-1.0/applications/sample/wifi-iot/app目录下,创建一个helloworld目录

2). 添加c代码

创建一个hello_world.c文件,内容如下:

  1. #include  
  2. #include "ohos_init.h" 
  3. #include "ohos_types.h" 
  4.   
  5. void HelloWorld(void) 
  6.     printf("[DEMO] Hello world.\n"); 
  7. SYS_RUN(HelloWorld); 

3). 添加HelloWorld配置文件

创建一个BUILD.gn文件,内容如下:

  1. static_library("helloworld") { 
  2.     sources = [ 
  3.         "hello_world.c" 
  4.     ] 
  5.     include_dirs = [ 
  6.         "//utils/native/lite/include" 
  7.     ] 

4). 添加HelloWorld作为应用启动入口

修改 code-1.0/applications/sample/wifi-iot/app/BUILD.gn

  1. import("//build/lite/config/component/lite_component.gni"
  2.   
  3. # 旧的 
  4. #lite_component("app") { 
  5. #    features = [ 
  6. #        "startup"
  7. #    ] 
  8. #} 
  9.   
  10. # 新的 
  11. lite_component("app") { 
  12.     features = [ 
  13.         "helloworld:helloworld"
  14.     ] 
  15.   

5). 重新编译并烧录

修改完,保存,重新编译,并烧录。

虽然我们尝试在输出hello world日志,但是,这个日志并不会出现在小车的显示屏上,也不会直接出现在VSCode的Output里。

6). 查看Hello World

要想看到hello world的输出,需要读取串口的数据。

参考:《串口工具使用》

在VSCode的命令行里,按下Ctrl+T,然后选择目标COM口序号,这里就一个COM,所以按下1

然后按下小车的系统复位键(RST),系统会重启,然后就可以看到 Hello World了。

至此,Hello World的任务就完成了。

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

 

来源:鸿蒙社区内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯