at91rm9200啟動過程教程 系統(tǒng)上電,檢測BMS,選擇系統(tǒng)的啟動方式,如果BMS為高電平,則系統(tǒng)從片內(nèi)ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執(zhí)行這個BOOTLOAER(準確的說應該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設置PLLB產(chǎn)生48M時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應模式下的堆棧設置; 3、檢測主時鐘源(Main oscillator); 4、中斷控制器(AIC)的設置; 5、C 變量的初始化; 6、跳到主函數(shù)。 完成以上步驟后,我們可以認為BOOT過程結束,接下來的就是LOADER的過程,或者也可以認為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設備的開始地址處連續(xù)的存放的32個字節(jié),也就是8條指令必須是跳轉指令或者裝載PC的指令,其實這樣規(guī)定就是把這8條指令當作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當BOOT程序完成了把合法的映像搬到SRAM的任務以后,接下來就進行存儲器的REMAP,經(jīng)過REMAP之后,SRAM從映設前的0X200000地址處被映設到了0X0地址并且程序從0X0處開始執(zhí)行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準備從外部載入映像。對DEBUG口的初始化包括設置參數(shù)115200 8 N 1以及運行XMODEM協(xié)議。對USB DEVICE進行初始化以及運行DFU協(xié)議。現(xiàn)在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設然后執(zhí)行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內(nèi)的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內(nèi)啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內(nèi)容和ROM的BOOT差不多,不同的硬件設計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設計的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內(nèi)啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據(jù)自己的應用配置。總的說來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務也不錯,不但提供了片內(nèi)啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結構與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設的驅動,是一個功能強大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網(wǎ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做準備。當下載了loader.bin后,超級終端會繼續(xù)打印:ccccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調(diào)到此處開始執(zhí)行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內(nèi)存、flash、網(wǎng)絡、系統(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)復位,就可以看到系統(tǒng)先啟動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的功能而已。所以這兩個并無多大的本質不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據(jù)自己的系統(tǒng)的情況修改和配置以及裁減,打造屬于自己系統(tǒng)的bootloder。
上傳時間: 2013-10-27
上傳用戶:wsf950131
Keil C51使用詳解Keil C51 是美國Keil Software 公司出品的51 系列兼容單片機C 語言軟件開發(fā)系統(tǒng),與匯編相比,C 語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C 來開發(fā),體會更加深刻。Keil C51 軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細介紹 Keil C51 開發(fā)系統(tǒng)各部分功能和使用。第二節(jié) Keil C51 單片機軟件開發(fā)系統(tǒng)的整體結構C51 工具包的整體結構,如圖(1)所示,其中uVision 與Ishell 分別是C51 forWindows 和for Dos 的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE 本身或其它編輯器編輯C 或匯編源文件。然后分別由C51 及A51 編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51 創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51 連接定位生成絕對目標文件(.ABS)。ABS 文件由OH51 轉換成標準的Hex 文件,以供調(diào)試器dScope51 或tScope51 使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM 中。圖(1) C51 工具包整體結構圖第三節(jié) Keil C51 工具包的安裝81. C51 for Dos在 Windows 下直接運行軟件包中DOS\C51DOS.exe 然后選擇安裝目錄即可。完畢后欲使系統(tǒng)正常工作須進行以下操作(設C:\C51 為安裝目錄):修改 Autoexec.bat,加入path=C:\C51\BinSet C51LIB=C:\C51\LIBSet C51INC=C:\C51\INC然后運行Autoexec.bat2. C51 for Windows 的安裝及注意事項:在 Windows 下運行軟件包中WIN\Setup.exe,最好選擇安裝目錄與C51 for Dos相同,這樣設置最簡單(設安裝于C:\C51 目錄下)。然后將軟件包中crack 目錄中的文件拷入C:\C51\Bin 目錄下。第四節(jié) Keil C51 工具包各部分功能及使用簡介1. C51 與A51(1) C51C51 是C 語言編譯器,其使用方法為:C51 sourcefile[編譯控制指令]或者 C51 @ commandfile其中 sourcefile 為C 源文件(.C)。大量的編譯控制指令完成C51 編譯器的全部功能。包控C51 輸出文件C.LST,.OBJ,.I 和.SRC 文件的控制。源文件(.C)的控制等,詳見第五部分的具體介紹。而 Commandfile 為一個連接控制文件其內(nèi)容包括:.C 源文件及各編譯控制指令,它沒有固定的名字,開發(fā)人員可根據(jù)自己的習慣指定,它適于用控制指令較多的場合。(2) A51A51 是匯編語言編譯器,使用方法為:9A51 sourcefile[編譯控制指令]或 A51 @ commandfile其中sourcefile 為匯編源文件(.asm或.a51),而編譯控制指令的使用與其它匯編如ASM語言類似,可參考其他匯編語言材料。Commandfile 同C51 中的Commandfile 類似,它使A51 使用和修改方便。2. L51 和BL51(1) L51L51 是Keil C51 軟件包提供的連接/定位器,其功能是將編譯生成的OBJ 文件與庫文件連接定位生成絕對目標文件(.ABS),其使用方法為:L51 目標文件列表[庫文件列表] [to outputfile] [連接控制指令]或 L51 @Commandfile源程序的多個模塊分別經(jīng) C51 與A51 編譯后生成多個OBJ 文件,連接時,這些文件全列于目標文件列表中,作為輸入文件,如果還需與庫文件(.LiB)相連接,則庫文件也必須列在其后。outputfile 為輸文件名,缺少時為第一模塊名,后綴為.ABS。連接控制指令提供了連接定位時的所有控制功能。Commandfile 為連接控制文件,其具體內(nèi)容是包括了目標文件列表,庫文件列表及輸出文件、連接控制命令,以取代第一種繁瑣的格式,由于目標模塊庫文件大多不止1 個,因而第2 種方法較多見,這個文件名字也可由使用者隨意指定。(2) Bl51BL51 也是C51 軟件包的連接/定位器,其具有L51 的所有功能,此外它還具有以下3 點特別之處:a. 可以連接定位大于64kBytes 的程序。b. 具有代碼域及域切換功能(CodeBanking & Bank Switching)c. 可用于RTX51 操作系統(tǒng)RTX51 是一個實時多任務操作系統(tǒng),它改變了傳統(tǒng)的編程模式,甚至不必用main( )函數(shù),單片機系統(tǒng)軟件向RTOS 發(fā)展是一種趨勢,這種趨勢對于186 和38610及68K 系列CPU 更為明顯和必須,對8051 因CPU 較為簡單,程序結構等都不太復雜,RTX51 作用顯得不太突出,其專業(yè)版軟件PK51 軟件包甚至不包括RTX51Full,而只有一個RTX51TINY 版本的RTOS。RTX51 TINY 適用于無外部RAM 的單片機系統(tǒng),因而可用面很窄,在本文中不作介紹。Bank switching 技術因使用很少也不作介紹。3. DScope51,Tscope51 及Monitor51(1) dScope51dScope51 是一個源級調(diào)試器和模擬器,它可以調(diào)試由C51 編譯器、A51 匯編器、PL/M-51 編譯器及ASM-51 匯編器產(chǎn)生的程序。它不需目標板(for windows 也可通過mon51 接目標板),只能進行軟件模擬,但其功能強大,可模擬CPU 及其外圍器件,如內(nèi)部串口,外部I/O 及定時器等,能對嵌入式軟件功能進行有效測試。
上傳時間: 2013-11-01
上傳用戶:zhouxuepeng1
NCV4269是一款精準的低功耗5V穩(wěn)壓源,它的輸出電流負載為150mA。輸出電壓的精確度為±2.0%,在輸出電流為100mA時輸出電壓的最大紋波電壓為0.5V。NCV4269的最大特點就是靜態(tài)電流小,在輸出電流為1.0mA時靜態(tài)電流只有240μA。這一特點非常適合應用與利用電池供電的微處理器設備。
標簽: 4269 NCV 低功耗 產(chǎn)品簡介
上傳時間: 2013-11-08
上傳用戶:yimoney
TI半導體針對工業(yè)應用推出了基于ARM926EJ-S內(nèi)核的低功耗ARM9處理器AM17xx和AM18xx。其中,AM17xx 和OMAPL137在軟件和引腳上兼容;AM18xx 和OMAPL138在軟件和引腳上兼容。基于本系列處理器,用戶可快速開發(fā)出具有強壯可靠操作系統(tǒng)、豐富用戶接口、高性能的處理能力的設備。
上傳時間: 2013-10-19
上傳用戶:9牛10
特性及優(yōu)點• 內(nèi)嵌FLASH和CAN的低成本器件– S12系列的低端產(chǎn)品– 16-位的性能8-位的價格• 引腳/封裝– 48/52 LQFP– 80 QFP, 與B&D 系列引腳兼容– Flash從16K-128K,易于產(chǎn)品升級• 8通道10位AD– 7μsec, 10-bit 單次轉換時間, 具有掃描模式
上傳時間: 2013-10-28
上傳用戶:小寶愛考拉
本應用規(guī)格書詳細描述了飛利浦一通道和兩通道SC16Cxxx 器件與飛利浦低功耗SC16CxxxB 器件之間的不同,希望從原飛利浦方案轉移到新方案的客戶能夠在這流程中找到有用的信息。
上傳時間: 2013-10-15
上傳用戶:a3318966
PCA9517 是一款基于CMOS 工藝的低電壓I2C 中繼器,在I2C 總線或SMBus 應用中進行高低電壓轉換。PCA9517 能夠在電平轉換期間保持總線所有的操作模式和特性,通過數(shù)據(jù)線(SDA)和時鐘線(SCL)的雙向緩存實現(xiàn)I2C 總線擴展,總線最大容性負載為400pF。PCA9517 能夠隔離器件總線兩端的電壓和容性負載。SDA 和SCL 引腳具有過壓保護功能,在掉電的情況下為高阻狀態(tài)。
上傳時間: 2013-10-08
上傳用戶:zgz317
單片機系統(tǒng)的低功耗設計策略:摘要嵌入式系統(tǒng)的低功耗設計需要全面分析各方面因素,統(tǒng)籌規(guī)劃。在設計之初,各個因素往往是相互制約、相互影響的,一個降低系統(tǒng)功耗的措施有時會帶來其他方面的“負效應”。因此,降低系統(tǒng)整體功耗,需要仔細分析和計算。本文從硬件和應用軟件設計兩個方面,闡述一個以單片機為核心的嵌入式系統(tǒng)低功耗設計時所需考慮的一些問題。關鍵詞低功耗設計 硬件設計 應用軟件設計 低功耗模式 在嵌入式應用中,系統(tǒng)的功耗越來越受到人們的重視,這一點對于需要電池供電的便攜式系統(tǒng)尤其明顯。降低系統(tǒng)功耗,延長電池的壽命,就是降低系統(tǒng)的運行成本。對于以單片機為核心的嵌入式應用,系統(tǒng)功耗的最小化需要從軟、硬件設計兩方面入手。 隨著越來越多的嵌入式應用使用了實時操作系統(tǒng),如何在操作系統(tǒng)層面上降低系統(tǒng)功耗也成為一個值得關注的問題。限于篇幅,本文僅從硬件設計和應用軟件設計兩個方面討論。
標簽: 單片機系統(tǒng) 低功耗設計 策略
上傳時間: 2013-11-21
上傳用戶:zhenyushaw
時鐘和低功耗模式片內(nèi)集成有PLL(鎖相環(huán))電路。外接的基準晶體+PLL(鎖相環(huán))電路共同組成系統(tǒng)時鐘電路。有關引腳:XTAL1/CLKIN:外接的基準晶體到片內(nèi)振蕩器輸入引腳;如使用外部振蕩器,外部振蕩器的輸出必須接該腳。XTAL2:片內(nèi)PLL振蕩器輸出引腳;CLKOUT/IOPE0:該腳可作為時鐘輸出或通用IO腳;可用來輸出CPU時鐘或看門狗定時器時鐘;由系統(tǒng)控制狀態(tài)寄存器(SCSR1)中的位14決定。
上傳時間: 2013-10-24
上傳用戶:1159797854
結合單片機技術及其它相關技術的新進展,研究了便攜式智能儀器儀表的實用低功耗技術。對便攜式智能儀器儀表的低功耗設計具有指導作用。功耗問題一直是便攜式電子系統(tǒng)發(fā)展的主要障礙。現(xiàn)在,電子系統(tǒng)的低功耗設計作為綠色電子的基本要求,成為現(xiàn)代電子系統(tǒng)的普遍追求。電子系統(tǒng)的低功耗設計可實現(xiàn)電子終端產(chǎn)品便攜、節(jié)能、可靠的愿望。LSI 和VLSI 技術的發(fā)展與應用,有賴與可靠性技術和低功耗技術的發(fā)展。便攜式智能儀器儀表在許多領域有重要而廣泛的應用。單片機是便攜式智能儀器儀表的核心。在一定意義上講,便攜式智能儀器儀表是一個單片機應用系統(tǒng)。單片機技術及其它相關技術的迅速發(fā)展,為便攜式智能儀器儀表的低功耗設計提供了必要的條件。長壽命、高速度、低電壓與低功耗、低噪聲與高可靠性、多品種、低價格等是單片機技術發(fā)展的特點,并已取得很大進展[1]。本文將結合單片機技術及其它相關技術的新進展,討論便攜式智能儀器儀表的實用低功耗技術。這對便攜式智能儀器儀表(以下簡稱“智能儀表”)的低功耗設計具有較好的指導作用。
上傳時間: 2013-10-11
上傳用戶:tou15837271233