Responsive image
博碩士論文 etd-0705105-153320 詳細資訊
Title page for etd-0705105-153320
論文名稱
Title
嵌入式 LINUX 環境下,二維圖形引擎之實作
Implementation of 2D Graphic Engine over Embedded LINUX
系所名稱
Department
畢業學年期
Year, semester
語文別
Language
學位類別
Degree
頁數
Number of pages
56
研究生
Author
指導教授
Advisor
召集委員
Convenor
口試委員
Advisory Committee
口試日期
Date of Exam
2005-06-30
繳交日期
Date of Submission
2005-07-05
關鍵字
Keywords
嵌入式系統、加速、圖形引擎、訊框緩衝區
Speed Up, Graphic Engine, Linux, Embedded System, Frame Buffer
統計
Statistics
本論文已被瀏覽 5690 次,被下載 33
The thesis/dissertation has been browsed 5690 times, has been downloaded 33 times.
中文摘要
許多作業系統都提供了類似Linux中的frame buffer介面,讓應用程式可以透過直接讀寫一塊和顯示卡暫存器相對應的記憶體區塊,達到直接修改螢幕顯示影像的目的。然而即便有frame buffer,在大區塊的圖形繪製、搬移或大量的繪圖需求下,這樣的圖形處理方案並不足以提供即時的影像處理。
為了彌補純軟體在影像處理效能上的不足,市面上存在許多針對3D遊戲提供3D繪圖加速功能的3D繪圖加速卡,如ATI Radeon X850[1] 、NVIDIA GeForce 6800[2] 等。雖然如數位電視、手機等嵌入式產品不需要如此複雜和強大的3D圖形引擎,但這樣的圖形加速概念還是可以供嵌入式系統當作借鏡。圖形引擎不但能為系統提供「即時」的影像處理效能,更能分擔嵌入式系統內中央處理單元的運算負擔,達到降低成本和提升效能的目的。
在本篇論文中,我們將在V/PB926EJ-S發展板上,實作一二維圖形引擎動態函式庫以整合二維圖形引擎和frame buffer,達到圖形處理加速的目的,實現即時的嵌入式LINUX影像處理能力,並以此經驗提供一套方便、快速、可靠的軟體整合技術。
Abstract
There are many Operation Systems provide the interface likes the frame buffer in Linux. It let Application Programs can read and write the memory block tightly connecting the operating registers of display card directly to get the goal of directly modifying the monitor display. However, although we have the frame buffer, this kind of graphic processing method is not enough to provide a real-time graphic performance under the needed of huge block drawing and moving.
In order to eliminate the drawback of the low graphic performance of using pure software, there are many cards with 3D graphic engine produced for speeding up the performance of 3D games, like ATI Radeon X850[1] , NVIDIA GeForce 6800[2] and so on. Although the embedded products like digital TV or mobile phone are not needed to have a complex and powerful 3D graphic engine, the idea of speeding up drafting can be provided for the embedded system as a reference. The graphic engine can not only provide a real-time performance of drafting, but also share the work of CPU in embedded system, to achieve the goal of improving graphic performance and cost down.
In the paper, we will implement a 2D graphic engine dynamic shared library for combining the 2D graphic engine and frame buffer on the V/PB926EJ-S target board. To achieve the goal of improving graphic performance, come true the real-time graphic processing ability of Embedded LINUX. And providing a convenient, quickly and reliable software technique of combining hardware resource and operation system together based on the experiment.
目次 Table of Contents
第1章 導論 7
1.1 研究動機 7
1.2 研究貢獻 7
1.3 論文架構 8
第2章 研究平台架構 9
2.1 Versatile PB 926EJ-S發展板架構 9
2.2 記憶體 12
2.3 通用非同步收發器(UART) 13
2.4 彩色液晶顯示控制器(CLCDC) 14
2.5 RealView Logic Tile 14
2.6 二維圖形引擎 16
第3章 軟體技術簡介 17
3.1 嵌入式LINUX開發簡介 17
3.1.1 開機載入程式(bootloader) 17
3.1.2 記憶體使用規劃 18
3.1.3 Linux原始碼修正 18
3.1.4 Linux檔案系統建立 18
3.2 Linux記憶體管理 19
3.2.1 使用者虛擬位址(User virtual addresses) 19
3.2.2 真實位址(Physical addresses) 19
3.2.3 匯流排位址(Bus addresses) 19
3.2.4 核心邏輯位址(Kernel logical addresses) 19
3.2.5 核心虛擬位址(Kernel virtual addresses) 19
3.3 Frame Buffer 20
3.3.1 使用者觀點 20
3.3.2 應用程式開發觀點 21
3.4 Mmap系統呼叫 22
3.4.1 Memory map 22
3.4.2 Mmap呼叫範例 23
3.5 /dev/mem 24
3.5.1 建立/dev/mem 24
3.5.2 /dev/mem使用範例 24
3.6 /proc Filesystem 25
第4章 二維圖形引擎加速實作 27
4.1 追蹤frame buffer原始碼並做修正 28
4.1.1 追蹤frame buffer記憶體配置 28
4.1.2 尋找適當的程式碼修改區 29
4.1.3 修正<linux_src>/drivers/video/fbmem.c 29
4.1.4 fbmem.c修正說明 30
4.2 驅動二維圖形引擎 30
4.2.1 撰寫GE_Init()函式 31
4.2.2 GE_Init()函式說明 31
4.2.3 執行GE_Init() 32
4.3 撰寫繪圖函式 32
4.3.1 整理Set_variable_of_GE()函式 33
4.3.2 整理二維圖形引擎之控制暫存器操作函式 33
4.3.3 撰寫GE_rectangle()函式 34
4.4 封裝繪圖函式為動態函式庫 35
4.4.1 動態函式庫和靜態函式庫的比較 36
4.4.2 編譯動態函式庫 36
4.4.3 動態函式庫使用方式 37
4.4.4 裁減函式庫容量 38
第5章 二維圖形引擎驗證 40
5.1 二維圖形引擎動態函式庫驗證 40
5.1.1 驗證方式 40
5.1.2 驗證成果 41
5.2 二維圖形引擎加速效能驗證 42
5.2.1 驗證方式 42
5.2.2 驗證成果 42
5.2.3 二維圖形引擎驗證結論 46
第6章 結論與未來研究方向 48
6.1 結論 48
6.2 未來研究方向 48
Appendix A. 二維圖形引擎控制暫存器規格表 51
Appendix B. 二維圖形引擎加速效能驗證資料 54
參考文獻 References
[1] “RADEON X850 GRAPHICS TECHNOLOGY”, ATI, http://www.ati.com/products/radeonx850/index.html
[2] “NVIDIA G-FORCE 6800 Enthusiast”, Nvidia, http://www.nvidia.com/page/geforce_6800.html
[3] “Versatile Platform Baseboard for ARM926EJ-S User Guide”, ARM, http://www.arm.com/pdfs/DUI0224B_vpb926ejs_ug.pdf
[4] “The draft of Graphic Engine registers”, Himax Technologies, GE_registers_draft_NSYSU_0929.doc
[5] “LILO - The Linux Loader”, http://www.acm.uiuc.edu/workshops/linux_install/lilo.html
[6] “BusyBox: The Swiss Army Knife of Embedded Linux”, http://www.busybox.net/about.html
[7] Michael Barr,”嵌入式系統—使用C/C++ Programming Embedded Systems in C and C++”, O’Reilly, June 1996
[8] Karim Yaghmour, “建構嵌入式LINUX系統 BUILDING EMBEDDED LINUX SYSTEMS”, O’Reilly, April 2004
[9] “Linux Programmer's Manual MEM(4)”, GNU GPL
[10] Geert Uytterhoeven ,“The Frame Buffer Device”, <Linux_src>/Documentation/fb/framebuffer.txt
[11] “Qt Toolkit – Enabling the Linux framebuffer”, http://www.mathematik.uni-ulm.de/help/qt-2.3.1/HOWTO-framebuffer.html
[12] “鳥哥的Linux私房菜 -- 原始碼與 Tarball 套件管理員”, http://linux.vbird.idv.tw/linux_basic/0520source_code_and_tarball.php#library_dyna_sta
[13] John L. Hennessy & David A. Patterson, “Computer Architecture A Quantitative Approach Third Edition”, Morgan Kaufmann, May 2002
[14] “Qt Toolkit – About Qt”, http://www.mathematik.uni-ulm.de/help/qt-2.3.1/aboutqt.html
電子全文 Fulltext
本電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
論文使用權限 Thesis access permission:校內一年後公開,校外永不公開 campus withheld
開放時間 Available:
校內 Campus: 已公開 available
校外 Off-campus:永不公開 not available

您的 IP(校外) 位址是 3.15.226.173
論文開放下載的時間是 校外不公開

Your IP address is 3.15.226.173
This thesis will be available to you on Indicate off-campus access is not available.

紙本論文 Printed copies
紙本論文的公開資訊在102學年度以後相對較為完整。如果需要查詢101學年度以前的紙本論文公開資訊,請聯繫圖資處紙本論文服務櫃台。如有不便之處敬請見諒。
開放時間 available 已公開 available

QR Code