信息技術的發(fā)展,數字化產品的普及,導致了對嵌入式開發(fā)的巨大需求。以Linux為宿主機系統,搭配一個交叉編譯環(huán)境,為嵌入式設備生成可執(zhí)行程序己成為現在日益流行的編譯嵌入式軟件的解決方案。而開放源代碼的GNUT具鏈是一套開源的開發(fā)環(huán)境,是嵌入式軟件開發(fā)中理想的交叉編譯器。但現有GNUI具鏈支持的平臺并不能滿足層出不窮的嵌入式產品的開發(fā)需要,仍有許多平臺得不到支持,例如我們進行的minix向ARM-MINIX平臺的移植。 本文以在linux環(huán)境下構建MINIX嵌入式系統的交叉編譯工具鏈為背景,首先介紹了交叉編譯系統的基本組成和結構,以及利用GCC構建交叉編譯環(huán)境的優(yōu)越性。然后對目標平臺作了介紹。分析了GCC編譯器,說明了GCC的設計思想,系統結構,介紹了GNU Binutils的功能,使用方法;接著分析了GNU工具鏈中的GAS和GLD的實現機制及源代碼結構,由于BFD是GNUBinutils的基礎,GAS和GLD都是使用BFD庫來操作目標文件,因此在這一部分本文對BFD庫的工作機制,數據結構也作了重點分析。緊接著說明了GCC交叉編譯系統的移植思路和方法,實現難點,以及一些相關技術細節(jié),這涉及到了若干重要的C源文件,makeFILE,配置文件的修改,重點給出了BFD庫,GAS和GLD的分析及其重定向(通常GCC生成的目標程序是針對GNU/Linux系統的)的實現;然后本文給出了在GNU/Linux宿主機上構建針對ARM-MINIX的參數設置及過程:最后對本文所做的工作進行了總結。
上傳時間: 2013-05-31
上傳用戶:wangzhen1990
嵌入式系統近年來隨著其信息化、智能化、網絡化的發(fā)展,被廣泛應用于信息家電、移動設備、網絡設備和工控仿真的領域,成為繼IT網絡技術之后,又一個信息產業(yè)的主流。本設計使用的是ARM9嵌入式開發(fā)板。ARM(AdvancedRISCMachines)公司的32位RISC處理器有著高速度、低功耗、低成本、功能強、特有16/32位雙指令集等諸多優(yōu)異的性能。 隨著生產業(yè)快速發(fā)展,工廠企業(yè)車間的不斷增加,對廠房的管理和設備的保護越來越受到重視。本論文主要闡述了監(jiān)控系統中無線終端的設計與研究,其中涉及到嵌入式網絡瀏覽器在工廠監(jiān)控設備中的應用,本監(jiān)控系統的采集設備如攝像頭、儀表等將視頻、圖像、溫度等數據通過下位機上傳至控制中心,控制中心將這些數據存儲于網頁中,用戶使用手持終端,以無線上網的方式,通過嵌入式瀏覽器登陸網頁,實現遠程監(jiān)控,達到實時監(jiān)控的目的。 本論文第一章綜合敘述嵌入式系統的基本概念。第二章闡述基于S3C2410X的嵌入式系統開發(fā)平臺的基本架構及各個組成部分。第三章介紹了監(jiān)控系統無線終端的開發(fā)平臺的設計。第四章主要闡述了LCD觸摸屏校正程序的設計。第五章講述了嵌入式瀏覽器的研究,makeFILE的編寫與電機控制模塊的設計。
上傳時間: 2013-04-24
上傳用戶:Miyuki
第一章 概述 1.1 AVR 單片機GCC 開發(fā)概述 1.2 一個簡單的例子 1.3 用makeFILE 管理項目 1.4 開發(fā)環(huán)境的配置 1.5 實驗板CA-M8 第二章 存儲器操作編程 2.1 AVR 單片機存儲器組織結構 2.2 I/O 寄存器操作 2.3 SRAM 內變量的使用 2.4 在程序中訪問FLASH 程序存儲器 2.5 EEPROM 數據存儲器操作 2.6 avr-gcc 段結構與再定位 2.7 外部RAM 存儲器操作 2.8 堆應用 第三章 GCC C 編譯器的使用 3.1 編譯基礎 3.2 生成靜態(tài)連接庫 第四章 AVR 功能模塊應用實驗 4.1 中斷服務程序 4.2 定時器/計數器應用 4.3 看門狗應用 4.4 UART 應用 4.5 PWM 功能編程 4.6 模擬比較器 4.7 A/D 轉換模塊編程 4.8 數碼管顯示程序設計 4.9 鍵盤程序設計 4.10 蜂鳴器控制 第五章 使用C 語言標準I/O 流調試程序 5.1 avr-libc 標準I/O 流描述 5.2 利用標準I/0 流調試程序 5.3 最小化的格式化的打印函數 第六章 CA-M8 上實現AT89S52 編程器的實現 6.1 編程原理 6.2 LuckyProg2004 概述 6.3 AT989S52 isp 功能簡介 6.4 下位機程序設計 第七章 硬件TWI 端口編程 7.1 TWI 模塊概述 7.2 主控模式操作實時時鐘DS1307 7.3 兩個Mega8 間的TWI 通信 第八章 BootLoader 功能應用 8.1 BootLoader 功能介紹 8.2 avr-libc 對BootLoader 的支持 8.3 BootLoader 應用實例 8.4 基于LuckyProg2004 的BootLoader 程序 第九章 匯編語言支持 9.1 C 代碼中內聯匯編程序 9.2 獨立的匯編語言支持 9.3 C 與匯編混合編程 第十章 C++語言支持
上傳時間: 2013-08-01
上傳用戶:飛翔的胸毛
·H.264 RTSP 串流 (live 555) 視窗版本 (THE makeFILE had modified for VC 2008 BUILD)
上傳時間: 2013-04-24
上傳用戶:asddsd
·詳細說明:已經驗證過的ITU G.729B源碼 1.使用定點運算, 純c實現 2.已經附帶了VC6的項目文件(原始的ITU源碼只有makeFILE,沒有VC項目文件), 方便初學者入門使用 3.用于測試G.729編碼和解碼 4.主要應用于VoIP項目 文件列表: ITU-T G.729 Source code ...................
上傳時間: 2013-08-01
上傳用戶:matlab
at91rm9200啟動過程教程 系統上電,檢測BMS,選擇系統的啟動方式,如果BMS為高電平,則系統從片內ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執(zhí)行這個BOOTLOAER(準確的說應該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設置PLLB產生48M時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應模式下的堆棧設置; 3、檢測主時鐘源(Main oscillator); 4、中斷控制器(AIC)的設置; 5、C 變量的初始化; 6、跳到主函數。 完成以上步驟后,我們可以認為BOOT過程結束,接下來的就是LOADER的過程,或者也可以認為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設備的開始地址處連續(xù)的存放的32個字節(jié),也就是8條指令必須是跳轉指令或者裝載PC的指令,其實這樣規(guī)定就是把這8條指令當作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當BOOT程序完成了把合法的映像搬到SRAM的任務以后,接下來就進行存儲器的REMAP,經過REMAP之后,SRAM從映設前的0X200000地址處被映設到了0X0地址并且程序從0X0處開始執(zhí)行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準備從外部載入映像。對DEBUG口的初始化包括設置參數115200 8 N 1以及運行XMODEM協議。對USB DEVICE進行初始化以及運行DFU協議。現在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設然后執(zhí)行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內容和ROM的BOOT差不多,不同的硬件設計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設計的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據自己的應用配置。總的說來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務也不錯,不但提供了片內啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結構與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設的驅動,是一個功能強大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網站下載。 我們知道,當9200系統上電后,如果bms為高電平,則系統從片內rom啟動,這時rom中固化的boot程序初始化了debug口并向其發(fā)送'c',這時我們打開超級終端會看到ccccc...。這說明系統已經啟動,同時xmodem協議已經啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協議,為下載和啟動uboot做準備。當下載了loader.bin后,超級終端會繼續(xù)打印:ccccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調到此處開始執(zhí)行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內存、flash、網絡、系統啟動等一些命令。 如果系統上電時bms為低電平,則系統從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執(zhí)行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經啟動了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統復位,就可以看到系統先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環(huán)境,關于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改makeFILE中的編譯器項目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區(qū)別嗎?首先有區(qū)別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進行解壓,除此之外,他和loader并無大的區(qū)別,你可以把boot理解為在loader的基礎上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據自己的系統的情況修改和配置以及裁減,打造屬于自己系統的bootloder。
上傳時間: 2013-10-27
上傳用戶:wsf950131
AVR 單片機與GCC編程 目錄第一章 AVR 單片機開發(fā)概述1.1 一個簡簡單的例子1.2 用makeFILE 管理項目1.3 開發(fā)環(huán)境的配置第二章 存儲器操作2.1 AVR 單片機存儲器組織結構2.2 I/O 寄存器操作2.3 SRAM 內變量的使用2.4 在程序中訪問FLASH 程序存儲器2.5 EEPROM 數據存儲器操作2.6 avr-gcc 段結構與再定位第三章 功能模塊編程示例3.1 中斷服務程序3.2 定時器/計數器應用3.3 看門狗應用3.4 UART 應用3.5 PWM 功能編程3.6 模擬比較器3.7 A/D 轉換模塊編程第四章 使用C 語言標準I/O 流調試程序4.1 avr-libc 標準I/O 流描述4.2 利用標準I/0 流調試程序第五章 AT89S52 下載編程器的制作5.1 LuckyProg S52 概述5.2 AT89S52 ISP 功能簡介5.3 程序設計第六章 硬件TWI 端口編程6.1 TWI 模塊概述6.2 主控模式操作實時時鐘DS13076.3 兩個Mega8 間的TWI 通信第七章 BootLoader 功能應用7.1 BootLoader 功能介紹7.2 avr-libc 對BootLoader 的支持7.3 BootLoader 應用實例 第八章 匯編語言支持8.1 C 代碼中內聯匯編程序8.2 獨立的匯編語言支持8.3 C 與匯編混合編程第九章 C++語言支持結束語附錄 1 avr-gcc 選項附錄 2 ihex 格式描述
上傳時間: 2013-10-26
上傳用戶:wangyi39
AVR單片機GCC程序設計:第一章 概述1.1 AVR 單片機GCC 開發(fā)概述1.2 一個簡單的例子1.3 用makeFILE 管理項目1.4 開發(fā)環(huán)境的配置1.5 實驗板CA-M8第二章 存儲器操作編程2.1 AVR 單片機存儲器組織結構2.2 I/O 寄存器操作2.3 SRAM 內變量的使用2.4 在程序中訪問FLASH 程序存儲器2.5 EEPROM 數據存儲器操作2.6 avr-gcc 段結構與再定位2.7 外部RAM 存儲器操作2.8 堆應用第三章 GCC C 編譯器的使用3.1 編譯基礎3.2 生成靜態(tài)連接庫第四章 AVR 功能模塊應用實驗4.1 中斷服務程序4.2 定時器/計數器應用4.3 看門狗應用4.4 UART 應用4.5 PWM 功能編程4.6 模擬比較器4.7 A/D 轉換模塊編程4.8 數碼管顯示程序設計4.9 鍵盤程序設計4.10 蜂鳴器控制第五章 使用C 語言標準I/O 流調試程序5.1 avr-libc 標準I/O 流描述5.2 利用標準I/0 流調試程序5.3 最小化的格式化的打印函數第六章 CA-M8 上實現AT89S52 編程器的實現6.1 編程原理6.2 LuckyProg2004 概述6.3 AT989S52 isp 功能簡介6.4 下位機程序設計第七章 硬件TWI 端口編程7.1 TWI 模塊概述7.2 主控模式操作實時時鐘DS13077.3 兩個Mega8 間的TWI 通信第八章 BootLoader 功能應用8.1 BootLoader 功能介紹8.2 avr-libc 對BootLoader 的支持8.3 BootLoader 應用實例8.4 基于LuckyProg2004 的BootLoader 程序第九章 匯編語言支持9.1 C 代碼中內聯匯編程序9.2 獨立的匯編語言支持9.3 C 與匯編混合編程第十章 C++語言支持附錄 1 avr-gcc 選項附錄 2 Intel HEX 文件格式描述
上傳時間: 2014-04-03
上傳用戶:ligi201200
755頁高清版Linux C編程一站式教程,如果你在做Linux軟件開發(fā),請不要錯過。 makeFILE,Shell,文件系統,I/O,信號,進程,線程,TCP/IP,UDP,Socket編程等等內容
上傳時間: 2013-10-23
上傳用戶:lo25643
本書全面介紹了嵌入式Linux 系統開發(fā)過程中,從底層系統支持到上層GUI 應用的方方面面,內容涵蓋Linux 操作系統的安裝及相關工具的使用、配置,嵌入式編程所需要的基礎知識(交叉編譯工具的選項設置、makeFILE 語法、ARM 匯編指令等),硬件部件的使用及編程(囊括了常見硬件,比如UART、I2C、LCD 等),U-Boot、Linux 內核的分析、配置和移植,根文件系統的構造(包括移植busybox、glibc、制作映象文件等),內核調試技術(比如添加kgdb 補丁、棧回溯等),驅動程序編寫及移植(LED、按鍵、擴展串口、網卡、硬盤、SD 卡、LCD 和USB 等),GUI 系統的移植(包含兩個GUI 系統:基于Qtopia 和基于X),應用程序調試技術。
上傳時間: 2013-12-23
上傳用戶:life840315