在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探究Microwindows的嵌入式GUI設(shè)計(jì)

電子工程師 ? 來源:搜易科技網(wǎng) ? 作者:wangmeng ? 2021-03-24 10:26 ? 次閱讀

引言

嵌入式圖形用戶界面與存儲安全、嵌入式JAVA 虛擬機(jī)并稱為嵌入式系統(tǒng)中的三大關(guān)鍵技術(shù)。在嵌入式應(yīng)用領(lǐng)域,伴隨著硬件技術(shù)的發(fā)展,傳統(tǒng)意義上的人機(jī)交互界面正趨于淡化,取而代之的是具有友好人機(jī)交互支持的嵌入式圖形界面。

嵌入式計(jì)算機(jī)系統(tǒng)以其關(guān)鍵部件的高性能、低價(jià)格等優(yōu)勢為Embedded GUI 的發(fā)展奠定了堅(jiān)實(shí)的市場和技術(shù)基礎(chǔ);而基于Linux 開放源代碼、遵循不同授權(quán)條款的諸多Embedded GUI 軟件及其自由開發(fā)者,又大大推進(jìn)了Embedded GUI 的應(yīng)用進(jìn)程,起到推波助瀾的作用,如Microwindows、MiniGUI 及QT/ Embedded 等。

嵌入式系統(tǒng)是以應(yīng)用為中心、計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)的這一定義也就界定了嵌入式系統(tǒng)對Embedded GUI 的基本要求。這些要求如下: (1) 輕量級、占用系統(tǒng)資源少; (2) 性能高,友好的人機(jī)互動; (3) 可靠性高; (4) 模塊架構(gòu),配置靈活,便于移植。

目前,在嵌入式應(yīng)用領(lǐng)域比較成功的Embedded GUI主要有MiniGUI、Microwindows 和QT/ Embedded。

MiniGUI 和Microwindows 都是自由軟件,只是前者遵循L GPL 條款,后者遵循MPL 條款。這兩個(gè)系統(tǒng)的技術(shù)路線也有所不同。MiniGUI 的策略是首先建立在比較成熟的圖形引擎之上,如Svgalib 和LibGGI ,開發(fā)的重點(diǎn)在窗口系統(tǒng)、圖形接口上。

Microwindows 目前的開發(fā)重點(diǎn)則在底層的圖形引擎上,它不需要其它圖形系統(tǒng)的支持。在Linux 操作系統(tǒng)上,Microwindows 也可以充分利用Linux 提供的Framebuffer機(jī)制來顯示圖形。并且,Microwindows 還具有很強(qiáng)的移植性,能夠在大多數(shù)微處理器上運(yùn)行。

QT/ Embedded 由于移植了大量原來基于QT 的XWindows 程序,提供了非常完整的嵌入式GUI 解決方案,再加上Opera 瀏覽器,可以說是一個(gè)成熟的商業(yè)軟件。然而,QT/ Embedded 不能運(yùn)行在非QT 的軟件中,其源代碼也過于龐大。

作為一個(gè)開放源代碼項(xiàng)目,Microwindows 將現(xiàn)代圖形窗口技術(shù)的一些特性展現(xiàn)給了編程團(tuán)體,而不需要諸如Microsof t Windows 或X Window 這樣占用較大磁盤和RAM 空間的高級窗口的支持。它直接面向顯示硬件本身,不需要任何操作系統(tǒng)或其它圖形系統(tǒng)的支持,可以在Linux 2. 0 以上的Framebuffer 系統(tǒng)上很好地運(yùn)行。Microwindows 本身就被設(shè)計(jì)成便于移植、能夠在大多數(shù)硬件和軟件環(huán)境下運(yùn)行的Embedded GUI。

Microwindows 最新版本0. 9 有如下新特性:

(1) 支持新的NXL IB 項(xiàng)目,NXL IB 對X11 的二進(jìn)制程序可以不加修改地直接在Microwindows 里運(yùn)行,而無需X11 Server 支持;

(2) 支持Sharp Zaurus、Tuxscreen、TriMedia 及Cygnus X11 平臺;

(3) 內(nèi)建標(biāo)準(zhǔn)化校準(zhǔn)(nxcal) 支持,如一個(gè)觸摸屏驅(qū)動程序可以支持包含iPAQ、Zaurus、ADS 和Tuxscreen 在內(nèi)的大多數(shù)ARM 平臺;

