在我拿到小熊派鸿蒙开发板后,首先按照教程,搭建了开发环境,体验了一下程序是如何进行编译和下载,以及初步了解了一下资料的架构。

关于小熊派鸿蒙开发板的信息,可以戳这里 开始学习 HarmonyOS 嵌入式开发

在这里,分享一下我的学习思路,希望能对大家有一点点的帮助~


HarmonyOS  是  什  么  ?

我们在学习一件新的事物之前(比如即将要学习的HarmonyOS),首先要去做的,并不是看它的源码,也不是去技术博客看它的实现原理,更不是去一些论坛或者群里面,看一些片面的信息。

了解它最好的方式,就是去官方的网站,看一下官方是如何对它进行定义的,很明显,在 HarmonyOS 相关的官方网站里面,已经对其进行了具体的定义。

https://device.harmonyos.com/cn/home/

由于我们是要学习嵌入式 HarmonyOS 相关的内容,所以,我们关注的是 Harmony Device 这个网站,里面包含了一些硬件设备开发相关的内容。

HarmonyOS 还有一个应用开发者网站,HarmonyOS Developer ,这个网站的内容,大多数都是关于上层应用设计开发的。

https://developer.harmonyos.com/cn/home

这两个网页建议收藏,并且都浏览一遍,在大脑里面建立一个初步的印象,有些概念可能一时间看不懂,但不要紧,因为后面在学习的过程中还是会不断地往回看,学习,就是一个螺旋式渐进的过程。


下  载  资  料

当我们拿到一款开发板之后,第一时间肯定是去下载这款开发板的资料~

小熊派鸿蒙开发板的全部资料,都是用 gitee 进行管理的,直接使用 git clone 命令,就可以把开发板的全部资料下载到本地

git clone https://gitee.com/bearpi/bearpi-hm_nano

当然,也可以直接在 gitee 上在线翻看资料,可以不用下载到本地,下载到本地是因为,有些PDF文档适合离线观看,而不需要打开太多浏览器窗口~


分  析  资  料  架  构

资料下载到本地后,不需要马上去看开发板相关的源码,只需要先关心以下两个目录的内容。

目录1:bearpi-hm_nano\applications\BearPi\BearPi-HM_Nano\docs\quick-start

quick-start 目录,主要包含了一些快速入门的文档,文档都是 .md 格式,可以使用 Typora 这个软件打开。通过这几个文档,就可以快速把开发环境搭建好,在开发板上面运行一个简单的程序。

为了更好的阅读体验,也可以在 gitee 上面,直接在线看这部分的文档,如下图所示。

目录2:bearpi-hm_nano\applications\BearPi\BearPi-HM_Nano\docs\board

board 目录主要包含了小熊派的硬件相关资料,比如原理图和芯片手册,这些硬件手册,一开始浏览一遍就可以了。

重点是  board\课程配套PPT  这个目录,里面包含了视频教程的PPT文档,这些文档在我们看视频的时候,有很重要的借鉴作用。

在初步搞清楚了资料分布之后,就可以开始搭建开发板的开发环境了~


搭  建  开  发  环  境

根据文档【BearPi-HM_Nano十分钟上手.md】,基本上,十分钟就可以把小熊派的开发环境搭建好了。

这份文档里面的内容,就是用 VMware 软件,直接导入一个已经配置完的 ubuntu 虚拟机,然后用 RaiDrive软件,把虚拟机ubuntu的文件目录,直接映射到windows上进行文件共享。

使用 MobaXterm 作为命令行终端,通过 hpm 包管理器,直接拉取服务器上面的源码,然后使用命令进行编译,生成一个 all_in_one 的固件,最后使用 HiBurn 工具,通过串口进行开发板固件烧录更新。

整个过程非常简单,基本上就是 Step by Step 的操作。

这个十分钟上手的开发环境搭建,由于是直接提供了配置好的ubuntu虚拟机,可以让初学者节省了不少时间~

如果想了解虚拟机ubuntu的开发环境是如何搭建的,可以看一下以下的视频,或者看一下之前下载的 PPT 文档【2_开发环境搭建.pdf】

用ubuntu虚拟机从头开始搭建开发环境,可能对于没有 Linux 系统使用经验的工程师来说,会显得有一点复杂。

所以,如果想快速进入开发阶段,可以直接使用配置好的ubuntu;而如果想更深入地体验一下环境的搭建过程,可以自己按照上面文档描述,尝试去搭建。

基本上,当环境搭建好之后,就可以成功地对代码进行编译和烧录了。


Hello world

