【答疑汇总】HarmonyOS驱动框架调试总结 原创 精华
12月10日HarmonyOS驱动框架调试总结直播中的问题及解答
1. 使用VSCode开发HarmonyOS开发除了基本的插件还需要安装哪些来辅助开发?
答:VSCode这个软件主要是用来查看和编辑代码,安装好基本的插件就够了。代码的编译是在linux下面完成的,编译环境的搭建见如下链接:
https://device.harmonyos.com/cn/docs/start/introduce/oem_quickstart_3516_environment-0000001054501981
2. 烧录完了restart板子 是直接把电源重插 是这意思吗?
答:是的。
3. 还是uboot只需要烧录即可,如果是烧录,能否介绍一下烧录方法。
答:uboot只需要烧录即可,我们烧录的是华为提供的编译好从uboot。uboot的烧录方是串口烧录。具体的烧录方法,见附件文档,我们详细总结HarmonyOS的各种烧录方式。
4. uboot需要自己编译嘛
答:不用,uboot的开发不在HarmonyOS开发的范围内,如果有兴趣的话,自己可以钻研下。
5. 鸿蒙OS的新手学习路线是怎么样的?老师有建议吗。
答:建议从简单应用入手,同时多动手。可以利用我们这边的南极洲开发板,先调试各种底层驱动,把南向接口搞清楚。后面再进行项目的开发,或者往北向(APP端)方向研究。
6. 鸿蒙现在可以和哪些设备联动?
答:鸿蒙在手机(4G内存)到几百KB RAM的单片机上运行,应用范围非常广泛。具体和什么设备联动,取决于您通过网络连接什么样的设备。
7. 鸿蒙os驱动管理的效率如何?
答:HDF框架设计就是为了简化开发者进行驱动开发。用应用情况来说,HDF驱动框架管理驱动的效率是非常高的。但是对于资源比较少的单片机,比如Hi3861等(RAM小,只有几百KB),不建议使用HDF驱动框架。效率这个不好评估,目前没有大量驱动适配,从目前测试来看没有性能问题。
8. 鸿蒙os的驱动框架和Linux有哪些区别?
答:鸿蒙的驱动框架包括驱动加载管理,驱动服务管理和消息机制,旨在搭建一个统一的驱动管理平台,而linux驱动框架中则没有这些东西。linux驱动框架中,则把所有外设拆分为字符设备,块设备和网络设备,在linux驱动框架中一些设备都是文件。鸿蒙HDF驱动框架中就没有这么一个区分方式。两者的区别还是蛮大的。
9. harmonyOS的驱动开发和linux开发的区别大吗?
答:参见问题8.
10. 想学习下harmony OS的开发,有没有这harmony OS的系统架构详解和开发的书啊?想买。
答:目前开发还是以华为官方提供的资料位置,个人感觉书籍更新的速度还是赶不上网络。主要的参考网站有如下两个,
①https://device.harmonyos.com/cn/docs/start/learn/oem_des_define-0000001055232642
②https://gitee.com/organizations/openharmony/issues
11. 有图形化配置harmony OS吗?
答:有的,在kernel这个文件夹里面运行“make menuconfig”这个命令,就可以图形化配置HarmonyOS,进行相关组件的裁剪。
12. 在linux上的应用程序,怎么移植到harmonyOS
答:底层驱动开发就要遵循HDF驱动框架机制,上层应用的开发我们这边不太清楚。
13. 用户代码,不是都要放applications目录里面么?
答:不一定,按照我们视频里面搭建的目录也可以的。
14. 绑定服务,是否要查询绑定状态?
答:不用的,底层驱动支持多个用户态程序同时调用。
15. 动态直接insmod就可以吧?
答:目前还不支持
16. SPI驱动开发和以前3516更新cmos驱动类似吗?
答:不太明白提问人关于CMOS驱动更新的具体意思。如果CMOS驱动是指摄像头这块的话,那么还是不太一样的。在目前鸿蒙驱动的框架中,摄像头的驱动是单独的一块,不再HDF体系中。
17. huawei主要环境配置和3516主要是驱动加载配置?可以这样理解吗?直接编一个sh脚本连接不行吗?
答:huawei这个目录下的配置可以理解为框架的搭建,hisi这个目录下的配置可以理解为具体加载是哪个芯片的驱动,以及驱动的配置管理等。
18. 3516有没有带sata接口
答:应该不支持,我们没有使用过该的接口,具体还需要您去确认。
19. 问下有没有uboot编译时需要改什么地方的资料特别是 网卡和存储器。
答:我们不需要进行uboot编译,目前使用的是华为编译好的程序。如果你们的网络接口芯片等采用和我们的开发板(我们是参考海思的)不一样,那么就需要自己编译uboot了。
20. hdf中 host是什么概念,为什么要将类型相似的设备放在一个host中
host就是一类驱动的容器,其实就是归类的作用。把类型相似的设备放在同一个host中,可以方便管理。
21. 目前鸿蒙能否实现驱动动态insmod?现在只能编译到内核中吗?
答:目前不支持insmod。
22. 驱动之间,是有一个订阅机制吧?这个机制只能实现服务发现的订阅吗?能否支持自定义的事件订阅?
答:目前可以实现服务发现的订阅,但是自定义事件的订阅是不支持的。
23. 目前鸿蒙能否实现驱动动态insmod?现在只能编译到内核中吗?
答:目前还不支持。
24. 鸿蒙号称微服务,理论上微服务不重要的驱动挂了,不会把内核搞挂。现在的驱动挂了,会把内核搞崩溃吗?
答:鸿蒙号称是微内核,但目前开源的是liteos-a,还不是微内核的鸿蒙,所以目前驱动挂了还是会导致内核挂的。
25. 碰一碰,是nfc触发wifi和蓝牙吧?
答:是nfc触发wifi通信。
26. 驱动加载策略是否可以插件化修改?因为也许有的用户有特殊需要,不是全自动加载。
答:可以的,可以通过HCS文档配置决定需不需要加载相关驱动。具体介绍如下:
27. 日志怎么提取,都是通过监听嘛。
答:应该会有log,目前我们还没有用到。华为专家的回复是“当前开源的版本,不太确定有没有开放维测的dump,有可能还没有”
28. 这个图像识别是否会受到感光的影响
我们没有做过图像相关的开发,建议咨询相关专业。
29. 如果死机了是否有log
答:同问题29。
30. 如何debug调试!有什么好的编辑工具?
答:目前debug是在linux下面,靠打印输出来观察程序调整是不是正确。
31. 内存管理是直接选址还是虚拟地址?
答:虚拟地址
32. 老师3516和3519图像处理性能方面差距大吗?另外一个我们采用3519的linux设备能否移植鸿蒙
答:我们对3519这个芯片不熟悉,建议去查一查相关的datasheet。3519设备肯定可以一直鸿蒙系统的。
33. 你好老师,鸿蒙系统比较完整的移植资料有吗。
答:我们目前正在开发鸿蒙系统移植到RISCV的单片机上,后续我们会给出详细的移植资料。
34. 老师 你好 请问 HAL的分层是怎么样的? HAL下面的内核层中的驱动接口做那些工作 HAL上层的驱动做那些工作 谢谢。是不是说 不同板子的MCU移植 一个接入相同外设的硬件 只修改HAL内核层的驱动就可以了
答:移植是只需要修改内核层的驱动就可以了,对外的spi接口是统一的。HDF驱动的框架主要在“driver”这个目录里面,如果有兴趣,可以详细研究一下。
35. 刚才说VS code只是查看编写代码 那用source insight是不是也可以 那为啥用一个新的工具。
答:用source insight也可以的,都可以,只是查看和编辑,根据个人的习惯就好。
终于等到了张老师的答疑汇总帖。赞。
这么多回复,老师用心了
那天直播结束之后就开始等老师的答疑帖,没想到今天更新的猝不及防,先🐎再看