(4) 增強(qiáng)了字符支持,包括BIG5 、GB2312 、EUCCN、EUCKR、EUCJ P 和J ISX0213 等;

(5) 大幅提高了X11 屏幕驅(qū)動程序和文本畫圖的速度;

(6) 32 位ARGB 硬件驅(qū)動支持單色Alpha ;

(7) 支持帶有HAVI 鍵盤映射的L IRC 鍵盤;

(8) 從源代碼中為html 和pdf 文檔自動生成支持基于Doxygen 的文檔。

總而言之,最新版本的Microwindows 在硬件驅(qū)動加速上、在圖形引擎算法上以及代碼質(zhì)量上,都比原先的版本有較大的改進(jìn)。

Microwindows 的API

Microwindows 采用分層體系結(jié)構(gòu)設(shè)計(jì),提供了豐富的API 支持,支持Win32/ WinCE GDI 和Nano-X兩種API 集。

Microwindows 體系結(jié)構(gòu)

Microwindows 的體系結(jié)構(gòu)由下至上,分別為具體硬件、驅(qū)動層、圖形引擎層和API 層,如圖1 所示。用戶可以根據(jù)具體應(yīng)用需求對不同層的代碼進(jìn)行修改或重寫。

(1) 設(shè)備驅(qū)動程序。

鍵盤驅(qū)動程序主要有兩個(gè),分別是kbd _ tty. c 和kbd _ bios. c 。前者主要用于Linux 和EL KS 系統(tǒng),而后者主要用于MSDOS 實(shí)模式。

鼠標(biāo)驅(qū)動程序主要有三個(gè):mou_gpm. c ,用于Linux 的一個(gè)GPM 驅(qū)動; mou _ ser. c ,用于Linux 和EL KS 系統(tǒng);mou_gpm. c ,主要用于MSDOS 系統(tǒng)。

屏幕驅(qū)動程序有面向16 位EL KS、MSDOS 實(shí)模式的V GA 驅(qū)動( scr_bios. c、vgaplan4. c、memp14. c 、scr_here. c)和面向Linux 的Framebuffer ( scr_fb. c、fb. c 等) 兩種。這部分驅(qū)動程序最復(fù)雜,在設(shè)計(jì)時(shí)可以參考scr_fb. c 來設(shè)計(jì)自己的屏幕驅(qū)動程序。

(2) 設(shè)備獨(dú)立的圖形引擎。

Microwindows 的圖形引擎是設(shè)備獨(dú)立的。引擎的每一例程都接受SCREENDEVICE 結(jié)構(gòu)的指針( PSD) 來作為第一個(gè)參數(shù)。PSD 說明了底層的顯示細(xì)節(jié),如屏幕大小的x 、y 值,屏幕顏色ncolors ,以及諸如打開、關(guān)閉、畫線等函數(shù)指針。PSD 結(jié)構(gòu)定義如下:

Microwindows 的API

Microwindows 提供兩個(gè)應(yīng)用程序接口:一是Win32 接口,這種API 不是很成熟;二是Nano-X ,這種API 比較好,結(jié)構(gòu)上清晰,功能上也完全。

在Microwindows 上的API 接口函數(shù)的基本模型都是用來初始化屏幕、鍵盤和鼠標(biāo)的驅(qū)動程序,然后一直等待select () 消息循環(huán)。當(dāng)事件發(fā)生時(shí),這條信息將送到用戶程序。如果是用戶請求圖形操作,那參數(shù)將被編碼后送到適當(dāng)?shù)腉dXXX 核心程序上。與原始圖形操作相對的窗口概念是被該層所控制的,也就是說該層的API 函數(shù)定義了窗口及其對應(yīng)系統(tǒng)的概念。這樣,系統(tǒng)坐標(biāo)就能被轉(zhuǎn)成屏幕上顯示的坐標(biāo),并且可將數(shù)據(jù)傳給GdXXX 核心程序,由它進(jìn)行實(shí)際操作。該層亦定義圖形/ 顯示文件,并且會將此信息(包括裁減信息) 送到核心程序上。

