HarmonyOS技术社区 · 2020年10月30日

移植RTOS必备基础知识

1. 基础知识

移植内核对技术的要求比较高、比较细。

1.1 单片机相关的知识

  • 栈的作用
  • 加载地址、链接地址
  • 重定位
  • 几个简单的硬件知识

    • 串口
    • 定时器
  • 中断的概念

1.2 Linux操作相关的知识

    • Linux常用命令
    • 简单的脚本:脚本就是把命令写在一个文件里
    • Makefile
    • GCC编译命令

    1.3 芯片相关知识

    • 能阅读芯片手册(英文)

      • 移植最小系统时,涉及的手册内容不多
    • 能看懂硬件原理图

      • 移植最小系统时,涉及的原理图内容不多

    2. 驱动程序知识

    对于只有单片机知识的人来说,怎么去操作硬件?

    • 直接读写寄存器
    • 使用库函数

    在RTOS中,本质也是去读写寄存器,但是需要有统一的驱动程序框架。

    所以:RTOS驱动 = 驱动框架 + 硬件操作

    2.1 以点灯为例

    2.1.1 硬件原理

    图片.png

    2.1.2 单片机点灯

    方法1:直接读写寄存器

    图片.png

    方法2:使用厂家的HAL库

    图片.png

    2.1.3 FreeRTOS点灯

    图片.png

    2.1.4 rt-thread点灯

    方法1:直接操作寄存器

    图片.png

    方法2:使用驱动程序

    驱动模型如下:
    图片.png

    驱动示例如下:
    图片.png

    调用过程框架
    图片.png

    调用过程示例
    图片.png

    2.1.5 Liteos-a/Linux怎么点灯

    使用MMU时,一般APP与内核是相互隔离的。APP通过标准的open/read/write等文件操作函数去调用驱动程序。

    如下图所示:
    图片.png

    为何要多此一举?

    它们支持MMU(内存管理单元)
    用户程序跟内核是分隔开的,用户程序不能直接读写寄存器
    用户程序通过标准接口访问驱动程序
    基于这些内核的软件一般都比单片机软件复杂,术业有专攻
    不应该让写APP的人去看原理图、写驱动、写寄存器
    软件和硬件隔离,硬件再怎么变化,只需要改驱动,APP不需要改

    2.1.6 Android怎么点灯

    图片.png

    Android是Linux操作系统上的一套操作系统
    Android通过Linux来访问硬件,本质还是Linux驱动
    一般的C程序、C++程序,可以直接调用open/read/write等函数
    使用java编写的程序要访问C函数需要通过JNI

    2.2 以LCD为例

    2.2.1 硬件原理

    图片.png

    设置LCD控制器,它会自动从FrameBuffer中读取每个像素的数据发送到LCD上
    把要显示的文字、图像放入FrameBuffer中

    2.2.2 Liteos-a/Linux怎么操作LCD

    图片.png

    为何要多此一举?

    它们支持MMU(内存管理单元)
    用户程序跟内核是分隔开的,用户程序不能直接读写寄存器
    用户程序通过标准接口访问驱动程序
    基于这些内核的软件一般都比单片机软件复杂,术业有专攻
    不应该让写APP的人去看原理图、写驱动、写寄存器
    软件和硬件隔离,硬件再怎么变化,只需要改驱动,APP不需要改
    
    
    

    2.2.3 Android怎么操作LCD

    图片.png

    Android/QT等GUI系统里:

    LCD会被多个APP使用,如果不统一管理必定乱套
    所以,肯定有一个管理软件,或称为服务软件
    APP自行构造自己的界面,提交给显示显示服务软件
    显示服务软件:根据多个APP的前后层次,合并最终的显示图像
    再调用驱动程序显示出来

    2.2.4 鸿蒙怎么操作LCD

    鸿蒙支持Liteos、Linux内核,在内核之上怎么去为多个APP管理唯一的显示设备? 鸿蒙还支持软总线,理论上可以支持更多的LCD,怎么做? 不知道,一起期待它开放出更多源码吧。

    关联文章:移植RTOS需要做的事


    作者:韦东山

    想了解更多内容,请访问:
    51CTO和华为官方战略合作共建的鸿蒙技术社区
    https://harmonyos.51cto.com?jssq

    推荐阅读
    关注数
    3010
    内容数
    446
    华为鸿蒙相关技术,活动及资讯,欢迎关注及加入创作
    目录
    极术微信服务号
    关注极术微信号
    实时接收点赞提醒和评论通知
    安谋科技学堂公众号
    关注安谋科技学堂
    实时获取安谋科技及 Arm 教学资源
    安谋科技招聘公众号
    关注安谋科技招聘
    实时获取安谋科技中国职位信息