基於S3C2440的MiniGUI移植

2021-01-12 電子產品世界

摘要:隨著嵌入式系統的發展,嵌入式圖形用戶界面需求越來越明顯,MiniGUI是目前比較成熟的嵌入式Linux系統的圖形用戶界面。為了滿足嵌入式圖形用戶界面的需求,將MiniGUI移植到基於S3C2440的處理器目標板。首先說明了如何建立交叉環境,接著討論MiniGUI 1.6.10庫和資源的移植,最後閘述運行環境的配置。實現了對S3C2440開發板的MiniGUI移植,完成嵌入式Linux圖形用戶界面的構建,並為其他嵌入式設備的移植提供借鑑。
關鍵詞:嵌入式系統;MiniGUI;S3C2440;移植

隨著嵌入式系統的迅速發展,圖形用戶界面(Graphic User Interface,GUI)需求越來越明顯。MiniGUI是面向實時嵌入式系統的輕量級圖形用戶界面支持系統,以輕型、佔用資源少、高性能、可配置等特點廣泛應用於通信、醫療、工控、電子、機頂盒、多媒體等領域。本文正是針對這種需求,介紹如何在S3C240上移植MiniGUI的全過程。

1 圖形用戶界面MiniGUI
MiniGUI是由原清華大學教師魏永明主持開發的輕量級圖形系統,遵循GPL公約。所支持的作業系統已不僅僅限於Linux,它還可以在μCli nux,μC/OS-Ⅱ,eCos和VxWorks等系統上運行。已驗證的硬體平臺包括Intelx86,ARM(ARM7/AMR9/StrongARM/xScale),Power-PC,MIP S,M68K(DragonBall/ColdFire)等。
1.1 MiniGUI與嵌入式系統的關係
MiniGUI具有良好的軟體架構,通過抽象層將MiniGUI上層和底層作業系統隔離開來。如圖1所示,基於MiniGUI的應用程式一般通過ANSIC庫以及MiniGUI自身提供的API來實現自己的功能;MiniGUI中的「可移植層」可將特定作業系統及底層硬體的細節隱藏起來,而上層應用程式則無需關係底層的硬體平臺輸出和輸入設備。

本文引用地址:http://www.eepw.com.cn/article/148755.htm


1.2 MiniGUI體系結構
從結構上看,MiniGUI是分層設計的,層次結構如圖2所示。在底層,GAL和IAL為MiniGUI提供了底層的Linux控制臺或者X Window上的圖形接口以及輸入接口。中間層是MiniGUI的核心層,其中包括了窗口系統必不可少的各個模塊。最頂層的API向應用設計提供編程接口。



2 S3C2440開發平臺簡介
本文使用的目標平臺是三星公司推出的高度集成的S3C2440(ARM920T core with MMC),最高主頻可達532 MHz微處理器,提供64MB SDRA M,64 MBNAND FLASH以及2 MB NOR FLASH的存儲設備,另外包括IDE和PCMICA接口的豐富的外圍電路和多功能的擴展接口。S3C2440採用高性能ARM9微處理器以其優化的片上性能,在視頻會議、樓宇的對講系統、網絡監控、GPS定位/導航儀、醫療電子設備、多媒體終端產品等應用領域有廣泛應用。

3 MiniGUI的移植
宿主主機系統為redhat Linux 9.0,要求完全安裝,移植步驟如下:
3.1 建立交叉編譯環境
在移植之前首先建立好交叉編譯環境,簡單地說是指在一個平臺上可以生成能在另一個平臺上運行的代碼,編譯工具為arm-linux-gcc-3.3.2。
#tar-xvjf rm-linux-gcc-3.3.2
默認的安裝路徑是/usr/local,為了避免每次設置PATH,在.bash_profile文件中增加PATH=/usr/local/arm/3.4.1bin:MYMPA TH,並運行以下命令:
#source.bash_profile
3.2 原始碼準備
從http://www.minigui.org/res.shtml下載原始碼包如下:
(1)libminigui-1.6.10.tar.gz:MiniGUI函數庫原始碼。
MiniGUI由3個函數庫的組成,它們分別是libminigui,libmgext和libvcongui。libminigui是提供窗口管理和圖形接口的核心函數庫,也提供了大量的標準控制項;libmgext是libminigui的一個擴展庫,提供了一些高級控制項及「文件打開」、「顏色選擇」對話框等;libvcon gui則為Linux作業系統提供了一個應用程式可用的虛擬控制臺窗口,從而可以方便地在MiniGUI環境中運行字符界面的應用程式,libmgext和libvcongui庫已經包含在這個原始碼包中。
(2)minigui-res-1.6.10.tar.gz:MiniGUI所使用的資源,包括基本字體、圖標、位圖和滑鼠光標。
(3)mg-smaples-1.6.10.tar.gz:配套示例程序。