Microwindows 的API 支持大多數(shù)圖形繪制、裁減、窗口工具條繪制及拖拉窗口等程序。Nano-X 最先是由Davin Bell 為minix 設(shè)計(jì)的,它被設(shè)計(jì)為C/ S 模式,一般是通過Unix Domain socket 在客戶與服務(wù)器端進(jìn)行通信的,但沒有實(shí)現(xiàn)窗口管理,所以對窗口的處理需要使用系統(tǒng)提供的一個(gè)插件集,或者完全由應(yīng)用程序員自已開發(fā)。另外,Nano-X 不是消息驅(qū)動的,而是基于X 協(xié)議模式。在這種模式下,驅(qū)動整個(gè)系統(tǒng)運(yùn)行的可以說是請求與事件。

請求就是客戶端為了完成某一動作而對服務(wù)器端所發(fā)出的申請,并且為每一個(gè)請求都定義了一個(gè)標(biāo)識數(shù)。每個(gè)請求的結(jié)構(gòu)都是不同的,但類似如下結(jié)構(gòu):

事件是每個(gè)窗口系統(tǒng)必不可少的部分,它反映系統(tǒng)運(yùn)行的狀態(tài),一共有22 種。對于每個(gè)事件都要提供有關(guān)它的結(jié)構(gòu),但沒有必要提供22 種事件結(jié)構(gòu),有一些事件所需要的數(shù)據(jù)是一樣的,如所有鼠標(biāo)的事件都使用一個(gè)事件結(jié)構(gòu)表示,如下所示:

Microwindows 在仿真環(huán)境下的應(yīng)用

Microwindows 最為顯著的優(yōu)勢在于它可以在桌面計(jì)算機(jī)上仿真運(yùn)行目標(biāo)平臺的GUI 及其支撐軟件。這就意味著面向Linux 的Microwindows 應(yīng)用軟件可以在桌面計(jì)算機(jī)的Linux 環(huán)境下編制和調(diào)試,而沒有必要建立跨平臺交叉編譯環(huán)境,并在目標(biāo)平臺上對軟件進(jìn)行編制和調(diào)試。這一點(diǎn)對于Embedded GUI 移植和開發(fā)而言,意義非同尋常。這完全歸功于Microwindows 的X Screen Driver ,而非Linux 的Framebuffer 。

我們在桌面計(jì)算機(jī)上的Linux 8. 0 仿真環(huán)境下運(yùn)行Microwindows ,并通過一個(gè)簡單實(shí)例演示仿真環(huán)境下的Microwindows 應(yīng)用編程。顯然,我們應(yīng)采用Nano-X API。

仿真環(huán)境下Microwindows 主要的安裝步驟:

(1) 下載并安裝最新源代碼Microwindows20. 90. tar和最新字體microwindows2font s20. 90. tar。

(2) 修改安裝目錄下的配置文件,如mirowin/ src 下的config file ,主要包括以下幾項(xiàng):

ARCH = LINUX-NATIVE;

/ / 高速系統(tǒng)為主機(jī)LINUX 建立應(yīng)用程序

HAVE_FREETYPE_SUPPORT = Y;

/ / 設(shè)置對Free Type 和T1lib 字體的支持

HAVE_ T1LIB_SUPPORT = Y;

HAVE_HZK_SUPPORT = Y;

X11 = Y;

SCREEN_WIDTH = 640 ;

SCREEN_HEIGHT = 480 ;

SCREEN_PIXTYPE = MWPF_TRUECOLOR0888 ;

Microwindows 在桌面Linux 8. 0環(huán)境下的運(yùn)行效果如圖2 所示。

結(jié)束語

嵌入式相關(guān)研究和應(yīng)用正在以前所未有的速度發(fā)展著,而作為嵌入式系統(tǒng)核心內(nèi)容之一的Embedded GUI 一定會隨著嵌入式系統(tǒng)的發(fā)展處于舉足輕重的地位。具有高可移植性、豐富API 支持、開放源代碼及可仿真運(yùn)行的Microwindows ,在諸多Embedded GUI 技術(shù)中必將脫穎而出。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5092

    文章

    19177

    瀏覽量

    307679
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1511

    瀏覽量

    62396
  • PSD
    PSD
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    45440
  • GUI
    GUI
    +關(guān)注

    關(guān)注

    3

    文章

    662

    瀏覽量

    39891