学过软件编程,或者学过嵌入式软件开发的人都知道,通常我们在刚入门的时候,都是在屏幕上输出 helloworld,或者点亮开发板上面的一个LED~

可以说,能够在终端控制台上输出 helloworld,或者点亮一个LED,就已经是成功了一大半。

输出 helloworld 和 点亮LED,小熊派都录制了比较详细的视频,跟着视频一步一步实现,问题不大。

输出 helloworld 和点亮LED,两个案例具体的套路都是,需要在sample文件夹里面,创建对应的工程目录。

然后在工程目录里面,新增加业务相关的代码,比如说 hello_world.c 或者 led_example.c,这些 C 源文件(或头文件)是我们工程里面必须的,在这些源文件和头文件里面,实现我们想要的业务逻辑。

以前做单片机开发,只需要往 MDK 或者 IAR 里面添加好源文件,然后配置好头文件的路径,在IDE软件里面设置一下编译相关的参数,语法没问题基本上就可以编译了。

但小熊派开发板的代码,是使用命令行进行编译的,跟我们以往开发单片机使用的那种集成开发环境不一样,所以,还需要新增加一个编译脚本 -- BUILD.gn,这个编译脚本指定了一些工程编译的相关参数。

小熊派录制了一节视频和提供了一份PPT,是介绍 HarmonyOS 的编译框架的,里面会比较详细介绍如何使用 BUILD.gn 来编译代码模块。


内核、驱动、网络应用

完成 helloworld 和点灯之后,基本上,小熊派鸿蒙开发板算是学会最初步的入门使用了。

接下来,按照教程的内容,可以分为三大块:HarmonyOS内核、驱动子系统、网络应用。

这三大部分的内容,需要花时间去重点消化~

对于 HarmonyOS 内核相关的内容,在嵌入式开发里面,其实是相当于学习一个实时操作系统(RTOS),里面涉及到一个实时操作系统必学的内容,比如任务调度管理,信号量和互斥锁,事件管理,消息队列,等等。

内容就跟以前学习 RT-Thread 的时候差不多, RT-Thread 学习笔记

至于驱动子系统,就是基于 HarmonyOS 的内核,对 Hi3861 这款芯片一些常用的芯片外设进行适配,这些外设在我们以前学习单片机的时候,也接触了不少,原理都是相差不大的。

由于 Hi3861这款芯片是一颗 WiFi SOC,所以,网络这一块的内容是必不可少的,如何联网是首先要解决的问题,TCP/IP 和 UDP 是在做网络应用的时候,用得最多的两个偏底层的网络协议,这两个协议的实现原理,一开始不用去深究,会使用就行了。

MQTT是在物联网应用中用得最多的通信传输协议,基本上,很多 IoT 云平台都支持设备通过 MQTT 协议进行接入和传输数据,因此,这部分的内容也是需要学习的。


基本上,按照以上的思路,就可以在小熊派鸿蒙开发板(Hi3861)上玩透嵌入式HarmonyOS 了。

但了解过鸿蒙的工程师都知道,鸿蒙并不单指某一个技术领域的操作系统,严格来说,它的存在意义,是想构建一种分布式的生态,面向全场景,逐步实现万物互联。

所以,不管目前是从事单片机应用开发,还是从事嵌入式Linux驱动/应用开发,或者是从事手机应用开发以及界面 UI 的前端开发,鸿蒙背后涉及到的技术知识点非常多,整套学完是一件非常费精力的事情,普通的工程师也没有那么多时间和精力去完成全栈式的学习。

因此,根据自己实际的工作情况以及时间安排,选择自己感兴趣的方向进行了解和学习,我觉得,这样就差不多了~

最后,祝大家学习愉快,感谢阅读!

—— The End ——

推荐好文  点击蓝色字体即可跳转

☞ 赚钱了

☞ 推荐一款我私藏已久的串口示波神器

☞ 一位老电子工程师的十年职场感悟

☞ 如何在GitHub上白嫖代码?先学会Git吧

☞ 张一鸣:我的大学四年收获及工作感悟

原创不易,欢迎转发、留言、点赞、分享给你的朋友,感谢您的支持!

长按识别二维码关注我

你点的每个好看,我都认真当成了喜欢

