新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ARM&Linux圖形用戶界面開發(fā)平臺的設計

基于ARM&Linux圖形用戶界面開發(fā)平臺的設計

作者: 時間:2012-04-20 來源:網(wǎng)絡 收藏

摘要:本文首先介紹了自行研制的AT91RM9200的ARM板ARM221及顯示模塊的硬件電路;其次描述了嵌入式Linux系統(tǒng)在目標板ARM221上移植過程及界面相關硬件驅動程序的開發(fā);最后移植了開源嵌入式界面系統(tǒng)MiniGUI到目標板ARM221。

本文引用地址:http://2s4d.com/article/149195.htm

1引言嵌入式產(chǎn)品如PDA、機頂盒、WAP手機等迅速地普及,給廣大的非專業(yè)用戶帶來了極大方便。同時,這些產(chǎn)品都需要有高性能、穩(wěn)定可靠的GUI()來提供支持。

因此,在嵌入式產(chǎn)品的開發(fā)過程中,關鍵的一步就是嵌入式。本文介紹了一種ARM、Linux及MiniGUI的系統(tǒng)過程。

2硬件平臺設計及開發(fā)環(huán)境的搭建2。1硬件平臺設計硬件平臺ARM221為自行研發(fā)的AT91RM9200處理器芯片的ARM板,其核心板結構圖如圖1所示。AT91RM9200處理器是一款基于ARM920T內核的高性價比、低功耗、32位的ARM芯片,時鐘頻率為180Mhz,運算速度可達到200MIPS。AT91RM9200具有存儲器管理單元(MMU)、16KB的SRAM和128KB的ROM以及外部總線接口(EBI),支持SDRAM、靜態(tài)存儲器、BurstFlash、CompactFlash、SmartMedia以及NANDFlash,還集成了USB控制器、以太網(wǎng)控制器、RTC、SPI、I2C等豐富的外圍設備。AT91RM9200處理器內部沒有集成LCD控制器,因而需要配備專用的顯示控制器,才能實現(xiàn)LCD顯示。

系統(tǒng)選用了一款應用比較廣泛的LCD控制器S1D13506,它是EPSON大規(guī)模顯示控制器家族中較新的一款。它的輸出可以驅動VGA顯示或者最大為800×600的點陣LCD顯示屏,可以靈活地對各種不同的顯示方式進行設置,功能非常強大,可以和目前市場上流行的多種CPU總線兼容。另外顯示器選用了一款東華的320×240-16bppTFT-LCD。S1D13506的PC卡總線接口可以很方便地與AT91RM920相連,其與總線接口信號相關的信號為:數(shù)據(jù)總線DB[15:0]、地址總線AB[21:1]、片選信號CS、高位讀寫信號WE1、寫使能信號WE0、輸出讀使能命令信號RD、選擇讀寫顯存還是讀寫S1D13506寄存器信號M/R。

AT91RM9200的EBI總線接口用以確保多個外設與基于ARM器件的內置控制存儲器之間實現(xiàn)正確數(shù)據(jù)傳輸。靜態(tài)存儲器、SDRAM及BurstFlash控制器均可作為EBI上的外部存儲控制器。EBI擁有8個片選信號(NCS[7:0]),可處理多達8個外設的數(shù)據(jù)傳輸;數(shù)據(jù)通過8位或者16位數(shù)據(jù)總線進行傳輸;地址總線高達26位。在16位總線寬度下,EBI與顯示控制器相關的總線接口信號有:數(shù)據(jù)總線DB[15:0]、地址總線AB[21:1]、片選信號NCS2(對應的地址為0x30000000)、使能高字節(jié)讀與寫操作信號NWR1、使能字節(jié)或半字節(jié)讀/寫信號NRD/NWR0及復位信號NRST。由上述接口信號的定義分析得出,S1D13506與AT91RM9200的總線連接圖如上圖2所示。

