Please use this identifier to cite or link to this item: http://hdl.handle.net/11455/8215
標題: 針對系統晶片設計中快速矽智產整合之基礎驅動程式自動產生器
Automatic baseline driver generator for fast IP integration in SoC designs
作者: 邱俊傑
Chiu, Chun-Chieh
關鍵字: Linux device driver;驅動程式;auto-generation;自動產生;自動合成
出版社: 電機工程學系所
引用: [1] Jonathan Corbet, Alessandro Rubini & Greg Kroah-Hartman, “Linux Device Drivers”, 3rd edition, O'Reilly, Feb. 2005. [2] Daniel P. Bovet, Marco Cesati, “Understanding The Linux Kernel”, 3rd edition, O'Reilly, Nov. 2005. [3] Karim Yaghmour, “Building Embedded Linux Systems”, O'Reilly, Apr. 2003. [4] Micbael Barr, Antbony Massa, “Programming Embedded Systems with C and GNU Development Tools”, 2nd edition, O'Reilly, Oct. 2006. [5] Richard Stones, Neil Matthew, “Beginning Linux Programming”, 3rd edition, Wrox, Jun. 2004. [6] S. Wang, S. Malik, and R. A. Bergamaschi, “Modeling and Integration of Peripheral Devices in Embedded Systems,” Design, Automation and Test in Europe Conference and Exhibition, 2003, pp. 136-141. [7] M. O'Bils, and A. Jantsch, “Device driver and DMA controller synthesis from HW/SW communication protocol specifications”, Design Automation for Embedded Systems, Kluwer Academic Publishers, Vol. 6, No. 2, Apr. 2001, pp. 177-205. [8] K. J. Lin, S. W. Chen, and J. L. Chen, “A Design Framework for Embedded Linux Drivers,” National Computer Symposium, Taiwan, pp. 1663-1668, 2003. [9] K. J. Lin, S. H. Huang, and S. W. Chen, “A Hardware/Software Codesign Approach for Programmable IO Devices”, ACM GLSVLSI, Chicago, Apr. 2005. [10] Q. L. Zhang, M. Y. Zhu, and S. Y. Chen, “Automatic Generation of Device Drivers”, ACM SIGPLAN Notices, pp.60-69, June 2003. [11] T. Katayama, K. Saisho, and A. Fukuda, “Proposal of a Support System for Device Driver Generation,” Software Enqineering Conference, 1999.(APSEC ‘99) Proceedings. Sixth Asia Pacific, pp. 494-497, Dec. 1999. [12] T. Katayama, K. Saisho, and A. Fukuda, “Prototype of the Device Driver Generation System for UNIX-like Operating Systems,” Principles of Software Evolution, 2000. Procedingsl. International Symposium on 1-2 Nov. 2000, pp. 302-310. [13] M. O'Nils, and A. Jantsch, “Operating system sensitive device driver synthesis from implementation independent protocol specification”, DATE, pp. 563-567. 1999. [14] M. O'Nils, J. Oberg, and A. Jantsch, “Grammar Based Modelling and Synthesis of Device Drviers and Bus Interfaces”, Euromicro Conference, pp. 55-58, Aug. 1998 [15] ISO/IEC IS 10918, Digital compression and coding of continuous-tone still images part I: equirements and guidelines, 1993 (JPEG) [16] M. Antonini, M. Barlaud, P. Mathieu, and I. Daubechies, “Image Coding Using Wavelet Transform”, IEEE Trans. Image Processing, 1, 205-220, 1992. [17] DCT in XviD. Summarized by: Andrej Rikovsky [18] Xilinx ChipScope Pro 10.1 Software and Cores User Guide. [19] Socle CDK Connectivity Specification [20] http://linux.vbird.org/ [21] Jungo Ltd, WinDriver Users Guide, URL: http://www.jungo.com [22] Bsquare, WinDK Users Manual, URL: http://www.bsquare.com
摘要: 
目前對於系統晶片設計之發展,系統上通常包含眾多具有不同功能之IP,因此系統整合已成為系統晶片設計中最困難的部分。為了輔助與加快系統晶片設計之IP整合,本論文提出一個驅動程式自動化合成之方法與架構,並以此為根據實作出驅動程式自動產生器。針對系統晶片設計中非標準化IP,產生可於Linux作業系統環境中工作之驅動程式,並且提供字元式與區塊式兩種驅動程式類型。而所產生之驅動程式除了具備基本資料讀寫、以及控制目標裝置之能力外,還支援中斷與直接記憶體存取之功能。
由於驅動程式為應用軟體與硬體裝置之溝通橋樑,因此驅動程式本身之架構可粗略地分為三個部分:作業系統相關之溝通介面(OS dependent specifications),包含各種系統呼叫、核心函式等;硬體裝置相關之設定(HW dependent specifications)包括I/O暫存器設定與位址空間轉換等;以及支援硬體裝置特定功能或行為之韌體部分(User defined firmware)。使用者必須對這三個部分作描述,作為驅動程式自動產生器之輸入資訊。而驅動程式自動合成方法則是以Template-Based之設計方式,建立出程式樣板資料庫,根據使用者所於圖形化介面中所描述之輸入資訊,將適當之樣板組合成符合需求之驅動程式,因此可以快速產生所需之驅動程式,若要對驅動程式做修改時,也只需抽換部分樣板即可。此外,對於軟硬體之溝通方式,規劃了四種軟硬體溝通方式,能夠根據不同IP之特性,產生最合適之溝通方式,以達到提升系統效能之目的。最後,以若干軟硬體共設計之系統驗證驅動程式自動產生器,並且為各系統分別產生不同溝通方式之驅動程式,進而分析各系統使用不同溝通方式時之系統執行效能、以及軟硬體溝通效能。

This paper presents the framework of a baseline driver generator to facilitate the driver development for fast IP integration in SoC designs. The proposed baseline driver generator can handle both character and block type devices and is found useful for the integration of non-standard IPs. The driver generator can generate a baseline driver contains not only basic driver setting, hardware access/control functions and file operations but also interrupt and DMA functions.
Since application programs cannot have direct access to the hardware (IP) in the presence of OS, a driver is employed to serve the purpose. The code of a driver can be roughly divided into 3 sections. The first section is OS dependent and handles tasks such as interfacing with OS system calls and using OS kernel functions. The second section is hardware dependent settings and needs the knowledge of memory map and interface design. The third section is considered as the user defined firmware supporting specific functions needed for the driver operations. The proposed driver generator provides users with a GUI to capture these 3 specifications. Various pre-developed code templates can be instantiated subject to the specifications. The code templates are parameterized and users can characterize a desired driver through the parameter settings via GUI. Some design examples on the driver generation tool and various HW/SW codesign examples are presented to demonstrate the effectiveness of the proposed automation methodology.
URI: http://hdl.handle.net/11455/8215
其他識別: U0005-2008200815205400
Appears in Collections:電機工程學系所

Show full item record
 

Google ScholarTM

Check


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.