Responsive image
博碩士論文 etd-0730107-170735 詳細資訊
Title page for etd-0730107-170735
論文名稱
Title
32/16位元微處理機之整合式軟體開發環境
Integrated Software Development Environment for a 32-bit / 16-bit Processor Family
系所名稱
Department
畢業學年期
Year, semester
語文別
Language
學位類別
Degree
頁數
Number of pages
126
研究生
Author
指導教授
Advisor
召集委員
Convenor
口試委員
Advisory Committee
口試日期
Date of Exam
2005-07-25
繳交日期
Date of Submission
2007-07-30
關鍵字
Keywords
嵌入式系統、軟體開發工具鏈、跨平台編譯器
cross-compiler, toolchain, embedded system
統計
Statistics
本論文已被瀏覽 5676 次,被下載 0
The thesis/dissertation has been browsed 5676 times, has been downloaded 0 times.
中文摘要
我們對於目前的微處理器,常因需要更多客製化的需求,而去修改其硬體架構,但其原有的應用程式卻因此而不相容於新架構,而增加其產品開發的時間。在本論文中,我們探討兩種硬體架構的修改,包括新增指令集與改變其資料路徑大小來處理特殊的應用。針對前者,我們實驗室所發展的32位元的微處理器SYS32-TM,在硬體上新增MME指令集用來處理多媒體運算。後者,我們根據Thumb指令集所研發的16位元微處理器SYS16-TM,硬體架構上其資料路徑由原先的32位元縮小為16位元,我們將展示如何讓原有的應用程式能快速的移植到新修改的硬體架構執行。
在SYS32-TM,我們使用inline assembly的方式,在C原始碼中插入MME指令集,所以在軟體上必需修改組譯器,定義並解析MME指令集編碼,使之能辨識之。在SYS16-TM,軟體方面所產生的問題有sign extension及位址偏移問題,因此我們必須修改編譯器後端的machine description,修正處理sign extenstion以及位址偏移的指令行為模式,並修改其函式庫;為了建立SYS16-TM的軟體開發環境,我們必須設定C Run time environment ,只有單純的Thumb模式,不再支援ARM與Thumb模式切換;並撰寫正確的linker script,設定程式起點是從位址0X0000開始程式的執行,以解決ARM 預設程式起始點是從位址0X8000的地方開始。最後,SYS32-TM方面,我們利用組譯的方式,得知MME指令集能正確的插入在原有的程式中;SYS16-TM我們執行測試程式包括各式排序、河內塔及fibonacci number等等,使用模擬器來驗證其正確性。
Abstract
To the general purpose microprocessors, we often need to change microprocessors’ hardware architecture because of customized purpose. But already existing application program is incompatible to the new hardware architecture, and increase the product’s development period. In this thesis, we discuss the modification of two kinds of hardware architecture, include new instruction set extension and change the size of datapath to deal with specific application. To the former, our laboratory develop a 32-bit microprocessor SYS32-TM, increase MME instruction set to deal with multimedia application. The latter, based on Thumb instruction set , we develop 16-bit microprocessor SYS16-TM, we modify its’ datapath from 32-bit to 16-bit, we will show how to let already existing application program can execute on the new hardware architecture.
In SYS32-TM, we use the way of inline assembly to embedded MME instruction set in C source code, we have to modify the assembler, define and parse the MME instruction set, so the assembler can recognize it. In SYS16-TM, we have sign extension and address offset problems, we have to modify the compiler backend’s machine description to solve the sign extension and address offset instruction set behavior, and modify the library. To build SYS16-TM software environment, we have to set C Run Time Environment in Thumb mode, not support exchange between ARM mode and Thumb mode, and write the correct linker script, to set the program start address in 0x0000, to solve ARM’s initial program start address in 0x8000. As a result, In SYS32-TM, we use assembler to identify the MME instruction set can embedded in existing C source code. In SYS16-TM, we execute the testbench include sorts, Hanoi, Fibonacci number etc, and use simulator to verify its’ correctness.
目次 Table of Contents
Chapter 1. Introduction 10
1. 1 背景 10
1. 2 動機 11
1. 3 研究方法 11
1. 4 主要貢獻 14
1. 5 論文架構 14
Chapter 2. Related Works 15
2. 1 SYS32-TM 15
2. 2 Instruction extension—MME( MultiMedia Extension ) Module 16
2. 3 SYS16-TM 19
2. 4 Necessary Compilation Supports for SYS32-TM and SYS16-TM 25
2. 5 GNU Toolchain for ARM Target 27
Chapter 3. Compilation Support for SYS32-TM 30
3. 1 新增指令集編碼 30
3. 2 GCC Inline Assembly 35
3. 3 重新定義指令集編碼 38
3. 4 Rebuild of Binutils 40
3. 5 SYS32-TM軟體操作流程 40
Chapter 4. Compilation Support for SYS16-TM 42
4. 1 Compiler Comparison Between ARM Development Suite and GNU Toolchain for ARM 42
4. 1. 1 ARM Development Suite (ADS) 42
4. 1. 2 GNU Toolchain for ARM 43
4. 2 Support Data types for SYS16-TM 45
4. 3 SYS16-TM Hardware Architecture Restriction 50
4. 4 Toolchain Modifications 54
4. 4. 1 解決data type 為character及short integer的問題 54
4. 4. 2 解決data type long long integer address offset的問題 57
4. 4. 3 支援32位元的函式庫 65
4. 4. 4 解決模式切換及設定環境的初始值 67
4. 4. 5 使用Linker解決記憶體配置的問題 70
4. 5 SYS16-TM軟體操作流程 72
4. 6 Rebuilding of SYS16-TM Compiler 74
Chapter 5. Verification Environment and Experiment Result 78
5. 1 SYS16-TM Instruction Set Simulator 78
5. 2 整合式軟體開發環境之範圍與限制 81
5. 3 Experiment Result 82
Chapter 6. 結語與未來展望 84
參考文獻 85
Appendix A The Organization of GNU Toolchain 87
A.1 The GNU Compiler System 87
A.2 GCC Features and Architecture 89
A.3 The Porting Mechanisms 94
A.4 Build GNU Cross-Platform Development Toolchain 101
Appendix B Build-crossgcc.sh 106
Appendix C MME Instruction Set for SYS32-TM 110
Appendix D SYS16-TM Insturction Set Simulator 112
Appendix E Other Compiler Porting Works 122
E.1 Porting of the GNU C Compiler for IAM2000S Architecture 122
E.2 Porting of the GNU C Compiler for CRIS Architecture 123
參考文獻 References
[1] ARM Ltd. http://www.arm.com
[2] Ing-Jer Huang, Wen-Kai Huang, Rui-Ting Gu and Chung-Fu Kao, “A Cost Effective Multimedia Extension to ARM7 Microprocessors,” in Proceedings of the IEEE International Symposium on Circuits and Systems (ISCAS), 2002, pp. 304-307.
[3] 鐘國煌 “ARM7微處理器之衍生架構”,國立中山大學,2001年七月
[4] 王淳佑 “適用於低功率低成本資訊家電之16-bit微處理器”, 國立中山大學2002年十一月
[5] Gcc homepage http://gcc.gnu.org/
[6] binutils http://sources.redhat.com/binutils
[7] uClibc http://uclibc.org/
[8] 丁邦安, 嵌入式微處理器核芯應用系列(二)ARM核芯簡介, IC Design, pp. 38-56, February 2001
[9] Intruduction to Digital Signal Processing http://en.wikipedia.org/wiki/Digital_signal_processing
[10] RealView Development Suite http://www.arm.com/products/DevTools/RealViewDevSuite.html
[11] Newlib http://sourceware.org/newlib/
[12] ELF Format http://www.study-area.org/cyril/opentools/opentools/x909.html
[13] 楊書銘 “設計與實作IAM2000S C編譯器”,私立逢甲大學,2001年六月
[14] CGEN homepage http://sourceware.org/cgen/
[15] redhat homepage http://www.redhat.com
[16] RTL (Register Transfer Language) http://gcc.gnu.org/onlinedocs/gccint/RTL.html
[17] Porting GCC for Dunces by Hans-Peter Nilsson http://gcc.gnu.org/readings.html
[18] Using and Porting the GNU Compiler Collection (GCC) http://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc.html
[19] La’szlo Vid’acs “Introduction to ARM machine description for GCC”
[20] ABI ( Application Binary Interface ) http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/gcc/compatibility.html
[21] Robert Schiele “Building and Using a Cross Development Tool Chain”
[22] GNU Compiler Collecton Internals http://gcc.gnu.org/onlinedocs/gccint/
[23] ARM7TDMI data sheet http://www.arm.com/products/CPUs/ARM7TDMI.html
[24] Karim Yaghmour “Building Embedded Linux System建構嵌入式LINUX系統” ,O’REILLY出版.
[25] A. Peleg and U. Weiser, “MMX Technology Extension to the Intel Architecture,” IEEE Micro, 1996, pp. 42-50 .
[26] GCC Inline Assembly HOWTO http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html#s3
[27] Using ld , The GNU Linker http://www.gnu.org/software/binutils/manual/ld-2.9.1/ld.html
[28] Fu-Ching Yang, Ing-Jer Huang, “An Embedded Low Power / Cost 16-Bit Data / Instruction Microprocessor Compatible with ARM7 Software Tools” in the Asia and South Pacific Design Automation Conference (ASP-DAC), Jan. 23-26, 2007, pp.902-907
[29] ARM Developer Suite(ADS) http://www.arm.com/products/DevTools/ADS.html
電子全文 Fulltext
本電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
論文使用權限 Thesis access permission:校內校外均不公開 not available
開放時間 Available:
校內 Campus:永不公開 not available
校外 Off-campus:永不公開 not available

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

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

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

QR Code