韦东山鸿蒙移植01-移植RTOS需要做的事

在线课堂:https://www.100ask.net/index(课程观看)
论  坛:http://bbs.100ask.net/(学术答疑)
开 发 板:https://100ask.taobao.com/ (淘宝)
     https://weidongshan.tmall.com/(天猫)
交流群一:QQ群:869222007(鸿蒙开发/Linux/嵌入式/驱动/资料下载)
交流群二:QQ群:536785813(单片机-嵌入式)
公 众 号:百问科技


版本日期作者说明
V12020韦东山摘自《嵌入式Linux应用开发完全手册》

1. 框架

在这里插入图片描述
鸿蒙是一套完整的、普通人可以直接使用的操作系统,跟Windows、安卓、IOS类似。

常见的错误观点是把鸿蒙跟Linux放在一起来对比,这不对:

  • Linux只是一个内核,普通人无法使用

    • 还需要在Linux之上安装各类程序
    • 比如Ubuntu等发行版,它们在Linux内核之上,还有桌面、各类办公软件
  • 鸿蒙支持多种内核:Linux、Liteos(又分为Liteos-a、Liteos-m)

  • 在内核之上,鸿蒙还有各种子系统,在子系统之上又有桌面等软件

2. 嵌入式软件系统的组成

在这里插入图片描述

我们可以把内核之上的软件,简单称为APP(实际上还可以细分,比如各类子系统、桌面等APP)。

启动内核,并不复杂,使用U-boot即可。

3. 移植最小系统要做的几件事

  • 串口相关

    • 打印(只是打印调试信息)
    • 串口驱动(可发可收,APP执行printf时可以从串口打印,所以需要驱动)
  • MMU(Memory Management Unit,内存管理单元)的设置:虚拟地址与物理地址

  • 完善中断子系统

    • 提供系统tick时钟
    • 为串口驱动实现基于中断的读取字符函数
  • 实现存储设备驱动程序

  • 在存储设备上烧录文件系统

3.1 串口相关

与Linux的串口驱动相比,鸿蒙的串口驱动极大简化了。

对于输出:不使用中断,直接使用查询方式输出。
对于输入:使用中断,我们只需要提供底层硬件相关的代码。

要注意:使用的是虚拟地址。

3.2 MMU设置

MMU有2大功能:

3.2.1 权限管理

  • 比如可以把进程A、B的地址空间完全隔离开,它们互不影响
  • 写得差的进程、有恶意的进程,不能影响到其他进程
  • 用户程序、内核地址空间完全隔离开:不允许用户直接访问硬件
  • 示例如下
    在这里插入图片描述

3.2.2 地址映射

  • 使能MMU后,CPU发出的地址被称为"虚拟地址",它不是直接发送给硬件,而是发给MMU
  • MMU根据页表
    • 进行权限判定
    • 转换为物理地址,发给外设

运行app1时,CPU发出的addr,通过MMU映射到paddr1;
运行app2时,CPU发出的同一个addr,通过MMU映射到paddr2;
虽然app1、app2使用的地址相同,但是对应的内存不同,如下图:

在这里插入图片描述

  • 在移植过程中,我们不需要关注“权限”,只需要关注“地址映射”

3.3 中断子系统

操作系统跟单片机程序最大的区别,就是多任务,也就是同时运行多个程序。
同时,对人类来说是这样的,多个程序好像可以同时运行,实际上它们是轮流运行。

3.3.1 操作系统"同时"运行多个任务

轮流运行:

在这里插入图片描述

3.3.2 串口接收数据的中断

使用串口接收数据时,如果使用"查询"方式,低效并且费电。
一般都使用中断方式。

3.4 存储设备的驱动程序

板子上一般都有EMMC、SD/TF卡、Nor Flash、Nand Flash等存储设备。
Nor Flash、Nand Flash的驱动程序相对简单,但是这些设备比较少见了。
而EMMC、SD/TF卡的驱动程序又太复杂,足够出一个专题了。
我们聚焦在最小系统的移植,先把流程走通:用内存来模拟Flash。

3.5 根文件系统

光有存储设备还不行,上面需要有文件:这就是根文件系统。
一个程序要能运行,出了你写出的程序本身,还需要其他库,比如printf就不是你写的,它在库文件里。
根文件系统里会有这些内容:

  • 程序
  • 配置文件
  • 用户数据(可选)
  • 驱动程序(可选)

4. 想做更多

  • 为有更好的人机交互可以移植LCD、触摸屏驱动
  • 为了方便开发,移植EMMC驱动、网卡驱动
  • 要接各类外设,还需要I2C、SPI、GPIO、UART驱动
  • 摄像头、声卡驱动

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36250.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2017-韦东山视频学员成果精选(四)

首发平台:微信公众号baiwenkeji 1, 2, 3, 4, 5,

韦东山开发板QT移植笔记

参考 《百问网精智JZ2440开发板4.3寸LCD版使用手册.pdf2015/12/29》 修改环境变量: sudo vi /etc/environment 修改:PATH"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin" 改为&#xf…

2017-韦东山视频学员成果精选(一)

首发平台:威信订阅号baiwenkeji 去年11月18日我们举办了学员心声有奖征集活动,共收到100多封邮件,我们挑选了30多篇写的比较走心的,整理后陆续分享给大家。今天是第1篇。 给大家看这些心声有几个目的: 1. 看看师兄师…

2017-韦东山视频学员成果精选(二)

首发平台:微信公众号baiwenkeji 又到周四, 又到了推送学员成果的时间。上次的推送反馈不错,希望这次能再带来你收获。 再次明确目的: 1. 看看师兄师姐们的学习过程。哪些知识点重要,哪些可以先放过。 2. 看看过来人怎么以实用…

