日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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)鍵部件的高性能、低價格等優(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 條款。這兩個系統(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 瀏覽器,可以說是一個成熟的商業(yè)軟件。然而,QT/ Embedded 不能運(yùn)行在非QT 的軟件中,其源代碼也過于龐大。

作為一個開放源代碼項(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) 支持,如一個觸摸屏驅(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ū)動程序主要有兩個,分別是kbd _ tty. c 和kbd _ bios. c 。前者主要用于Linux 和EL KS 系統(tǒng),而后者主要用于MSDOS 實(shí)模式。

鼠標(biāo)驅(qū)動程序主要有三個:mou_gpm. c ,用于Linux 的一個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ì)時可以參考scr_fb. c 來設(shè)計(jì)自己的屏幕驅(qū)動程序。

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

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

Microwindows 的API

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

在Microwindows 上的API 接口函數(shù)的基本模型都是用來初始化屏幕、鍵盤和鼠標(biāo)的驅(qū)動程序,然后一直等待select () 消息循環(huán)。當(dāng)事件發(fā)生時,這條信息將送到用戶程序。如果是用戶請求圖形操作,那參數(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)提供的一個插件集,或者完全由應(yīng)用程序員自已開發(fā)。另外,Nano-X 不是消息驅(qū)動的,而是基于X 協(xié)議模式。在這種模式下,驅(qū)動整個系統(tǒng)運(yùn)行的可以說是請求與事件。

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

事件是每個窗口系統(tǒng)必不可少的部分,它反映系統(tǒng)運(yùn)行的狀態(tài),一共有22 種。對于每個事件都要提供有關(guān)它的結(jié)構(gòu),但沒有必要提供22 種事件結(jié)構(gòu),有一些事件所需要的數(shù)據(jù)是一樣的,如所有鼠標(biāo)的事件都使用一個事件結(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 ,并通過一個簡單實(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)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5210

    文章

    20680

    瀏覽量

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

    關(guān)注

    2

    文章

    2481

    瀏覽量

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

    關(guān)注

    0

    文章

    36

    瀏覽量

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

    關(guān)注

    3

    文章

    699

    瀏覽量

    43911
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    EsDA科普 | AWTK:打造流暢、開源、跨平臺的嵌入式GUI

    聯(lián)網(wǎng)領(lǐng)域,GUI引擎是連接用戶與設(shè)備的關(guān)鍵橋梁。但實(shí)際開發(fā)中,這些問題是否讓你頭疼:渲染效果差:界面卡頓、動畫生硬,用戶體驗(yàn)打折;資源占用高:嵌入式設(shè)備性能有限,
    的頭像 發(fā)表于 04-09 11:35 ?369次閱讀
    EsDA科普 | AWTK:打造流暢、開源、跨平臺的<b class='flag-5'>嵌入式</b><b class='flag-5'>GUI</b>

    飛凌嵌入式亮相德國紐倫堡embedded world 2026,深耕全球嵌入式AI市場!

    2026年3月10日,全球嵌入式技術(shù)領(lǐng)域的年度盛會——embedded world 2026國際嵌入式展覽會,在德國紐倫堡會展中心盛大啟幕。飛凌嵌入式攜多款重磅新品及全場景解決方案再一次隆重參展
    的頭像 發(fā)表于 03-11 16:37 ?1.1w次閱讀
    飛凌<b class='flag-5'>嵌入式</b>亮相德國紐倫堡embedded world 2026,深耕全球<b class='flag-5'>嵌入式</b>AI市場!

    什么是嵌入式應(yīng)用開發(fā)?

    概述 所謂的嵌入式應(yīng)用開發(fā)就是在嵌入式操作系統(tǒng)下進(jìn)行開發(fā)、軟硬件綜合開發(fā) ?嵌入式應(yīng)用開發(fā)?是指在嵌入式操作系統(tǒng)下進(jìn)行開發(fā),包括系統(tǒng)化設(shè)計(jì)指導(dǎo)下的硬件和軟件綜合研發(fā)。
    發(fā)表于 01-12 16:13

    arm嵌入式主板優(yōu)缺點(diǎn)

    嵌入式主板是嵌入在設(shè)備里面做控制、數(shù)據(jù)處理使用的CPU板 ,常見的有兩類,即基于X86的嵌入式主板和基于RISC的ARM 嵌入式主板。今天我們就來認(rèn)識arm
    發(fā)表于 01-08 07:08

    恩智浦嵌入式HMI應(yīng)用開發(fā)工具GUI Guider 1.10.1全新上線

    恩智浦嵌入式HMI應(yīng)用開發(fā)工具GUI Guider 1.10.1全新上線啦!新版本重點(diǎn)聚焦性能提升、工具鏈升級、多點(diǎn)觸控體驗(yàn)以及開發(fā)板適配,進(jìn)一步優(yōu)化IDE界面,增強(qiáng)功能穩(wěn)定性,并完善文檔體系。
    的頭像 發(fā)表于 12-28 09:45 ?2052次閱讀

    系統(tǒng)嵌入式的學(xué)習(xí)路線

    嵌入式技術(shù)是各種電子產(chǎn)品的核心技術(shù),也是工業(yè)4.0、遠(yuǎn)程醫(yī)療、3D打印等新興產(chǎn)業(yè)的核心技術(shù),具有廣闊的發(fā)展前景。很多計(jì)算機(jī)、電子信息類專業(yè)的學(xué)生都想把嵌入式開發(fā)作為自己的職業(yè)目標(biāo),但是因?yàn)?b class='flag-5'>嵌入式涉及
    發(fā)表于 12-16 07:49

    瑞薩電子攜手LVGL PRO推進(jìn)嵌入式圖形用戶界面開發(fā)

    隨著嵌入式設(shè)備對用戶體驗(yàn)要求的不斷提升,圖形用戶界面(GUI)成為產(chǎn)品開發(fā)越來越重要的一環(huán)。作為目前最流行的開源嵌入式圖形庫之一的LVGL,最近就推出了自己的商業(yè)化專業(yè)UI編輯器LVGL PRO 1.0版本。
    的頭像 發(fā)表于 11-21 10:23 ?1896次閱讀
    瑞薩電子攜手LVGL PRO推進(jìn)<b class='flag-5'>嵌入式</b>圖形用戶界面開發(fā)

    嵌入式與FPGA的區(qū)別

    \"嵌入式開發(fā)門檻低、就業(yè)廣,適合轉(zhuǎn)行;FPGA技術(shù)深、薪資高,但要求學(xué)歷和數(shù)學(xué)功底。選哪個?看你的基礎(chǔ)和職業(yè)目標(biāo)。\" ?我們先來明白下兩者區(qū)別在哪? ?1、嵌入式:分兩部分
    發(fā)表于 11-20 07:12

    嵌入式和FPGA的區(qū)別

    嵌入式系統(tǒng)與FPGA的核心差異:軟件定義功能VS硬件可重構(gòu)。嵌入式適合通用計(jì)算,開發(fā)門檻低;FPGA憑借并行處理實(shí)現(xiàn)納秒級響應(yīng),但成本高、開發(fā)難。二者融合的SoC器件正成為未來趨勢,平衡性能與靈活性
    發(fā)表于 11-19 06:55

    AMD 2025.1版嵌入式軟件和工具的新增功能

    AMD 2025.1 版嵌入式軟件和工具是面向新一代嵌入式系統(tǒng)開發(fā)而打造的綜合平臺,全面加速概念構(gòu)想到部署落地。
    的頭像 發(fā)表于 08-15 15:32 ?1471次閱讀

    嵌入式工程師為什么要學(xué)QT?

    、車載系統(tǒng)和消費(fèi)電子等領(lǐng)域尤為突出。其跨平臺特性、豐富的庫和工具、高性能以及強(qiáng)大的GUI支持,讓Qt成為嵌入式開發(fā)最理想的選擇。 嵌入式工程師學(xué)習(xí)Qt有很多好處。 跨平臺支持 Qt支持多種操作系統(tǒng),如
    發(fā)表于 08-14 15:15

    入行嵌入式應(yīng)該怎么準(zhǔn)備?

    想入行嵌入式該怎么準(zhǔn)備。很能理解大家對于嵌入式的關(guān)注,嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域中的重要組成部分,它存在于我們生活的方方面面,各行各業(yè)。智能化時代的到來也讓嵌入式技術(shù)炙手可熱! SO,
    發(fā)表于 08-06 10:34

    Linux嵌入式和單片機(jī)嵌入式的區(qū)別?

    Linux嵌入式與單片機(jī)嵌入式在多個方面存在顯著的區(qū)別,以下是詳細(xì)的比較和歸納: 一、基本概念 1. Linux嵌入式: 定義:將Linux操作系統(tǒng)運(yùn)行在嵌入式設(shè)備上的一種配置。
    發(fā)表于 06-20 09:46

    運(yùn)行在嵌入式系統(tǒng)上的emApps

    在當(dāng)今快節(jié)奏的嵌入式系統(tǒng)世界中,靈活性和適應(yīng)性是嵌入式系統(tǒng)實(shí)現(xiàn)的關(guān)鍵。SEGGER推出了其最新創(chuàng)新:Embedded apps(emApps)應(yīng)用,類似于手機(jī)上的應(yīng)用程序,可以運(yùn)行在嵌入式系統(tǒng)上。
    的頭像 發(fā)表于 06-18 09:53 ?1083次閱讀
    運(yùn)行在<b class='flag-5'>嵌入式</b>系統(tǒng)上的emApps

    嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式

    隨著物聯(lián)網(wǎng)、智能硬件的發(fā)展,嵌入式開發(fā)成為熱門技能之一。以下將為初學(xué)者提供一份詳細(xì)的嵌入式開發(fā)入門指南,涵蓋學(xué)習(xí)路徑、必備工具、推薦資源等內(nèi)容。 1. 嵌入式系統(tǒng)的定義與應(yīng)用嵌入式系統(tǒng)
    發(fā)表于 05-15 09:29
    天长市| 贵南县| 读书| 汝南县| 洪泽县| 西盟| 罗源县| 北宁市| 沁水县| 晋宁县| 清远市| 田阳县| 拉萨市| 昭平县| 三都| 金坛市| 芦山县| 济南市| 富锦市| 周至县| 金山区| 平乡县| 盘山县| 鹤岗市| 郓城县| 潼南县| 南阳市| 潼南县| 阿城市| 金寨县| 赣榆县| 黔江区| 邵武市| 澄城县| 射洪县| 紫云| 邯郸市| 禄丰县| 高尔夫| 牙克石市| 饶河县|