分享一下嵌入式 HarmonyOS 的学习思路相关推荐

  1. 分享:嵌入式Linux入门学习指导

    很多嵌入式linux初学者对嵌入式linux学习十分迷茫,不知道该怎么一步步学习,嵌入式linux学习方法,学习的流程步骤以及学习过程中需要看哪些好的书籍.下面凌阳教育嵌入式培训网就为大家整理的嵌入式 ...

  2. HyperLedger Fabric 学习思路分享

    HyperLedger Fabric 学习思路分享 HyperLedger Fabric最初是由Digital Asset和IBM公司贡献的.由Linux基金会主办的一个超级账本项目,它是一个目前非常 ...

  3. 【干货分享】嵌入式学习路线公开!(书籍推荐+视频推荐+练手项目)

    哈喽,大家好,我是仲一.最近有小伙伴在微信私信我,如何学习嵌入式.一直想写一篇学习路线的文章,由于各种原因拖到了现在.趁着国庆节在家,终于肝完了这篇文章. 我个人是从STM32转到驱动开发的,在研二的 ...

  4. python工程师薪资坑吗-6年Python开发工程师精心总结学习思路,再不看看就凉了...

    无论是实用性还是易用性,Python 都是学习编程最具性价比的选择. 如果你学过其他的语言,再学 Python 将会让你的技能树大大地拓宽,有能力涉足更多的领域. 学习编程从入门到放弃的人不计其数,很 ...

  5. abap 取日期最大_Pointer干货分享:SQL面试50题思路解答与分类整理(下)CASE与日期函数...

    这是POINT小数点的第 368篇文章点点写在前面:SQL技能是数据分析师面试中必不可少的环节,小数点数据社区也给大家提供了练习SQL题目的地方,以下是pointer Yongfan整理的SQL50题 ...

  6. 音视频怎样入门?带你入门基础+学习思路

    Android开发的路越走越难,难道真的没有其他出路了? 并没有,一个行业的下降趋势也会带起新的行业,他的本质不会变,技术会稍有改变,本篇我们就来说说音视频行业. 音视频行情分析 1.市场 市场是一个 ...

  7. 嵌入式系统开发-学习路线

    嵌入式系统开发 课程链接 随着嵌入式设备的普及,嵌入式应用的需求量也随之增大,本课程将重点培养基于linux系统下的嵌入式应用开发,包括5个阶段,其中课程涵盖了linux系统下的多进程.多线程嵌入式开 ...

  8. 嵌入式培训c语言编程,嵌入式C语言学习秘诀

    嵌入式C语言学习秘诀 大家都知道C语言是整个嵌入式开发学习中一门重要的语言,所以学好C语言也是嵌入式开发学习中重要环节.到底如何学习C语言?C语言学习的秘诀是什么?今天本为就为大家揭开这个谜底.学习C ...

  9. Linux过来人帮你理清学习思路

    很多同学接触linux不多,对linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机it行业从业人员,="" 掌握linux是一种很重要的 ...

最新文章

  1. Selenium Python 解决 UnexpectedAlertPresentException
  2. Engagement Center Communication timer实现逻辑
  3. h.264 SODB RBSP EBSP的区别
  4. 事件总线知多少(2)
  5. scp跨主机拷贝工具
  6. cf不能全屏win7的解决方法_win7系统局域网不能访问怎么办 win7局域网不能访问解决方法...
  7. 一个程序员的一些想法(一)
  8. 我的世界服务器发消息有符号,我的世界彩色字体符号
  9. Eclipse 中Alt+/快捷键失效的解决办法。
  10. 接入与身份认证技术概述
  11. 戴尔豪斯大学计算机科学学费,加拿大研究生申请案例:渥太华大学录取:电子商业科技申请案例【2013】...
  12. 支付宝显示服务器网关错误,支付宝服务窗网关问题
  13. C语言交换a,b值的几种写法
  14. notepad集成jsonviewer 查看json
  15. 数字化时代:企业数字化转型实践路径
  16. Excel2JSON Excel转JSON Excel另存为JSON的技巧
  17. 安装keepalive错误:configure: error: No SO_MARK declaration in headers
  18. 创:战纪 的严重剧透
  19. 无人驾驶学习---第一课
  20. Trim函数的用法(笔记)

热门文章

  1. ffplay源码分析:音视频同步
  2. fedora使用rdesktop远程连接windows复制文件
  3. 利用scrapy框架爬取网易新闻排行榜
  4. ActionScript 3.0 学习(十一) AS3 模拟接金币小游戏
  5. css旋转后不动,css3旋转过渡,不走捷径
  6. 【unity基础_Day14】Unity2D、灯光粒子系统
  7. 自己用U盘怎么装系统?
  8. 《创新思维设计》自学报告#3 | 设计思维的流程
  9. 如何添加Vue扩展程序
  10. HOT78-跳跃游戏