跳到主要內容

臺灣博碩士論文加值系統

(3.236.68.118) 您好!臺灣時間:2021/08/04 22:02
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

我願授權國圖
: 
twitterline
研究生:蘇健彰
研究生(外文):Chien-Chang Su
論文名稱:32/16位元微處理機之整合式軟體開發環境
論文名稱(外文):Integrated Software Development Environment for a 32-bit / 16-bit Processor Family
指導教授:黃英哲黃英哲引用關係
指導教授(外文):Ing-Jer Huang
學位類別:碩士
校院名稱:國立中山大學
系所名稱:資訊工程學系研究所
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2007
畢業學年度:95
語文別:中文
論文頁數:126
中文關鍵詞:嵌入式系統軟體開發工具鏈跨平台編譯器
外文關鍵詞:cross-compilertoolchainembedded system
相關次數:
  • 被引用被引用:0
  • 點閱點閱:128
  • 評分評分:
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
我們對於目前的微處理器,常因需要更多客製化的需求,而去修改其硬體架構,但其原有的應用程式卻因此而不相容於新架構,而增加其產品開發的時間。在本論文中,我們探討兩種硬體架構的修改,包括新增指令集與改變其資料路徑大小來處理特殊的應用。針對前者,我們實驗室所發展的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等等,使用模擬器來驗證其正確性。
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.
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
[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
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top