在线课堂:https://www.100ask.net/index(课程观看) 论  坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taobao.com/ (淘宝) https://weidongshan.tmall.com/(天猫)


版本

日期

作者

说明

V1

2020

韦东山

直播答疑笔记

在这里插入图片描述
在这里插入图片描述
  1. 鸿蒙支持多种内核,Linux是其中之一,但是鸿蒙绝对不是Linux。
  2. liteos-a是轻量级的操作系统,不是微内核。 所谓微内核,是把各种服务用进程来实现。比如文件系统,在linux和liteos-a里面都是放在内核里面实现的;对于微内核而言就可以用一个应用程序来实现文件系统的功能,这样的话假设应用程序崩溃了也不会影响到整个操作系统。微内核有个好处,就是系统可能更加强壮;但是微内核也有一些缺点,就比如说某个应用程序要去读写文件,我还得给另外一个应用程序发消息,发各种数据,这就导致系统运行慢,效率低。
  3. 韦老师是怎么知道拷贝uboot里面的代码? u-boot就是一个非常复杂的裸机程序,里面肯定会对处理器进行初始化,并初始化各种硬件,所以参考uboot来设置cpu比较好。
  4. liteos-a和Linux内核并不是共存的关系,比如手机上使用Linux,物联网上使用liteos-a,这是在华为的框架构思中这样做的。因为Linux启动比较慢,liteos-a启动时间较快,所以对于物联网设备使用liteos-a比较好。鸿蒙会把韦老师PPT中提到的那一套系统做得既支持liteos-a又支持linux。如果鸿蒙这套系统完全开放,大家会发现鸿蒙与linux和安卓完全不一样。鸿蒙确实是针对物联网的。
  5. 鸿蒙对比linux的不同点:实际上,所有的内核相对于linux来说支持的外设不是很多。
  6. free RTOS过于简单,和liteos-a完全没有办法比较。Free-RTOS不支持MMU,它只实现了任务调度,内存管理和任务通讯这些简单的功能。
  7. 鸿蒙系统里面使用的uboot基本上不用改,因为uboot只不过是为了把鸿蒙的内核读入内存来启动而已,不需要去修改。
  8. liteos-a可以不使用uboot,任何的操作系统都可以在前面加一小段启动代码,把uboot扔掉。我们之所以使用uboot是因为它比较简单,比如我们可以使用uboot的USB下载功能就可以非常方便的调试程序。如果你不想使用uboot的话,完全可以把它扔掉。
  9. 怎么判断liteos-a是实时操作系统:老师也没有去判断过,只是咨询了华为内部,华为官方说“是”。
  10. MMU跟实时没有关系。MMU只是为了让APP之间互相隔离,让APP和内核空间隔离。实时性和MMU没有关系。
  11. 怎么加启动代码:实际上对于6ull来说,我们之前写了很多裸机程序,只需要在这些程序前面加一个头部就可以了。对于6ull来说,其内部有一个固件,这个固件会根据你烧录的文件的头部把你的程序加载到内存来启动,所以只需要加头部就可以了,不需要添加额外的启动代码。
  12. liteos-a一定要用MMU。它里面也有设备树的概念,不过和linux相比这个概念比较简化,也可以做到设备树同样的功能。
  13. 在liteos-a里面并没有明显的总线模型。没有这么分。
  14. GPIO子系统不是输入子系统。它只是为了控制GPIO,比如让某个引脚配置成输出输入而已。输入子系统实际上就是例如触摸屏、按键这类,叫做输入子系统。
  15. Cortex-M不可以使用liteos-a,只能使用liteos-m
  16. 后面录播课程将会有lites-a的详细讲解。但是会优先讲Linux
  17. Liteos-a和linux的开发非常类似,只不过linux做的比较完善,结构考虑的比较完美,也导致linux的代码很庞大。
  18. 大家不要总是将鸿蒙和linux比较。比如我们的windows,有桌面,有各种应用程序,windows一装到电脑上去,普通人就可以使用了;但是Linux呢?linux只是一个内核,在linux上面还要装各种应用程序,就比如ubuntu,就是在linux内核之上,开发了一套桌面一套应用程序,这才叫ubuntu;鸿蒙支持多种内核,可以认为鸿蒙对标windows,安卓,ubuntu,但是它不是用来对标linux的。
  19. Liteos-a启动快得益于这两点,首先它的各个驱动层次没有搞的那么复杂;第二,它挂载根文件系统时是用一个进程来实现的,所以这样就比较快。可以认为它是使用进程来进行各种初始化,这样可以同步进行。
  20. 录制完6ull的课程之后就将鸿蒙移植到STM32MP157上去
  21. 汇编不需要掌握很深,掌握一点点就可以了。要做嵌入式操作系统,嵌入式底层开发,汇编还是要懂一点点的。汇编并没有想象中的那么复杂。
  22. 用内存模拟flash:把一块内存划出来,然后仿照flash的驱动程序,提供读函数,写函数,擦除函数就可以了。
  23. 先学liteos-a还是linux:建议先学linux,如果你已经有了基础,或者对RTOS比较感兴趣的话,那liteos-a可以学一下,因为毕竟liteos-a的产品还没有出来,我们可以先准备着,但是目前恰饭的东西还是linux。