收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式主板的概述與發(fā)展

    隨著科技的迅猛發(fā)展,嵌入式系統(tǒng)在現(xiàn)代電子產(chǎn)品中扮演著越來越重要的角色。嵌入式主板作為嵌入式系統(tǒng)的核心組件之一,承擔(dān)著控制、處理和通訊等多種功能。本文將對嵌入式主板的基本概念、構(gòu)成部分、
    的頭像 發(fā)表于 01-13 16:30 ?314次閱讀
    <b class='flag-5'>嵌入式</b>主板的概述與發(fā)展

    新手怎么學(xué)嵌入式?

    新手怎么學(xué)嵌入式? 在科技飛速發(fā)展的今天,嵌入式技術(shù)已經(jīng)滲透到我們生活的各個(gè)角落,從智能手機(jī)到智能家居,從汽車電子到醫(yī)療設(shè)備。對于新手而言,嵌入式技術(shù)就像是一座充滿神秘和機(jī)遇的寶藏,等待著大家去挖掘
    發(fā)表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指將人工智能技術(shù)應(yīng)用于嵌入式系統(tǒng)中的一種技術(shù)。嵌入式系統(tǒng)是嵌入到其他設(shè)備或系統(tǒng)中的計(jì)算機(jī)系統(tǒng),通常用于控制、監(jiān)測或執(zhí)行特定任務(wù),如智能手機(jī)、智能家居設(shè)備、智能汽車等中的
    的頭像 發(fā)表于 12-11 09:23 ?413次閱讀
    什么是<b class='flag-5'>嵌入式</b>人工智能

    什么是嵌入式?一文讀懂嵌入式主板

    在現(xiàn)代科技浪潮中,嵌入式技術(shù)已成為支撐各種智能設(shè)備和系統(tǒng)運(yùn)行的核心力量。那么,究竟什么是嵌入式嵌入式系統(tǒng),顧名思義,是將計(jì)算機(jī)的硬件和軟件嵌入到某種設(shè)備或系統(tǒng)中,以實(shí)現(xiàn)特定功能的計(jì)算
    的頭像 發(fā)表于 10-16 10:14 ?1581次閱讀

    GUI Guider全新版本上線

    GUI Guider v1.8.1上線啦!這一版本為嵌入式HMI開發(fā)帶來了多項(xiàng)新功能和改進(jìn),旨在為您提供更加高效、便捷的嵌入式HMI開發(fā)體驗(yàn)。
    的頭像 發(fā)表于 10-14 11:37 ?1610次閱讀

    AMD 面向嵌入式系統(tǒng)推出高能效 EPYC 嵌入式 8004 系列

    AMD 憑借其 EPYC? 嵌入式處理器不斷樹立行業(yè)標(biāo)準(zhǔn),為網(wǎng)絡(luò)、存儲和工業(yè)應(yīng)用提供卓越的性能、效率、連接與創(chuàng)新。今天,我們正以第四代 AMD EPYC 嵌入式 8004 系列處理器擴(kuò)展這一
    發(fā)表于 10-11 13:58 ?757次閱讀

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統(tǒng)的核心組件,是一種用于控制和數(shù)據(jù)處理的計(jì)算機(jī)硬件,其設(shè)計(jì)旨在嵌入特定設(shè)備中執(zhí)行專門任務(wù)。嵌入式主板如同是設(shè)備的“大腦”,主要功能是根據(jù)需要管理和控制設(shè)備
    的頭像 發(fā)表于 09-30 10:05 ?974次閱讀

    EsDA,一站嵌入式軟件

    EsDA是一套面向工業(yè)智能物聯(lián)領(lǐng)域的嵌入式系統(tǒng)設(shè)計(jì)自動化工具集,包含實(shí)時(shí)操作系統(tǒng)AWorksLP、低代碼開發(fā)平臺AWStudio、資源管理平臺AXPI、跨平臺GUI引擎AWTK和云服務(wù)平臺ZWS
    的頭像 發(fā)表于 09-15 08:10 ?358次閱讀
    EsDA,一站<b class='flag-5'>式</b><b class='flag-5'>嵌入式</b>軟件

    七大嵌入式GUI盤點(diǎn)

    嵌入式圖形用戶界面(GUI)是一種為嵌入式系統(tǒng)設(shè)計(jì)的用戶界面,它可以讓用戶通過圖形化的方式與設(shè)備進(jìn)行交互。以下是對七種嵌入式 GUI 的盤點(diǎn)
    發(fā)表于 09-02 10:58

    嵌入式linux開發(fā)的基本步驟有哪些?

    嵌入式Linux開發(fā)是一個(gè)復(fù)雜的過程,涉及到硬件選擇、操作系統(tǒng)移植、驅(qū)動開發(fā)、應(yīng)用程序開發(fā)等多個(gè)方面。以下是嵌入式Linux開發(fā)的基本步驟,以及每個(gè)步驟的說明。 硬件選擇 在開始嵌入式Linux開發(fā)
    的頭像 發(fā)表于 09-02 09:11 ?630次閱讀

    嵌入式主板,你了解多少?

    嵌入式主板,也稱為嵌入式計(jì)算機(jī)主板,是一種專門設(shè)計(jì)用于嵌入式系統(tǒng)的計(jì)算機(jī)主板。與臺式機(jī)和筆記本電腦中使用的常規(guī)主板不同,嵌入式主板設(shè)計(jì)用于集成到更大的電子設(shè)備中,例如汽車、醫(yī)療設(shè)備或自
    的頭像 發(fā)表于 04-17 15:11 ?1673次閱讀

    分享幾個(gè)嵌入式中常用的GUI

    一、什么是GUIGUI是圖形用戶界面(GraphicalUserInterface,簡稱GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。通過GUI框架,用戶可直接
    的頭像 發(fā)表于 04-06 08:09 ?1751次閱讀
    分享幾個(gè)<b class='flag-5'>嵌入式</b>中常用的<b class='flag-5'>GUI</b>

    GUI Guider新版本發(fā)布,嵌入式GUI開發(fā)體驗(yàn)升級

    作為恩智浦著力打造的一款嵌入式人機(jī)交互應(yīng)用開發(fā)工具,GUI Guider又迎來了一個(gè)新版本!最新發(fā)布的GUI Guider v1.7.1增加了視頻轉(zhuǎn)換功能,可以幫助用戶靈活地轉(zhuǎn)換原視頻,包括長度裁剪
    發(fā)表于 03-29 09:47 ?1796次閱讀
    <b class='flag-5'>GUI</b> Guider新版本發(fā)布,<b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b>開發(fā)體驗(yàn)升級

    嵌入式fpga是什么意思

    嵌入式FPGA是指將FPGA技術(shù)集成到嵌入式系統(tǒng)中的一種解決方案。嵌入式系統(tǒng)是一種為特定應(yīng)用而設(shè)計(jì)的計(jì)算機(jī)系統(tǒng),它通常包括處理器、內(nèi)存、外設(shè)接口等組件,并且被嵌入到更大的設(shè)備或系統(tǒng)中,
    的頭像 發(fā)表于 03-15 14:29 ?1377次閱讀

    fpga是嵌入式

    FPGA(現(xiàn)場可編程門陣列)不是嵌入式系統(tǒng),但FPGA在嵌入式系統(tǒng)中有著重要的應(yīng)用。
    的頭像 發(fā)表于 03-14 17:19 ?2522次閱讀
    主站蜘蛛池模板: 99久久99久久免费精品蜜桃 | 五月婷婷六月激情 | 亚洲综合色婷婷中文字幕 | 亚洲第一色视频 | 久久国模| caopon在线| 色男人在线 | 1024手机看片国产 | 男人的天堂在线精品视频 | 人人干视频在线观看 | 深爱五月激情 | 狠狠色噜噜狠狠狠狠2021天天 | 午夜视频在线观看完整高清在线 | 久久噜国产精品拍拍拍拍 | 全免费一级毛片在线播放 | 日本不卡在线观看免费v | 亚洲国产成人久久99精品 | 午夜影皖 | 亚洲电影一区二区三区 | 激情综合亚洲 | 日本一二线不卡在线观看 | 国产片在线观看狂喷潮bt天堂 | 天天爽天天狼久久久综合 | 国产精品视频第一区二区三区 | 国产精品手机在线 | 亚洲成人黄色 | 亚洲 图片 小说 欧美 另类 | jiuse视频| 啪啪调教所29下拉式免费阅读 | 成人影院久久久久久影院 | 人人免费人人专区 | 777人体粉嫩u美图 | 国产欧美日韩综合精品一区二区 | 久久精品亚洲精品国产欧美 | 一区二区三区中文字幕 | 天天狠天天透天干天天怕处 | a毛片成人免费全部播放 | 护士巨好爽好大乳 | 四虎精品久久久久影院 | 一区二区三区伦理 | 羞羞漫画喷水漫画yy漫画 |