嵌入式系統中QT與檔案系統和應用程式的關係

2021-06-04 00:14:17 字數 1740 閱讀 4369

嵌入式系統中qt與檔案系統和應用程式的關係

前言從硬體底層到應用程式,構建linux嵌入式系統的過程分為5部分:bootloader移植,核心移植,根檔案系統構建,圖形系統構建和應用程式開發。根據網路資料,我們都能夠分步完成這5個部分,但有的時候總覺知其然不知其所以然,好像不知不覺都已經建立起了乙個系統,但相關的概念和方法仍然很模糊,尤其是圖形系統構建。本文的「圖形系統」特指應用於linux嵌入式系統中的qt。本文的目的是說明在構建嵌入式系統時,已經啟動了檔案系統後,圖形系統建立所需要做的工作。

一、與x windows system 架構思維模擬

在顯示器上我們開啟乙個應用程式,系統就彈出該程式的視窗,考慮一下這個過程是怎麼實現的。

方法一計算機顯示的影象是由畫素組成的,最直接的方法就是應用程式把畫素乙個乙個的畫出來。顯然這是乙個曠日持久的過程。

方法二乙個乙個畫素點的畫很麻煩,而應用程式也不需要用到單位畫素點這麼精細,抽象出來就是點(多個畫素點)、線、圓、染色(填充)等。那就做一些函式庫專門來實現這些基本操作,好處大家都可想象。看來抽象出共同的操作,然後把這些共同操作用函式庫實現,使用的時候直接呼叫的方法確實好。

方法三能否再進一步抽象我們應用程式需要做的工作呢?使用方法二的操作函式做出一些元件,如按鈕、滑塊、文字框,我們程式中用這些元件就可以實現應用程式視窗了。當然,元件化導致的是同一化問題,但是不管怎樣,現在我們設計視窗更容易了。實現了這個小康,閒著閒著我們又發現每個程式有自己的視窗,可是程式之間的視窗切換縮放等問題怎麼解決?

改進一視窗管理器這個角色自然就產生了,這次算是對動作的抽象。有了它,我們開始實現初步發達。

改進二可是有天大家一起聊天,發現大夥兒平時都需要寫寫文件,上網看看部落格,發發郵件什麼的,為什麼不把這些應用和需求都抽象起來,統一實現,免得大夥兒麻煩。於是有能人就抽象抽象,建模建模,硬是把這些應用程式給開發出來。還有一些人更是再接再厲,把這些零零散散的應用程式歸個類,設了個檯面(桌面),把應用程式都擺上去,一目了然,誰有了新的需求,也可以抽象抽象,編寫應用程式放到檯面上來。為了方便大家茶前飯後聊天,還給這個包含應用程式的檯面起了乙個名字「桌面環境」。這時候我們就不是一般的發達了。

改進三/方法四

因此,對需求、動作等的抽象,然後用庫函式統一實現這些抽象這種方法是實現全面發達的有效途徑啊。對上文小節一下:

方法一用的是硬體底層畫素顯示

方法二抽象出的共同操作函式就是底層繪圖函式(graphic library)

方法三更進一步提出控制項工具包(widget toolkit)

改進一提出了視窗管理器(window manager )

改進二提出了桌面環境(如linux的gnome,微軟視窗作業系統等)

二、linux嵌入式系統的qt圖形系統

針對嵌入式系統資源有限的特徵,qt提出了"方法四",它直接把上文中除方法一之外的其他方法和改進全部打包,整體解決。當基本的檔案系統建立起來了,linux嵌入式系統核心啟動後執行的第乙個使用者程式設為qt,好了,大家就可以休息了,qt也提供一些基本的應用,為大夥做到了即開即用。

圖1. qt在嵌入式linux系統中的位置

(引用自

到此,「嵌入式系統中qt與檔案系統和應用程式的關係」可以描述為:檔案系統是容器,裡面放了根檔案系統和qt;根檔案系統主要用於支援核心程式工作,屬於基層工作部,而qt用於圖形系統管理,屬於外聯部組織部;應用程式在qt的關愛下快樂的生活著,而核心在不辭辛勞的完成qt交給的任務。

三、怎樣給開發板新增qt

請參考《嵌入式linux應用開發完全手冊》第512頁,第25.2.6小節「在開發板上安裝、執行qtopia」。謝謝作者韋東山。

嵌入式檔案系統小結

近日看了幾個fat檔案系統的原始碼,主要有ucfs efsl minfat等,小結一下。嵌入式的檔案系統雖有不少,但在消費類電子產品上,還是以fat為主,儲存體為nand flash,加上mass storage功能,能讓使用者在pc上管理檔案,如在 電子詞典上等,都用得很廣泛。ucfs 主要針對於...

嵌入式linux檔案系統修復

最近在做linux系統整合的時候會發現檔案系統損壞的問題,導致一些分割槽無法使用。發生以上問題時可以使用fsck命令進行修復。fsck命令的主要功能就是對檔案系統進行修復。fsck命令的主要引數如下 t 給定檔案系統的型式,若在 etc fstab 中已有定義或 kernel 本身已支援的則不需加上...

嵌入式檔案系統之 cramfs檔案系統的製作工具

cramfs檔案系統簡介 cramfs檔案系統是由linuxtorvalds編寫的專門針對快閃儲存器設計的唯讀壓縮檔案系統。與ramdisk方式不同,cramfs檔案系統不需要一次性地將檔案系統中的所有內容都解壓到記憶體中,而只是在系統需要訪問某個資料時,馬上計算出該資料在cramfs中的位置,將其...