韦东山鸿蒙移植02_必备基础知识
1. 基础知识移植内核对技术的要求比较高、比较细 。
1.1 单片机相关的知识
- 栈的作用
- 加载地址、链接地址
- 重定位
- 几个简单的硬件知识串口定时器
- 中断的概念
- Linux常用命令
- 简单的脚本:脚本就是把命令写在一个文件里
- Makefile
- GCC编译命令
- 能阅读芯片手册(英文)移植最小系统时 , 涉及的手册内容不多
- 能看懂硬件原理图移植最小系统时 , 涉及的原理图内容不多
- 直接读写寄存器
- 使用库函数
2.1 以点灯为例2.1.1 硬件原理
文章插图
2.1.2 单片机点灯
- 方法1:直接读写寄存器
- 方法2:使用厂家的HAL库
文章插图
2.1.4 rt-thread点灯
- 方法1:直接操作寄存器
- 方法2:使用驱动程序驱动模型如下:驱动示例如下:
- 调用过程框架
- 调用过程示例
文章插图
为何要多此一举?
- 它们支持MMU(内存管理单元)
- 用户程序跟内核是分隔开的 , 用户程序不能直接读写寄存器
- 用户程序通过标准接口访问驱动程序
- 基于这些内核的软件一般都比单片机软件复杂 , 术业有专攻
- 不应该让写APP的人去看原理图、写驱动、写寄存器
- 软件和硬件隔离 , 硬件再怎么变化 , 只需要改驱动 , APP不需要改
文章插图
- Android是Linux操作系统上的一套操作系统
- Android通过Linux来访问硬件 , 本质还是Linux驱动
- 一般的C程序、C++程序 , 可以直接调用open/read/write等函数
- 使用java编写的程序要访问C函数需要通过JNI
文章插图
- 设置LCD控制器 , 它会自动从FrameBuffer中读取每个像素的数据发送到LCD上
- 把要显示的文字、图像放入FrameBuffer中
文章插图
为何要多此一举?
- 它们支持MMU(内存管理单元)
- 用户程序跟内核是分隔开的 , 用户程序不能直接读写寄存器
- 用户程序通过标准接口访问驱动程序
- 基于这些内核的软件一般都比单片机软件复杂 , 术业有专攻
- 不应该让写APP的人去看原理图、写驱动、写寄存器
- 软件和硬件隔离 , 硬件再怎么变化 , 只需要改驱动 , APP不需要改
文章插图
Android/QT等GUI系统里:
- LCD会被多个APP使用 , 如果不统一管理必定乱套
- 所以 , 肯定有一个管理软件 , 或称为服务软件
- APP自行构造自己的界面 , 提交给显示显示服务软件
- 显示服务软件:根据多个APP的前后层次 , 合并最终的显示图像
- 再调用驱动程序显示出来
- 再调用驱动程序显示出来
百问网技术论坛:
文章插图
- 华为|华为鸿蒙2.0系统手机版,界面曝光?
- OLED驱动芯片|华为三喜临门,OLED芯片自研成功,鸿蒙OS本月测试
- 新机|华为新机确认,120Hz+液态镜头+鸿蒙系统,期待P50Pro
- 苹果|华为P50 Pro再曝光,麒麟9000+鸿蒙OS,再次领先三星苹果
- 效仿华为鸿蒙系统!微软放大招:新版Win10系统兼容安卓应用
- 机会|最终时间已确定,手机鸿蒙Bate版即将开放,荣耀还有机会吗?
- 贪污|韦方卸任百度关联公司监事,此前因涉嫌贪污被抓
- 贪污|韦方退出百度关联公司监事,此前因涉嫌贪污被抓
- 华为鸿蒙系统|华为官宣鸿蒙系统!12月16日,这一天是华为的“历史时刻”
- 倒计时16天!鸿蒙上线时间官宣:这手机优先升级?