韦东山学习笔记——UART(串口)的使用

基于jz2440的串口使用 搬砖的文章概述UART的发送和接收串口之间的数据传输UART的用途串口的数据帧参数说明起始位数据位奇偶校验位停止位波特率 怎么发送一字节数据,比如‘A‘?UART的优缺点优点缺点 UART相关配置寄存器ULCONn:线路控制寄存器UCONn&…

来自韦神的降维打击

我是卢松松,点点上面的头像,欢迎关注我哦! 能与这样一个不修边幅的,如此年轻的大神,生活在一个时代,听他的故事是一种享受。网传近日韦神帮6个博士团队解决了4个多月都没有解决的难题。 大家应该都听说北…

分享一些新型AI工具让你大开眼界

我打赌99%的人都不熟悉这些工具中的任何一个 在数字化时代,人工智能已经成为推动企业成功的关键驱动力。因此,越来越多的企业正在探索如何将AI技术应用于他们的业务中。随着人工智能技术的不断发展,AI相关的工具和技术的应用场景也变得越来越…

微软 Office 全家桶被 GPT-4 革新:Word 一键变成 PPT,打工人的春天来了!

作者 | 屠敏 出品 | CSDN(ID:CSDNnews) 这一周的科技圈异常地热闹,且多数都是大模型给的: 周二晚间,OpenAI 突然上线 GPT-4 最强大模型,以多模态的能力震惊四座; 周四下午&#x…

同样将AI装进“办公全家桶”,Microsoft 与 Google有何不同?

继GPT-4发布之后,北美时间3月16日,微软在“The Future of Work With AI”大会上发布了Microsoft 365 Copilot,再次掀起一股科技圈浪潮。 据介绍,Microsoft 365 Copilot是一种基于大语言模型开发的AI产品,功能类似ChatG…

【无标题】ONLYOFFICE7.3版本新函数CHOOSEROWS和CHOOSECOLS的正确使用方法

有很多朋友在工作中都会遇到函数公式不会做或者忘记的问题,今天就来给大家看一看ONLYOFFICE7.3版本更新后的新函数CHOOSEROWS和CHOOSECOLS的正确使用方法,全程干货记得保存。 ONLYOFFICE ONLYOFFICE是一款国际开源的免费办公软件,不仅支持日常…

分享一下自己做电影解说的步骤流程和经验,小白必看!

因为工作的关系,视频制作剪辑之类的工作那是经常做,看到有不少朋友好像对这个挺感兴趣的就给大家分享一下,希望可以帮助大家。 文章涉及三个部分: 目录 一、整体流程 二、我遇见过的难点和解决办法 三、整理的工具汇总 一、整…

chatgpt赋能python:Python从后往前读文件:如何处理大数据文件

Python 从后往前读文件: 如何处理大数据文件 Python 是一种非常流行的编程语言,常用于处理大量的数据。在处理大数据文件时,Python提供了一种读取文件的方法,可以从后往前读取文件,这种方法在处理大量数据时非常有用。本文将介绍…

微信称不会推出「已读」功能;马斯克宣布成立 AI 公司 xAI;GPT-4 架构曝光,有 1.8 万亿参数|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

亚马逊裁员9000人、OpenAI估值已达290亿美元、首例涉虚拟数字人侵权案

一、2023-04-27, 亚马逊裁员9000人 这是亚马逊第二次裁员了。亚马逊的第一次裁员始于去年11月,持续两个多月,裁员了18000人,规模在所有IT公司里面是最大的。 但是这样一次裁员,造成了很多内部高层领导的不满。因为亚马…

为什么对ChatGPT、ChatGLM这样的大语言模型说“你是某某领域专家”,它的回答会有效得多?(二)...

“ 介绍神经网络的基本概念和结构,讨论训练实践、技巧以及网络规模的大小对模型能力的影响。同时介绍嵌入(Embeddings)概念,将高维数据映射到低维空间。通过本文,您将对神经网络有更深入的理解,有助于后面理…

给ChatGPT搞双眼睛,《流浪地球2》MOSS有影儿了

允中 发自 凹非寺量子位 | 公众号 QbitAI 上线不到一周日活跃用户破百万,2个月破亿…… OpenAI的AI聊天机器人ChatGPT火爆全球,成为现象级消费类AI应用,并由此引发新一轮的AI竞赛。 率先卷起来地,当属搜索赛道: 谷歌发…

影视解说文案哪里找?

找到电影解说文案有以下几种方法 1、自己撰写电影解说文案 需要一定的写作水平,如果水平不高,即使辛辛苦苦花大量时间写出来也很难上热门。 2、找专业写手代写解说文案 这种方式两个字烧钱,找别人写解说文案稿2000字~3000字,大…

RM奖励模型

本篇将介绍InstructGPT的RM过程,也就是reward model的训练,废话不多说,直接上干货。 RM(Reward Model)模型 这里引入RM模型的作用是对生成的文本进行打分排序,让模型生成的结果更加符合人类的日常理解习惯,更加符合人…

藏在GPT背后的治理分歧:那些赞同和反对的人们|AI百态(下篇)

AGI的火种正在燎原。 一面是无可否认的AI生产力,正在赋能千行百业;而另一面,这团火似乎烧向了我们不可控的隐秘角落。 在《AI百态(上篇)——ChatGPT的“N宗罪”》中,我们提到监管重锤在落下,意大…

人工智能写恋爱情话,省时不费脑,也用心(带教程)

用ChatGPT写情话就是让电脑来帮你写一些浪漫的话,比如表达你对恋人的爱意、想念之情等等。这种技术叫做自然语言生成,它会根据你给出的主题、口吻和语气等因素,自动生成一段与之匹配的情话或情书。 借助ChatGPT写情话,可以让普通人…