Responsive image
博碩士論文 etd-0210106-162341 詳細資訊
Title page for etd-0210106-162341
論文名稱
Title
Nano-X 之移植及其與OpenGL ES 之整合研究
On the Porting of Nano-X and Its Integration with OpenGL ES
系所名稱
Department
畢業學年期
Year, semester
語文別
Language
學位類別
Degree
頁數
Number of pages
73
研究生
Author
指導教授
Advisor
召集委員
Convenor
口試委員
Advisory Committee
口試日期
Date of Exam
2006-01-13
繳交日期
Date of Submission
2006-02-10
關鍵字
Keywords
視窗系統、嵌入式系統
Nano-X, Microwindows, Window system, Embedded, Linux, OpenGL, GLUT, EGL
統計
Statistics
本論文已被瀏覽 5679 次,被下載 0
The thesis/dissertation has been browsed 5679 times, has been downloaded 0 times.
中文摘要
  嵌入式系統由於先天硬體資源的限制,以及價格性能比的考量,常使用模擬的方式來處理浮點數運算。本論文第一部份將探討不使用浮點數硬體加速之系統如何處理浮點數運算,以及浮點數硬體存在與否對整體效能上的影響,和使用浮點數與定點數之效能評估;同時將探討如何移植定點數版的Nano-X視窗系統到Versitle PB/926EJ-S發展版上。

  由於市場需求及硬體的快速發展,嵌入式系統也逐漸有三維顯示的產品問世。而如欲發展3D繪圖,則需要3D繪圖介面的標準(API),來簡化程式開發。OpenGL~ES (OpenGL for Embedded System)是由Khronos組織所主導,目標是發展出適合於嵌入式系統的3D繪圖精簡API。本論文第二部分將探討EGL之實做,即OpenGL~ES與Nano-X間的介面,以及類似GLUT (OpenGL Utility Toolkits)之函式庫之實做,旨在讓OpenGL程式設計師不需要了解如何處理視窗介面,即可發展在嵌入式系統上視窗介面之OpenGL應用程式,並可達到跨平台的效果。
Abstract
  Embedded systems often use several ways to emulate floating-point computation, due to the limitation of hardware resources and the performance/cost consideration. The first part of this thesis will discuss how systems without hardware support emulate floating point operation, and the performance difference between whether hardware floating-point units exists or not, and finally the performance evaluation between the usage of floating-point and fixed-point. In the mean time, we will also discuss the porting process of Nano-X fixed-point version to the Versatile PB/926EJ-S development board.

  Due to the growing market demand and the big improvement of hardware, there are several 3D-display applications beginning to be presented to the public. In order to develop 3D programs, we need a standard API to reduce our development time. OpenGL~ES is a royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems developed by The Khronos Group. The second part of this thesis will discuss the implementation of EGL---the interface between windowing system and the OpenGL~ES rendering API---and the GLUT (OpenGL Utility Toolkits)-like library, in order to make OpenGL programmers' life easier.
