1. 这套开发板上面可以进行其他操作系统的移植么?
答:理论上,可以在Hi3861上移植其它操作系统,只要目标操作系统适配到硬件,并且做好必要剪裁即可。Hi3861的本质是基于risc-v架构的硬件系统,所以支持这种硬件架构的操作系统均可移植。
2. GN脚本都学点什么,能快速入门。
答:gn是一种现代化的跨平台编译构建工具,之所以强调“现代”是因为它能做的事别的工具也能做,如:make 和 cmake。
这几种工具从年代上看有这样的进化关系: make->cmake->gn。
make的跨平台不太完善,所以有了cmake,用cmake屏蔽不同平台make的差异,cmake对于大型项目有些吃力,所以有了gn。
因此,要学好gn构建编译,建议把make和cmake先了解了解。
对于使用gn的大型项目来说(如:鸿蒙),一般分为3大块:
1) 整体工程入口(一次编写,常年不改)
2) gn通用文件(一次编写,常年不改)
3) gn源代码工程文件(用于具体项目模块,管理源码文件和头文件)
掌握以上内容,并且能编写鸿蒙板载应用程序,就算已经入门。
官方文档:https://gn.googlesource.com/gn/
3. 一直用MCU裸跑,对操作系统还是懵懂状态,很想知道操作系统和硬件如何关联起来的?
答:操作系统就是硬件系统和软件系统的关联层,提供各种服务帮助软件使用硬件,建议学习一下与操作系统相关的课程(可以看看我的操作系统课程)。
4. 目前鸿蒙支持的芯片只有海思的吗?这样的话后期的发展空间是不是限制很多?
答:鸿蒙从设计上是一个“多内核”操作系统,理论上可以支持各种硬件设备。目前韦东山老师已经将鸿蒙移植到了IMX6ULL和STM32。
5. 电脑连着板子搞东西电脑真的不会爆炸吗?比如板子上哪里搞得不对或者零件焊的不好啥的。。。
答:我个人经验不会爆炸,只是可能搞不好板子成砖头。。。如果电脑那么容易爆炸,我会第一个转行卖相关保险。
6. 鸿蒙以后可以应用到哪些领域?相比其他操作系统有什么优势?学习鸿蒙可以带来就业岗位吗?
答:鸿蒙的目标很明确:各种嵌入式设备(物联网设备,手持设备,车载设备,等)。理论上通过“换内核”可以应用于任意领域的设备和产品。
在我个人看来,如果持续保持现在的推广力度和社区活跃度,未来会出现一个鸿蒙相关技能需求井喷的时期。
7. 请问鸿蒙OS和华为的LiteOS区别是什么呢?
答:LiteOS是一种内核,鸿蒙可以使用这种内核(支持多种内核)。
8. 鸿蒙OS可以运行在一般的单片机中吗?
答:物联网领域是鸿蒙瞄准的领域之一,而物联网设备多数为单片机设备,只需要一些移植工作,鸿蒙运行于一般单片机是可以的(如:STM32)。
9. 对鸿蒙充满憧憬、觉得鸿蒙会在物联网大展身手、以后物联网会如现在的互联网一样发展迅猛,出现各种巨头吗?那现在学鸿蒙是不是抢先机?
答:物联网的本质还是互联网(Internet Of Things),只不过以前谈到“互联网”的时候是指把人联系起来的网络。现在,“把人联系起来的网络”应用日趋成熟,所以,下一步就是互联网进军设备的世界了,形成把设备联系起来的网络。
我个人认为,物联网是下一片蓝海,各大巨头企业都会进军这片蓝海,建议现在的开发者提前充实自己,准备好相关技术,为自己的职业发展做好准备。
10. 鸿蒙的开发板与其他开发板对比,优势在哪里?
答:目前我们能拿到的智能家居套件Hi3861只是首批支持鸿蒙OS的开发板之一,与其它开发板相比,功能相对单一,优势不明显。
11. 用鸿蒙做嵌入式开发和手机开发,开发框架和环境都是一样的吗?
答:鸿蒙OS嵌入式开发(设备开发)涉及到具体的交叉编译环境,在代码编辑和编译上有较大的可选择性;而鸿蒙手机开发(富应用开发)有官方提供的完整开发框架和开发环境(唯一性)。另外,语言上也不同,鸿蒙嵌入式开发主要是C语言,手机开发主要是Java/JS语言。
12. 鸿蒙 Liteos 和 ucos II 有可比性吗?
答:两者可以说是同类型的操作系统内核,只是鸿蒙 LiteOS 更针对物联网领域,面向低功耗硬件进行数据采集;ucos ii 更在意实时性,是一种为实时系统而打造的操作系统内核。
13. 没有Stm32基础,但是有51单片机和Linux应用开发基础学鸿蒙怎么样?
答:有任意单片机基础和Linux应用开发基础,学习鸿蒙就很轻松了,赶紧上手吧。
14. 能否有针对鸿蒙内核级的讲解,想系统学习一下鸿蒙应用和底层。
答:我个人有阅读学习鸿蒙内核代码的计划,如果大家需要,我也会把学习笔记分享出来。
15. 华为鸿蒙开发和其他stm32或者Linux开发相比具有哪些优势?有什么特别的亮点吗?从技术上应该没有,目前来看就是以前的嵌入式开发一样的步骤不同的工具,是不是从其他非技术角度,有什么优势?
答:如果单纯的看Hi3861和之上的系统,那么就只是单片机加嵌入式操作系统,无任何亮点。然而,鸿蒙却不只是这一点点东西!鸿蒙所瞄准的是物联网这片蓝海,所以在打造的是一个技术生态链,比如:数采集可能是Hi3861,采集到的数据汇总到控制中心(鸿蒙富应用),分析处理后自动做出控制决策,并通过鸿蒙手机应用通知用户。鸿蒙的目标就是无缝衔接这个过程,包括:系统开发过程(涉及各种类型的终端),数据传输过程(涉及统一的协议标准),等等。
鸿蒙并不是在某个单独的技术点上做创新和改进,而是站在更高的角度,打造物联网开发所涉及的整个技术栈。
16. 鸿蒙现在有2个开发方向,分别是设备开发和应用开发,不知道如何选择?老师说下各自优缺点,我们思考下。
答:设备开发所需的关键技术为:C/C++,交叉编译构建(make/cmake/gn),多任务(多线程)编程,网络编程。
应用开发所需的关键技术为:Java/JS,XML,界面构建(GUI),网络编程,数据库编程。
当然,上述列出的关键技术不是绝对的,而是相对使用频率较高的技术。
在我看来设备开发和应用开发没有本质区别,只是场景不同而已。如果非要选择,那么可以根据自身目前已经掌握的技术“就近选择”。
物联网应用是一个完整的系统,同时涉及设备开发和应用开发,从系统角度看,两者同等重要。
17. 按键事件中也可以收集到边沿变化么,还是变化之后被捕获到呢?
答:物理按键上的动作(如:按下事件)会导致对应引脚上电平的变化,变化的过程就是边沿,边沿的出现会产生外部中断,内核接收到这个中断后立即调用中断服务程序(ISR),并在ISR中调用注册的事件处理函数。从这个过程可以看出,边沿出现后事件处理函数被调用。