086-uboot移植詳解;086-uboot移植詳解
上傳時間: 2021-10-22
上傳用戶:
085-uboot簡介;U-Boot主要目錄結(jié)構(gòu)
標(biāo)簽: uboot
上傳時間: 2021-10-22
上傳用戶:
uboot啟動流程分析(基于u-boot1.1.4)這是一份非常不錯的資料,歡迎下載,希望對您有幫助!
標(biāo)簽: uboot
上傳時間: 2022-02-06
上傳用戶:
基于S3C2440的uboot開發(fā)與設(shè)計這是一份非常不錯的資料,歡迎下載,希望對您有幫助!
上傳時間: 2022-03-03
上傳用戶:
隨著消費類電子產(chǎn)業(yè)的蓬勃發(fā)展,越來越多的嵌入式電子產(chǎn)品走進了千家萬戶。電腦的形態(tài)也不再局限于以前的PC機,各式各樣的嵌入式系統(tǒng)出現(xiàn)在了眾多的行業(yè)和應(yīng)用中,其中ARM和Linux結(jié)合的產(chǎn)品在市場上最受青睞。ARM由于其低功耗、高性能、小體積、低成本受到了越來越廣泛的重視,成為眾多公司產(chǎn)品開發(fā)的主流硬件。而Linux則因其開放的源代碼,可裁剪的內(nèi)核,便利的開發(fā)環(huán)境,各硬件平臺的通用性,逐漸成為嵌入式開發(fā)的主流操作系統(tǒng)。本課題的嵌入式MP3設(shè)計就是基于ARM和linux平臺的。 @@ 本課題實現(xiàn)了一個完整的嵌入式系統(tǒng),選用zq2410開發(fā)板為目標(biāo)平臺,linux作為目標(biāo)操作系統(tǒng),在這樣的軟硬件環(huán)境下研究實現(xiàn)MP3播放器。 @@ 文章首先綜述了嵌入式系統(tǒng)開發(fā)方法,介紹了ARM處理器及其特點,Linux操作系統(tǒng),嵌入式系統(tǒng)的開發(fā)模式以及如何搭建交叉開發(fā)環(huán)境,然后介紹了所選硬件平臺zq2410目標(biāo)板的各種資源,在系統(tǒng)軟件開發(fā)中,介紹uboot、Linux的裁剪和移植,根文件系統(tǒng)的制作以及核心驅(qū)動程序的開發(fā),應(yīng)用程序開發(fā)中,介紹了MP3的原理,移植Madplay MP3播放器,最后成功對Madplay播放器實現(xiàn)了綜合控制。 @@關(guān)鍵詞:嵌入式;ARM; Linux;驅(qū)動程序;MP3;
上傳時間: 2013-05-26
上傳用戶:lo25643
隨著消費類電子產(chǎn)業(yè)的蓬勃發(fā)展,越來越多的嵌入式電子產(chǎn)品走進了千家萬戶。電腦的形態(tài)也不再局限于以前的PC機,各式各樣的嵌入式系統(tǒng)出現(xiàn)在了眾多的行業(yè)和應(yīng)用中,其中ARM和Linux結(jié)合的產(chǎn)品在市場上最受青睞。ARM由于其低功耗、高性能、小體積、低成本受到了越來越廣泛的重視,成為眾多公司產(chǎn)品開發(fā)的主流硬件。而Linux則因其開放的源代碼,可裁剪的內(nèi)核,便利的開發(fā)環(huán)境,各硬件平臺的通用性,逐漸成為嵌入式開發(fā)的主流操作系統(tǒng)。本課題的嵌入式MP3設(shè)計就是基于ARM和linux平臺的。 本課題實現(xiàn)了一個完整的嵌入式系統(tǒng),選用zq2410開發(fā)板為目標(biāo)平臺,linux作為目標(biāo)操作系統(tǒng),在這樣的軟硬件環(huán)境下研究實現(xiàn)MP3播放器。 文章首先綜述了嵌入式系統(tǒng)開發(fā)方法,介紹了ARM處理器及其特點,Linux操作系統(tǒng),嵌入式系統(tǒng)的開發(fā)模式以及如何搭建交叉開發(fā)環(huán)境,然后介紹了所選硬件平臺zq2410目標(biāo)板的各種資源,在系統(tǒng)軟件開發(fā)中,介紹uboot、Linux的裁剪和移植,根文件系統(tǒng)的制作以及核心驅(qū)動程序的開發(fā),應(yīng)用程序開發(fā)中,介紹了MP3的原理,移植Madplay MP3播放器,最后成功對Madplay播放器實現(xiàn)了綜合控制。
上傳時間: 2013-04-24
上傳用戶:Amygdala
嵌入式Linux的c開發(fā),很詳細的講解了嵌入式Linux的驅(qū)動和最小系統(tǒng)啟動開發(fā),uboot的開發(fā)等等
標(biāo)簽: 嵌入式C
上傳時間: 2013-04-24
上傳用戶:wangdean1101
作為世界上最優(yōu)秀的操作系統(tǒng)之一,Linux不僅在服務(wù)器領(lǐng)域有著不可撼動的地位,而且正在嵌入式領(lǐng)域發(fā)揮著越來越重要的作用。有專家預(yù)測,Linux將是未來最主要的嵌入式操作系統(tǒng)之一,將廣泛應(yīng)用在各種消費電子和通信設(shè)備中。因此,產(chǎn)生并逐漸形成了嵌入式Linux這項技術(shù)。然而,面對嵌入式系統(tǒng)多樣化的硬件平臺以及多樣化的應(yīng)用,如何更快更好地建立基于Linux的軟件平臺成為一個必須解決的問題。 本文正是針對這個問題,以Linux相關(guān)的基礎(chǔ)軟件為主要研究對象,在深入分析引導(dǎo)加載程序、Linux與處理器相關(guān)的代碼、文件系統(tǒng)以及設(shè)備驅(qū)動的基礎(chǔ)上,對基于ARM的Linux軟件平臺進行了創(chuàng)新性和探索性的研究。主要內(nèi)容為:在理解ARM體系結(jié)構(gòu)的基礎(chǔ)上,通過分析uboot源碼,詳細研究ARM處理器在上電后的啟動過程和加載引導(dǎo)Iinux的過程;分析并總結(jié)Linux與處理器相關(guān)的接口,以中斷控制器、定時器以及串口為主,提出了移植Linux到新型處理器的思路和方法;研究Iinux文件系統(tǒng)的內(nèi)容、制作和使用;分析Linux的設(shè)備驅(qū)動體系結(jié)構(gòu)以及設(shè)備驅(qū)動的調(diào)用方式;在學(xué)習(xí)和研究的基礎(chǔ)之上,針對STMP36xx這款處理器,設(shè)計并實現(xiàn)引導(dǎo)加載程序,完成Linux的移植、配置、編譯,解決Linux啟動過程遇到的問題,然后通過制作根文件系統(tǒng)和實現(xiàn)NandFlash、LCD的驅(qū)動,完整地搭建起以Linux為核心的軟件平臺,并進行了應(yīng)用驗證。 在實際應(yīng)用中,嵌入式系統(tǒng)會使用很多不同類型的處理器,因此迫切希望能夠找到一個準(zhǔn)則解決移植帶來的問題。本文最重要的成果就是為Linux在新型處理器上的移植提出了一個準(zhǔn)則,根據(jù)該準(zhǔn)則可以更加快速、更加準(zhǔn)確地將Linux應(yīng)用到不同的處理器上,因此具有重要的現(xiàn)實意義。同時,本文將項目實踐貫穿于理論研究之中,涉及到Linux平臺關(guān)鍵技術(shù)的分析、相關(guān)工具的使用以及開發(fā)經(jīng)驗的分享,對學(xué)習(xí)嵌入式Linux和設(shè)計嵌入式Linux系統(tǒng)具有較高的參考和指導(dǎo)價值。此外,成功移植的STMP36xx已經(jīng)初具規(guī)模,可以通過二次開發(fā)以形成完善的嵌入式產(chǎn)品。
上傳時間: 2013-06-01
上傳用戶:sa123456
很好的 源碼,適合初學(xué)者,引導(dǎo)Linux的代碼
上傳時間: 2013-04-24
上傳用戶:zukfu
at91rm9200啟動過程教程 系統(tǒng)上電,檢測BMS,選擇系統(tǒng)的啟動方式,如果BMS為高電平,則系統(tǒng)從片內(nèi)ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執(zhí)行這個BOOTLOAER(準(zhǔn)確的說應(yīng)該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設(shè)置PLLB產(chǎn)生48M時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應(yīng)模式下的堆棧設(shè)置; 3、檢測主時鐘源(Main oscillator); 4、中斷控制器(AIC)的設(shè)置; 5、C 變量的初始化; 6、跳到主函數(shù)。 完成以上步驟后,我們可以認為BOOT過程結(jié)束,接下來的就是LOADER的過程,或者也可以認為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設(shè)備的開始地址處連續(xù)的存放的32個字節(jié),也就是8條指令必須是跳轉(zhuǎn)指令或者裝載PC的指令,其實這樣規(guī)定就是把這8條指令當(dāng)作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關(guān)于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當(dāng)BOOT程序完成了把合法的映像搬到SRAM的任務(wù)以后,接下來就進行存儲器的REMAP,經(jīng)過REMAP之后,SRAM從映設(shè)前的0X200000地址處被映設(shè)到了0X0地址并且程序從0X0處開始執(zhí)行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設(shè)備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準(zhǔn)備從外部載入映像。對DEBUG口的初始化包括設(shè)置參數(shù)115200 8 N 1以及運行XMODEM協(xié)議。對USB DEVICE進行初始化以及運行DFU協(xié)議。現(xiàn)在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設(shè)然后執(zhí)行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內(nèi)的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內(nèi)啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內(nèi)容和ROM的BOOT差不多,不同的硬件設(shè)計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設(shè)計的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內(nèi)啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據(jù)自己的應(yīng)用配置。總的說來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務(wù)也不錯,不但提供了片內(nèi)啟動的功能,還提供了uboot可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結(jié)構(gòu)與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設(shè)的驅(qū)動,是一個功能強大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網(wǎng)站下載。 我們知道,當(dāng)9200系統(tǒng)上電后,如果bms為高電平,則系統(tǒng)從片內(nèi)rom啟動,這時rom中固化的boot程序初始化了debug口并向其發(fā)送'c',這時我們打開超級終端會看到ccccc...。這說明系統(tǒng)已經(jīng)啟動,同時xmodem協(xié)議已經(jīng)啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內(nèi)的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協(xié)議,為下載和啟動uboot做準(zhǔn)備。當(dāng)下載了loader.bin后,超級終端會繼續(xù)打印:ccccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調(diào)到此處開始執(zhí)行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內(nèi)存、flash、網(wǎng)絡(luò)、系統(tǒng)啟動等一些命令。 如果系統(tǒng)上電時bms為低電平,則系統(tǒng)從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執(zhí)行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內(nèi)rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經(jīng)啟動了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 然后系統(tǒng)復(fù)位,就可以看到系統(tǒng)先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環(huán)境,關(guān)于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當(dāng)前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區(qū)別嗎?首先有區(qū)別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進行解壓,除此之外,他和loader并無大的區(qū)別,你可以把boot理解為在loader的基礎(chǔ)上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質(zhì)不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據(jù)自己的系統(tǒng)的情況修改和配置以及裁減,打造屬于自己系統(tǒng)的bootloder。
上傳時間: 2013-10-27
上傳用戶:wsf950131
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1