目次 Table of Contents
List of Tables . . . . . . . . . . . . . . . . . .. iv
List of Figures . . . . . . . . . . . . . . . . . .. v
List of Listings . . . . . . . . . . . . . . . . .. vi
Acknowledgments . . . . . . . . . . . . . . . . . .viii
Chapter 1 Introduction . . . . . . . . . . . . . . . 1
1.1 Background and Motivation . . . . . . . . . . . . 1
1.2 Organization of the Thesis. . . . . . . . . . . . 2
Chapter 2 RelatedWork . . . . . . . . . . . . . . . 3
2.1 Why Linux? . . . . . . . . . . . . . . . . . . . 3
2.1.1 The Market . . . . . . . . . . . . . . . . . . 3
2.1.2 Advanced Technology . . . . . . . . . . . . . . 3
2.1.3 GPL and Open Source . . . . . . . . . . . . . . 4
2.2 Introduction to Embedded System . . . . . . . . . 4
2.2.1 Characteristics . . . . . . . . . . . . . . . . 4
2.2.2 Applications . . . . . . . . . . . . . . . . . 4
2.2.3 The Design of Embedded Systems . . . . . . . . 5
2.3 Graphics User Interface on Embedded Linux . . . . 6
2.3.1 Qt/Embedded . . . . . . . . . . . . . . . . . . 6
2.3.2 GTK+ . . . . . . . . . . . . . . . . . . . . . 6
2.3.3 MiniGUI . . . . . . . . . . . . . . . . . . . . 6
2.3.4 Nano-X . . . . . . . . . . . . . . . . . . . . 7
2.4 OpenGL ES . . . . . . . . . . . . . . . . . . . . 8
2.4.1 Introduction . . . . . . . . . . . . . . . . . 8
2.4.2 EGL . . . . . . . . . . . . . . . . . . . . . . 8
2.4.3 GLUT . . . . . . . . . . . . . . . . . . . . . 9
Chapter 3 Floating-Point versus Fixed-Point . . . .. 10
3.1 Introduction . . . . . . . . . . . . . . . . . .10
3.1.1 Floating-Point . . . . . . . . . . . . . . . . 10
3.1.2 Fixed-Point . . . . . . . . . . . . . . . . .. 10
3.2 How OS Handling Floating-Point . . . . . . . . . 11
3.2.1 Hardware Support . . . . . . . . . . . . . . . 11
3.2.2 Software Support . . . . . . . . . . . . . . . 12
Chapter 4 Porting Nano-X . . . . . . . . . . . . .. 14
4.1 Layered Design . . . . . . . . . . . . . . . . . 14
4.1.1 Device Drivers . . . . . . . . . . . . . . . . 14
4.1.2 MicroGUI - Device Independent Graphics Engine. 15
4.1.3 Applications Programmer Interfaces . . . . . . 15
4.2 Compiling Nano-X . . . . . . . . . . . . . . . . 16
4.3 Changing Floating-Point to Fixed-Point Version . 17
Chapter 5 Integrating Nano-X and OpenGL ES . . . . .21
5.1 Overview . . . . . . . . . . . . . . . . . . . . 21
5.2 Implementing EGL . . . . . . . . . . . . . . . . 24
5.2.1 Introduction . . . . . . . . . . . . . . . . . 24
5.2.2 Initialization . . . . . . . . . . . . . . . . 24
5.2.3 Configuration Management . . . . . . . . . . . 24
5.2.4 Rendering Surfaces . . . . . . . . . . . . . . 25
5.2.5 Rendering Contexts . . . . . . . . . . . . . . 25
5.2.6 Posting the Color Buffer . . . . . . . . . . . 26
5.3 Implementing GLUT-Like APIs . . . . . . . . . . .27
5.3.1 Introduction . . . . . . . . . . . . . . . . . 27
5.3.2 Initialization . . . . . . . . . . . . . . . . 28
5.3.3 Window Management . . . . . . . . . . . . . . .30
5.3.4 Overlay Management . . . . . . . . . . . . . . 33
5.3.5 Menu Management . . . . . . . . . . . . . . . .33
5.3.6 Callback Registration . . . . . . . . . . . . .33
5.3.7 Color Index Colormap Management . . . . . . . .35
5.3.8 State Retrieval . . . . . . . . . . . . . . . .35
5.3.9 Beginning Event Processing . . . . . . . . . . 35
5.3.10 Font Rendering . . . . . . . . . . . . . . . .39
5.3.11 Geometric Object Rendering . . . . . . . . . .40
Chapter 6 Experimental Results and Performance Evaluation . . .41
6.1 Development Enviroment. . . . . . . . . . . . . .41
6.1.1 Target Platform . . . . . . . . . . . . . . . .41
6.1.2 Host platform . . . . . . . . . . . . . . . . .44
6.2 Building Toolchains and Preparing the System. . .44
6.2.1 Host Side . . . . . . . . . . . . . . . . . . .44
6.2.2 Target Side . . . . . . . . . . . . . . . . . .46
6.3 Floating-Point Performance Evaluation . . . . . .46
6.3.1 Evaluation Details . . . . . . . . . . . . . . 47
6.3.2 Evaluation Result . . . . . . . . . . . . . . .53
6.4 Integrating Nano-X and OpenGL ES . . . . . . . . 54
6.4.1 Building the system . . . . . . . . . . . . . .54
6.4.2 Experimental Results. . . . . . . . . . . . . .56
Chapter 7 Conclusion and FutureWorks. . . . . . . . .58
7.1 Conclusion. . . . . . . . . . . . . . . . . . . .58
7.2 Future Works. . . . . . . . . . . . . . . . . . .59
參考文獻 References
[1] Rick Rehrbaum, Linux at the Embedded Systems Conference, Linux Journal, July 2001.
[2] Brandon White, Linux 2.6: A Breakthrough for Embedded Systems, Linuxdevices.com,
September 2003.
[3] American Bar Association, An Overview of “Open Source” Software Licenses, http://
www.abanet.org, March 2004.
[4] Wikipedia, Embedded system, http://en.wikipedia.org/wiki/Embedded system, December
2005.
[5] Qt Overview, http://www.trolltech.com.
[6] The GIMP Toolkit, http://www.gtk.org.
[7] MiniGUI, http://www.minigui.com.
[8] The Nano-X Window System, http://www.microwindows.org.
[9] OpenGL ES Overview, http://www.khronos.org/opengles/.
[10] EGL Overview, http://www.khronos.org/egl/.
[11] GLUT - The OpenGL Utility Toolkit, http://www.opengl.org/resources/libraries/glut.html.
[12] Wikipedia, Floating point, http://en.wikipedia.org/wiki/Floating point.
[13] Wikipedia, Fixed-point arithmetic, http://en.wikipedia.org/wiki/Fixed-point arithmetic.
[14] Streaming SIMD Extensions, http://streaming-simd-extensions.foosquare.com/.
[15] Answers.com, 3DNow!, http://www.answers.com/topic/3dnow.
[16] Answers.com, ARM architecture, http://www.answers.com/topic/arm-architecture.
[17] Floating Point Emulation Notes, http://linux-7110.sourceforge.net/howtos/netbook new/
x1052.htm, January 2004.
[18] ANSI/IEEE, New York., IEEE Standard for Binary Floating Point Arithmetic, Std 754-
1985 edition, 1985
[19] Nano-X Architecture, http://embedded.centurysoftware.com/docs/nx/architecture.html.
[20] Jon Leech, OpenGL ES Native Platform Graphics Interface, November 2004.
[21] Mark J. Kilgard, The OpenGL Utility Toolkit (GLUT) Programming Interface, Silicon
Graphics, Inc., November 1996.
[22] Versatile Platform Baseboard for ARM926EJ-S User Guide, ARM Limited., 2003–
2004.
[23] GCC home page, http://gcc.gnu.org/.
[24] ARM Limited., Linux 2.6.6 kernel with VFP support, http://www.arm.com/
linux/VFP images.html.
[25] pgauthier@nihilisme.ca, ARM linux development, http://arm.nihilisme.ca/files/Generic-
ARM-3.4.2.tar.bz2.
[26] ARM Limited., VFP9-S(TM) Vector Floating-point Coprocessor Technical Reference
Manual, 2002–2003.
[27] GNU, time, http://www.gnu.org/software/time/time.html, December 1999.
[28] Woo Neider & Davis, OpenGL Programming Guide, Second Edition, Addison-Wesley,
January 1997.
[29] Elie De Brauwer, An introduction to GLUT, http://mindfuck.de-brauwer.be/
articles/glut/, July 2003.
[30] OpenGL.org, Obtaining the GLUT source code distribution, http://www.opengl.org/
resources/libraries/glut/glut-3.7.tar.gz.
[31] Mark J. Kilgrad, OpenGL Programming for the X Window System, Addison-Wesley,
June 1999.
[32] ARM Limited., Application Note 55, Floating-Point Performance, http://www.arm.com/
pdfs/DAI0055A fp performance.pdf, January 1998.
電子全文 Fulltext
本電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
論文使用權限 Thesis access permission:校內校外均不公開 not available
開放時間 Available:
校內 Campus:永不公開 not available
校外 Off-campus:永不公開 not available

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

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

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

QR Code