相關焦點

  • linux內核移植-移植2.6.35.4內核到s3c2440
    新建一個工作目錄s3c2440,將內核源碼包拷貝至工作目錄下,再解壓。2、移植yaffs2驅動下載最新的驅動點擊下載 解壓在工作目錄s3c2440下進入yaffs2: cd yaffs2給內核打補丁: .
  • 移植ucGUI到s3c2440
    本文引用地址:http://www.eepw.com.cn/article/201611/317290.htm1、在http://www.ucgui.com/zuoping.asp下載uc/GUI 3.24版源碼2、參考《基於MDK+jlink平臺s3c2440裸機程序》建立工程S3C2440-ucGUI
  • Uboot在S3C2440上的移植詳解(一)
    #if defined(CONFIG_S3C2400)|| defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440)/* turn off the watchdog */# if defined(CONFIG_S3C2400)# define pWTCON 0x15300000# define INTMSK
  • Uboot在S3C2440上的移植詳解(四)
    一、移植環境二、移植步驟在這一篇中,我們首先讓開發板對CS8900或者DM9000X網卡的支持,然後再分析實現u-boot怎樣來引導Linux內核啟動。因為測試u-boot引導內核我們要用到網絡下載功能。
  • uboot在2440上的移植
    因此不可能有通用的Bootloard,開發時應根據具體的配置進行移植。 為什麼我們要用U-BOOT?顯然可以將作業系統直接燒入flash中執行,但從軟體的升級和程序修補來說則是不可少的。加上TX2440_config: unconfig @$(MKCONFIG) $(@:_config=) arm arm920t TX2440 NULL s3c24x0各項的意思如下: arm: CPU的架構(ARCH)arm920t: CPU的類型(CPU),其對應於cpu/arm920t子目錄。
  • 基於S3C2440的嵌入式Linux根文件系統構建
    3 busybox的編譯和安裝  3.1 開發環境  基於S3C2440 ARM920T的硬體平臺,該系統的硬體平臺上主要使用三星S3C2440,外圍還包括64 M SDRAM和64 M NAND Flash,2 M NOR Flash,系統採用宿主機加目標板的模式,宿主機是PC機,其作業系統是RedHat linux,目標板是基於S3C2440微控制器的開發板
  • 以s3c2440為例的arm晶片的啟動過程
    打開APP 以s3c2440為例的arm晶片的啟動過程 TOMORROW 星辰 發表於 2020-12-02 14:13:44
  • S3C2440驅動篇—看門狗驅動分析
    Linux-2.6.32.2內核自帶S3C2440看門狗驅動,只需要配置一下就可以使用。驅動原始碼位於drivers/watchdog/s3c2410_wdt.c,由於驅動使用了平臺設備,有關平臺設備學習參考上一篇文章。
  • 一款基於S3C2440A的銀行評價器的設計
    摘要:提出了一種以S3C2440A為核心處理器的銀行評價器的設計方案,並結合XILINX公司的XL95144XL型CPLD,輔助S3C2440A,實現該銀行評價器的各部分功能以及系統信號之間的相互協調。
  • ARM-Linux驅動移植--RTC(實時時鐘)移植
    .0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000
  • minigui專題及常見問題 - CSDN
    www.jianshu.com/p/3fe41b6d0c92自定義小鍵盤對MINIGUI1.6.2的支持http://blog.chinaunix.net/uid-20725756-id-767118.htmlGAL:http://bbs.ebaina.com/thread-1817-1-1.html[hi3531/hi3535/hi3536] 基於
  • 移植u-boot 1.1.6到TQ2440開發板-第二階段
    經過了第一階段的修改,目前能夠編譯出uboot.bin文件,但是這個文件還不能支持TQ2440,因為我們是在smdk2410上移植,代碼還是支持smdk2410,因此要開始第二階段的修改本文引用地址:http://www.eepw.com.cn/article
  • KEIL4 工程到 KEIL5 程序的移植方法
    關鍵字:KEIL4  工程  KEIL5  程序  移植方法 編輯:什麼魚 引用地址:http://news.eeworld.com.cn
  • 嵌入式Linux之我行——LED驅動在2440上的實例開發
    2.#gedit arch/arm/plat-s3c24xx/common-smdk.c //注釋掉以下內容staticstructplatform_device __initdata*smdk_devs[]
  • 基於S3C2440的多道脈衝幅度分析器硬體設計
    文中介紹了一種以高性能32位嵌入式處理器S3C2440處理為核心的多道脈衝幅度分析器的硬體設計方案,電路主要包括甄別電路、峰值擴展電路、控制電路和A/D轉換電路。甄別電路通過設定閾值去除低能噪聲信號,峰值檢測電路進行輸入信號的峰位檢測和峰值擴展,A/D轉換電路實現輸入信號的模擬-數字量的轉換。控制電精確控制了整個電路的工作時序。
  • 基於Linux平臺上S3C2440的物流配送系統設計
    基於S3C2440的移動終端硬體設計如圖3所示。S3C2440模塊(包括各種硬體接口及嵌入式Linux軟體等)負責對GPS信號的接收處理、視圖顯示及對數據的處理。從GPS模塊中獲取定位數據,從RFID模塊與CellID模塊獲得更詳細的定位信息作為補充,然後將位置信息通過GPRS發送給控制中心。實現終端和控制中心的信息上傳和下傳功能。
  • S3C2440 GPIO控制
    /****************************************************************NAME: u2440mon.cDESC: u2440mon entry point,menu,download
  • 控制IO埠 s3c2410_gpio_setpin()的使用
    本文基於FL2440 ARM開發板Linux內核版本 2.6.28.7本文引用地址:http://www.eepw.com.cn/article/201611/318858.htmarm-linux-gcc
  • 基於Linux和MiniGUI的心電監護儀設計
    心電監護系統為心臟病人診斷和治療提供了一個有效的手段,對心臟疾病的防治和診斷具有重大的意義,本介紹一種基於Linux 和MiniGUI 的心電監護系統,能夠滿足患者隨時隨地對心電進行方便快捷的監測,及時地發現異常情況並採取有效的措施,從而更好地保護人們的身體健康。