日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

liteos内核驱动和linux,移植RTOS必备基础知识

發布時間:2024/1/23 linux 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 liteos内核驱动和linux,移植RTOS必备基础知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 基礎知識

移植內核對技術的要求比較高、比較細。

1.1 單片機相關的知識

棧的作用

加載地址、鏈接地址

重定位

幾個簡單的硬件知識

○串口

○定時器

中斷的概念

1.2 Linux操作相關的知識

Linux常用命令

簡單的腳本:腳本就是把命令寫在一個文件里

Makefile

GCC編譯命令

1.3 芯片相關知識

能閱讀芯片手冊(英文)

○移植最小系統時,涉及的手冊內容不多

能看懂硬件原理圖

○移植最小系統時,涉及的原理圖內容不多

2. 驅動程序知識

對于只有單片機知識的人來說,怎么去操作硬件?

直接讀寫寄存器

使用庫函數

在RTOS中,本質也是去讀寫寄存器,但是需要有統一的驅動程序框架。

所以:RTOS驅動 = 驅動框架 + 硬件操作

2.1 以點燈為例

2.1.1 硬件原理

2.1.2 單片機點燈

方法1:直接讀寫寄存器

方法2:使用廠家的HAL庫

2.1.3 FreeRTOS點燈

2.1.4 rt-thread點燈

方法1:直接操作寄存器

方法2:使用驅動程序

○驅動模型如下

○驅動示例如下:

調用過程框架

調用過程示例

2.1.5 Liteos-a/Linux怎么點燈

使用MMU時,一般APP與內核是相互隔離的。APP通過標準的open/read/write等文件操作函數去調用驅動程序。

如下圖所示:

為何要多此一舉?

它們支持MMU(內存管理單元)

用戶程序跟內核是分隔開的,用戶程序不能直接讀寫寄存器

用戶程序通過標準接口訪問驅動程序

基于這些內核的軟件一般都比單片機軟件復雜,術業有專攻

不應該讓寫APP的人去看原理圖、寫驅動、寫寄存器

軟件和硬件隔離,硬件再怎么變化,只需要改驅動,APP不需要改

2.1.6 Android怎么點燈

Android是Linux操作系統上的一套操作系統

Android通過Linux來訪問硬件,本質還是Linux驅動

一般的C程序、C++程序,可以直接調用open/read/write等函數

使用java編寫的程序要訪問C函數需要通過JNI

2.2 以LCD為例

2.2.1 硬件原理

設置LCD控制器,它會自動從FrameBuffer中讀取每個像素的數據發送到LCD上

把要顯示的文字、圖像放入FrameBuffer中

2.2.2 Liteos-a/Linux怎么操作LCD

為何要多此一舉?

它們支持MMU(內存管理單元)

用戶程序跟內核是分隔開的,用戶程序不能直接讀寫寄存器

用戶程序通過標準接口訪問驅動程序

基于這些內核的軟件一般都比單片機軟件復雜,術業有專攻

不應該讓寫APP的人去看原理圖、寫驅動、寫寄存器

軟件和硬件隔離,硬件再怎么變化,只需要改驅動,APP不需要改

2.2.3 Android怎么操作LCD

Android/QT等GUI系統里:

LCD會被多個APP使用,如果不統一管理必定亂套

所以,肯定有一個管理軟件,或稱為服務軟件

APP自行構造自己的界面,提交給顯示顯示服務軟件

顯示服務軟件:根據多個APP的前后層次,合并最終的顯示圖像

再調用驅動程序顯示出來

2.2.4 鴻蒙怎么操作LCD

鴻蒙支持Liteos、Linux內核,在內核之上怎么去為多個APP管理唯一的顯示設備? 鴻蒙還支持軟總線,理論上可以支持更多的LCD,怎么做? 不知道,一起期待它開放出更多源碼吧。

作者:韋東山

想了解更多內容,請訪問:

51CTO和華為官方戰略合作共建的鴻蒙技術社區

https://harmonyos.51cto.com?jssq

總結

以上是生活随笔為你收集整理的liteos内核驱动和linux,移植RTOS必备基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。