2。2交叉編譯環(huán)境的搭建移植Linux前,需要在宿主機上建立ARM-Linux的交叉編譯環(huán)境,社區(qū)的開發(fā)者和一些芯片廠商已經(jīng)編譯出了常用體系結構的工具鏈,安裝簡單,使用這些工具鏈,可以大大減少工作量。針對移植的Linux內核版本2。4。26,選用cross-2。95。3。tar。bz2工具鏈。另外,MiniGUI的交叉編譯,還需要一些字體、圖形等庫文件的支持,這些庫文件包括:zlib-1。2。3。tar。gz(該庫是后面幾個庫編譯的基礎)、libpng-1。0。10rc1。tar。gz(png圖形)、jpegsrc。v6b。tar。gz(jpeg圖形)、freetype-1。3。1。tar。gz(TrueType字體)等,在進行MiniGUI交叉編譯之前,需要把這些庫安裝到交叉編譯器中去。安裝過程比較簡單,可查找相關資料。

3嵌入式Linux系統(tǒng)移植及相關驅動程序開發(fā)3。1嵌入式Linux系統(tǒng)移植移植嵌入式Linux系統(tǒng)是實現(xiàn)嵌入式系統(tǒng)圖形用戶界面的系統(tǒng)軟件核心。嵌入式Linux系統(tǒng)包括引導程序(Bootloader)、內核(kernel)和根文件系統(tǒng)三個部分。嵌入式Linux移植到特定的硬件平臺上,一般需要以下五個步驟:①前期準備包括從上下載嵌入式Linux的源碼包、搭建交叉編譯開發(fā)環(huán)境、配置主機的開發(fā)環(huán)境等;②配置Bootloader,并將其燒寫到目標平臺的Flash上,使其能正常的啟動內核;③配置和編譯Linux內核,首先要對源碼進行一定的修改,并將其移植到目標平臺上,然后再根據(jù)自己的硬件資源進行裁減,使內核達到最優(yōu);④制作RAMDISK來掛接Linux的根文件系統(tǒng),并在RAMDISK上添加自己的應用程序;⑤部署Linux系統(tǒng)使目標板脫離交叉開發(fā)環(huán)境,直接在目標機上本地啟動運行。由于篇幅所限,關于Linux的具體移植過程將不做詳細介紹。

3。2相關設備驅動的開發(fā)設備驅動在Linux內核中扮演著特殊的角色。它們是一個個獨立的“黑盒子”,使某個特定硬件響應一個定義良好的內部編程接口,這些接口完全隱藏了設備的工作細節(jié)。用戶的操作通過一組標準化的調用執(zhí)行,而這些調用獨立于特定的驅動程序。Linux系統(tǒng)的設備分為字符、塊和網(wǎng)絡設備三種。字符設備是指存取時沒有緩存的設備。塊設備的讀寫都有緩存來支持,并且塊設備必須能夠隨機存取。網(wǎng)絡設備在Linux里做專門的處理。

3。2。1LCD控制器S1D13506驅動程序的開發(fā)①幀緩沖區(qū)驅動程序接口LCD控制器的功能就是產(chǎn)生驅動信號,進而驅動LCD。用戶只需要讀寫一系列寄存器,就可以配置和顯示驅動,在配置LCD控制器中最重要的一步是幀緩沖區(qū)的指定。幀緩沖區(qū)為圖像硬件設備提供了一種抽象化處理,它代表了一些視頻硬件設備,允許應用軟件通過定義明確的界面來訪問圖像硬件設備。用戶程序只要與幀緩沖區(qū)驅動程序抽象出來的接口打交道,就可以把要顯示的內容從緩沖區(qū)中讀出,從而顯示到屏幕上。

在Framebuffer(幀緩沖)驅動程序里最核心的結構體是structfb_info,它記錄了當前Framebuffer硬件設備的狀態(tài),其定義在Linux的include/linux/fb。h中,其中主要的結構體有:(1)structfb_fix_screeninfo:定義了顯示設備自身的屬性,如屏幕緩沖區(qū)的物理地址和長度等。(2)structfb_var_screeninfo:記錄了楨緩沖區(qū)設備和指定顯示模式的可修改信息,主要包括屏幕的分辨率、顏色數(shù)和一些時序變量。實際的編程中,通過賦值來設置這兩個結構體的相關參數(shù)。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