一、課程簡介及要求: 課程名稱(中英文)單片機原理及應用 Principle of Chip Microcomputer 課程編碼 241016 學分 2 學時(含實驗: )46 (8) 開課單位 信息學院實驗中心 課程內容 掌握 MCS51 匯編軟語言程序設計和調試方法、掌握 MCS51 單片機原理及其應用方法 選課對象 本科 相關理論課程 微機原理與應用;計算機控制技術; 測控電路;單片機原理及接口技術等 參考教材 單片機原理及應用 考試方式及評分標準
上傳時間: 2014-12-27
上傳用戶:HGH77P99
EM78系列單芯片-提升軟件效率的小程序筆者閑暇時總喜歡一個人窩在房里拿烙鐵,焊電路板,在網絡上游走,看到喜歡的DIY也一定仔細端詳,即使按圖施工也可以得到不少的樂趣,相信酷愛此道的人應該也不少,除了喜歡看看別人的作品,也可以互相比較一下看誰用的零件少,誰提供的功能強,誰的速度最快,所以經常很容易就搜集到一些不錯的電路,日子久了就像堆積木一樣,可以一個方塊一個方塊的拿來用,吾人戲稱為積木設計法。將許多有用的電路組合在一起,又是一個新的東西。這種方式的確又快又經濟,符合現代人快餐的觀念。不僅是硬件可以像堆積木一樣的收集起來,軟件當然也可以適用于積木法則,于是在不少有心人的努力之下,筆者也收集了EM78系列單芯片一些很好的鏈接庫,所以說麻雀雖小,五臟俱全。也因為這些鏈接庫極具參考價值,筆者不忍獨享,故決定將紊亂的筆記重新整理后。
上傳時間: 2013-11-21
上傳用戶:kristycreasy
單片機課程設計指導教材 主要內容:典型單片機( MCS-51, AT89S51, PIC, Motorola, AVR )的性能,MCS-51內部結構,特點,工作方式,時序和最小應用系統.為學生后續學習單片機應用系統設計,利用單片機解決工程實際問題打下堅實的基礎.重點在于基本概念,組成原理,特點及MCS-51的最小應用系統,難點在于時序,ISP下載技術.預備知識:元器件實物圖單片機芯片AT89C51AT89S51AT89S52AT89C2051通信芯片MAX232CPE 時鐘芯片 DS1302EEPROM24C02溫度傳感器18B20AD變換器0832穩壓片78L05晶 振電阻和排電阻瓷片小電容零壓力插座萬用焊接板儀器盒步進電機液晶字符顯示屏液晶圖形點陣顯示屏撥動開關紅外遙控用 發射接受一體管繼電器各類接插件遙控組件超聲波發射接受頭雙路遙控組件長距離遙控器3000-4000M8×8二極管點陣 八段數碼管超聲波發射和接收一體化機能漢字顯示的顯示屏和實時時鐘板......
上傳時間: 2013-11-10
上傳用戶:hebanlian
常用三星單片機燒寫電壓設置參考表 燒寫電壓說明:Vdd 電壓指燒寫時加載到芯片Vdd 端子的邏輯電壓,Vpp 電壓指燒寫時加載到芯片Vpp(Test)端子的編程電壓, Vpp=12V 是編程器的默認燒寫電壓,無須特別設置. 由于編程器的默認輸出Vpp 電壓均為12V,因此在燒寫Vpp=3.3V/5.0V 的芯片時,需要對燒寫轉換適配器作以下改動:將燒寫器燒寫座引出的Vpp 端子完全空置不用, 并在適配器上將Vdd端子直接連接Vpp 端即可.當用戶采用在PCB板上燒寫方式時,建議最好能在PCB芯片端的Vpp腳并接一個104 的電容入地,可有效保護在燒寫電壓加載時板子電路共同作用產生的瞬間過壓脈沖不會輸入到Vpp 腳而造成Vpp 擊穿.S3F84K4 燒寫特別說明,由于三星半導體DATA SHEET 要求在對該芯片進行燒寫時,須在Vpp 腳加接一個101 的電容到地,因此在使用我站各款燒寫器燒寫84K4 時,須將燒寫器主板上的Vpp 端原來并接的10uf/50V-電解電容和104 電容去掉,另行并接一個101 電容入地即可.不過,據本人特別測試結果,其實不做以上處理對燒寫過程沒有任何影響, 估計可能是三星半導體對芯片有做過改版,老版本的84K4 才會有以上特別要求,新版本是沒有這個要求的.
上傳時間: 2013-10-10
上傳用戶:wcl168881111111
P87LPC767 OTP 單片機原理 P87LPC767 是20 腳封裝的單片機適合于許多要求高集成度低成本的場合可以滿足許多方面的性能要求作為Philips 小型封裝系列中的一員P87LPC767 提供高速和低速的晶振和RC 振蕩方式可編程選擇具有較寬的操作電壓范圍可編程I/O 口線輸出模式選擇可選擇施密特觸發輸入LED 驅動輸出有內部看門狗定時器P87LPC767 采用80C51 加速處理器結構指令執行速度是標準80C51 MCU 的兩倍特性 操作頻率為20MHz 時除乘法和除法指令外加速80C51 指令執行時間為300600ns VDD=4.5 5.5V 時時鐘頻率可達20MHz VDD=2.7 4.5V 時時鐘頻率最大為10MHz 4 通道多路8 位A/D 轉換器在振蕩器頻率fosc=20MHz 時轉換時間為9.3μs 用于數字功能時操作電壓范圍為2.7 6.0V 4K 字節OTP 程序存儲器128 字節的RAM 32Byte 用戶代碼區可用來存放序列碼及設置參數 2 個16 位定時/計數器每一個定時器均可設置為溢出時觸發相應端口輸出 內含 2 個模擬比較器 全雙工通用異步接收/發送器UART 及I2C 通信接口 八個鍵盤中斷輸入另加2 路外部中斷輸入 4 個中斷優先級 看門狗定時器利用片內獨立振蕩器,無需外接元件,看門狗定時器溢出時間有8 種選擇 低電平復位使用片內上電復位時不需要外接元件 低電壓復位選擇預設的兩種電壓之一復位可在掉電時使系統安全關閉也可將其設置為一個中斷源 振蕩器失效檢測看門狗定時器具有獨立的片內振蕩器因此它可用于振蕩器的失效檢測 可配置的片內振蕩器及其頻率范圍和RC 振蕩器選項(用戶通過對EPROM 位編程選擇) 選擇RC 振蕩器時不需外接振蕩器件 可編程 I/O 口輸出模式準雙向口,開漏輸出,上拉和只有輸入功能可選擇施密特觸發輸入 所有口線均有20mA 的驅動能力 可控制口線輸出轉換速度以降低EMI,輸出最小上升時間約為10ns 最少 15 個I/O 口,選擇片內振蕩和片內復位時可多達18 個I/O 口 如果選擇片內振蕩及復位時,P87LPC767 僅需要連接電源線和地線 串行 EPROM 編程允許在線編程2 位EPROM 安全碼可防止程序被讀出 空閑和掉電兩種省電模式提供從掉電模式中喚醒功能低電平中斷輸入啟動運行典型的掉電電流為1μA 低功耗 4MHz-20MHz,1.7-10mA@3.3v 100KHz-4MHz,0.044-1.7mA@3.3v 20KHz-100KHz,9-44μA@3.3v 20 腳DIP 和SO 封裝
上傳時間: 2013-11-06
上傳用戶:xcy122677
PIC16F877 單片機的鍵盤和LED 數碼顯示接口 1 PIC16F877單片機與鍵盤和LED數碼顯示的硬件接口電路單片機的許多應用都需要進行人機對話,最簡單的人機對話需要LED 數碼管顯示數字和少量字符;鍵盤是解決計算機輸入的簡單手段;借此可以向計算機輸入程序、置數、送操作命令、控制程序的執行等等,所以使用非常廣泛。圖1 鍵盤、LED數碼顯示與PIC16F877 單片機的接口電路本例中采用8 個按鍵組成的小鍵盤,4 只共陰極的LED 數碼管,采用4 片74LS373 驅動數碼管,采用的驅動方法是靜態方式。使用1 片74LS245 作為鍵盤的接口;這些外圍器件與PIC16F877 單片機的接口電路如圖1 所示,這種連接方法與51 系列的單片機連接方法一樣,其他的連接方法還有好幾種,PIC16F877 單片機的鍵盤輸入接法還有其他特殊而十分方便好用的方式。8 鍵鍵盤通過74LS245 與單片機相連,鍵盤按鍵狀態的數據輸入由RC3 輸出腳控制;當RC3=“0”時,鍵盤狀態從74LS245 的A 端輸出到單片機的PORTB口,此時讀PORTB口的數據即為鍵盤狀態。為了及時地響應鍵盤操作,需要經常對鍵盤進行掃描;掃描的方式有許多種,我們將鍵盤的掃描程序安排在主程序的循環執行過程中的方式,并采用20ms延遲來消除按鍵的抖動問題,此外,為了實現每按鍵一次只響應一次的功能,在執行相應的按鍵程序之前,必須確保按鍵已經松開;在本例中這一措施有效的防止了數據抖動過快的問題。LED 數碼顯示有動態掃描和靜態顯示兩種方式(圖1 采取的方式為靜態方式),在動態掃描方式中,各數碼顯示是輪流點亮的,即控制數碼顯示的位選信號和相應的要顯示的數碼的字形代碼同時逐一送出,反復不已,由于視覺的暫留現象,卻好象全都點亮著,這種電路的接法以后再介紹。在靜態方式中,只要將數據送出鎖存以后,各數碼顯示的數據不需要刷新,只要數據不需改變,就可以不去管他,所以稱為靜態顯示。在圖1 電路中,輸出顯示的操作簡化為對74LS373 的并口操作而已。由于靜態方式的工作原理比較簡單,編程也比較直觀簡單,程序間的相互關聯很少。因此編程容易,但要增加硬件,成本較高;與之相比,動態掃描的編程雖然要復雜一些,但因其所用硬件少,成本低。由數碼轉化為字形代碼可采用軟件譯碼、硬件譯碼等兩種方式。軟件譯碼是將各數碼的字形代碼構成一個表格存儲于內存之中,在顯示數碼時,通過執行查表程序而得到相應的字形代碼,再將之送入數碼顯示輸出電路進行顯示,本例即采用這種方式,這種方式的編程與單片機有關,在程序中給出了PIC16F877 的編程例程,對需要熟悉PIC16F877 單片機的人員有一定的參考價值。硬件譯碼則采用CD4511、74LS46、74LS47、74LS48、74LS49等BCD 碼—7段鎖存、譯碼、驅動芯片直接譯出字形代碼,點亮LED。74LS373 由LE 端對要顯示的數據進行鎖存控制,實現LED 的靜態顯示。采用了PIC16F877 的端口輸出操作,模擬74LS373 的數據鎖存時序,即由軟件實現數據鎖存,這種方法可以十分容易的改變時序和延遲長短,使高速設備可以與低速設備聯系配合好,設計簡單方便,不好的地方是編程較長和稍微復雜一點。這種編程方法在下面的程序中有很好的體現。
上傳時間: 2013-10-29
上傳用戶:cuiyashuo
C8051F單片機 C8051F系列單片機 單片機自20世紀70年代末誕生至今,經歷了單片微型計算機SCM、微控制器MCU及片上系統SoC三大階段,前兩個階段分別以MCS-51和80C51為代表。隨著在嵌入式領域中對單片機的性能和功能要求越來越高,以往的單片機無論是運行速度還是系統集成度等多方面都不能滿足新的設計需要,這時Silicon Labs 公司推出了C8051F系列單片機,成為SoC的典型代表。 C8051F具有上手快(全兼容8051指令集)、研發快(開發工具易用,可縮短研發周期)和見效快(調試手段靈活)的特點,其性能優勢具體體現在以下方面: 基于增強的CIP-51內核,其指令集與MCS-51完全兼容,具有標準8051的組織架構,可以使用標準的803x/805x匯編器和編譯器進行軟件開發。CIP-51采用流水線結構,70%的的指令執行時間為1或2個系統時鐘周期,是標準8051指令執行速度的12倍;其峰值執行速度可達100MIPS(C8051F120等),是目前世界上速度最快的8位單片機。 增加了中斷源。標準的8051只有7個中斷源Silicon Labs 公司 C8051F系列單片機擴展了中斷處理這對于時實多任務系統的處理是很重要的擴展的中斷系統向CIP-51提供22個中斷源允許大量的模擬和數字外設中斷一個中斷處理需要較少的CPU干預卻有更高的執行效率。 集成了豐富的模擬資源,絕大部分的C8051F系列單片機都集成了單個或兩個ADC,在片內模擬開關的作用下可實現對多路模擬信號的采集轉換;片內ADC的采樣精度最高可達24bit,采樣速率最高可達500ksps,部分型號還集成了單個或兩個獨立的高分辨率DAC,可滿足絕大多數混合信號系統的應用并實現與模擬電子系統的無縫接口;片內溫度傳感器則可以迅速而精確的監測環境溫度并通過程序作出相應處理,提高了系統運行的可靠性。 集成了豐富的外部設備接口。具有兩路UART和最多可達5個定時器及6個PCA模塊,此外還根據不同的需要集成了SMBus、SPI、USB、CAN、LIN等接口,以及RTC部件。外設接口在不使用時可以分別禁止以降低系統功耗。與其他類型的單片機實現相同的功能需要多個芯片的組合才能完成相比,C8051單片機不僅減少了系統成本,更大大降低了功耗。 增強了在信號處理方面的性能,部分型號具有16x16 MAC以及DMA功能,可對所采集信號進行實時有效的算法處理并提高了數據傳送能力。 具有獨立的片內時鐘源(精度最高可達0.5%),設計人員既可選擇外接時鐘,也可直接應用片內時鐘,同時可以在內外時鐘源之間自如切換。片內時鐘源降低了系統設計的復雜度,提高了系統可靠性,而時鐘切換功能則有利于系統整體功耗的降低。 提供空閑模式及停機模式等多種電源管理方式來降低系統功耗 實現了I/O從固定方式到交叉開關配置。固定方式的I/O端口,既占用引腳多,配置又不夠靈活。在C8051F中,則采用開關網絡以硬件方式實現I/O端口的靈活配置,外設電路單元通過相應的配置寄存器控制的交叉開關配置到所選擇的端口上。 復位方式多樣化,C8051F把80C51單一的外部復位發展成多源復位,提供了上電復位、掉電復位、外部引腳復位、軟件復位、時鐘檢測復位、比較器0復位、WDT復位和引腳配置復位。眾多的復位源為保障系統的安全、操作的靈活性以及零功耗系統設計帶來極大的好處。 從傳統的仿真調試到基于JTAG接口的在系統調試。C8051F在8位單片機中率先配置了標準的JTAG接口(IEEE1149.1)。C8051F的JTAG接口不僅支持Flash ROM的讀/寫操作及非侵入式在系統調試,它的JTAG邏輯還為在系統測試提供邊界掃描功能。通過邊界寄存器的編程控制,可對所有器件引腳、SFR總線和I/O口弱上拉功能實現觀察和控制。 C8051F系列單片機型號齊全,可根據設計需求選擇不同規模和帶有特定外設接口的型號,提供從多達100個引腳的高性能單片機到最小3mmX3mm的封裝,滿足不同設計的需要。 基于上述特點,Silicon Labs 公司C8051F系列單片機作為SoC芯片的杰出代表能夠滿足絕大部分場合的復雜功能要求,并在嵌入式領域的各個場合都得到了廣泛的應用:在工業控制領域,其豐富的模擬資源可用于工業現場多種物理量的監測、分析及控制和顯示;在便攜式儀器領域,其低功耗和強大的外設接口也非常適合各種信號的采集、存儲和傳輸;此外,新型的C8051F5xx系列單片機也在汽車電子行業中嶄露頭角。正是這些優勢,使得C8051單片機在進入中國市場的短短幾年內就迅速風靡,相信隨著新型號的不斷推出以及推廣力度的不斷加大,C8051系列單片機將迎來日益廣闊的發展空間,成為嵌入式領域的時代寵兒 此系列單片機完全兼容MCS-51指令集,容易上手,開發周期短,大大節約了開發成本。C8051F系統集成度高,總線時鐘可達25M
上傳時間: 2013-11-24
上傳用戶:testAPP
OM8361/TDA8362單片機的設計及應用 OM8361/TDA8362為飛利浦公司開發的單片集成電路來完成全部小信號的處理OM8361/TDA8362集成度較高可完成中頻視頻色度及行場掃描等小信號的處理具有PAL/NTSC自動識別彩色解碼電路若外接TDA8395即可方便實現SECAM解碼集成塊外接了免調整的一行基帶延時處理專用芯片TDA4665由于色解碼方面采用了當今流行的PAL-S方式的色解碼方式使得PAL制圖像的色彩亮麗鮮艷程度有了極大的提高塊內還集成了色度陷波器色帶通濾波器亮度延遲線等使外圍可調元件較少方便了生產與維修
上傳時間: 2013-10-08
上傳用戶:qiao8960
單片機串行通信發射機 我所做的單片機串行通信發射機主要在實驗室完成,參考有關的書籍和資料,個人完成電路的設計、焊接、檢查、調試,再根據自己的硬件和通信協議用匯編語言編寫發射和顯示程序,然后加電調試,最終達到準確無誤的發射和顯示。在這過程中需要選擇適當的元件,合理的電路圖扎實的焊接技術,基本的故障排除和糾正能力,會使用基本的儀器對硬件進行調試,會熟練的運用匯編語言編寫程序,會用相關的軟件對自己的程序進行翻譯,并燒進芯片中,要與對方接收機統一通信協議,要耐心的反復檢查、修改和調試,直到達到預期目的。單片機串行通信發射機采用串行工作方式,發射并顯示兩位數字信息,既顯示00-99,使數據能夠在不同地方傳遞。硬件部分主要分兩大塊,由AT89C51和多個按鍵組成的控制模塊,包括時鐘電路、控制信號電路,時鐘采用6MHZ晶振和30pF的電容來組成內部時鐘方式,控制信號用手動開關來控制,P1口來控制,P2、P3口產生信號并通過共陽極數碼管來顯示,軟件采用匯編語言來編寫,發射程序在通信協議一致的情況下完成數據的發射,同時顯示程序對發射的數據加以顯示。畢業設計的目的是了解基本電路設計的流程,豐富自己的知識和理論,鞏固所學的知識,提高自己的動手能力和實驗能力,從而具備一定的設計能力。我做得的畢業設計注重于對單片機串行發射的理論的理解,明白發射機的工作原理,以便以后單片機領域的開發和研制打下基礎,提高自己的設計能力,培養創新能力,豐富自己的知識理論,做到理論和實際結合。本課題的重要意義還在于能在進一步層次了解單片機的工作原理,內部結構和工作狀態。理解單片機的接口技術,中斷技術,存儲方式,時鐘方式和控制方式,這樣才能更好的利用單片機來做有效的設計。我的畢業設計分為兩個部分,硬件部分和軟件部分。硬件部分介紹:單片機串行通信發射機電路的設計,單片機AT89C51的功能和其在電路的作用。介紹了AT89C51的管腳結構和每個管腳的作用及各自的連接方法。AT89C51 與MCS-51 兼容,4K字節可編程閃爍存儲器,壽命:1000次可擦,數據保存10年,全靜態工作:0HZ-24HZ,三級程序存儲器鎖定,128*8 位內部RAM,32 跟可編程I/O 線,兩個16 位定時/計數器,5 個中斷源,5 個可編程串行通道,低功耗的閑置和掉電模式,片內震蕩和時鐘電路,P0和P1 可作為串行輸入口,P3口因為其管腳有特殊功能,可連接其他電路。例如P3.0RXD 作為串行輸出口,其中時鐘電路采用內時鐘工作方式,控制信號采用手動控制。數據的傳輸方式分為單工、半雙工、全雙工和多工工作方式;串行通信有兩種形式,異步和同步通信。介紹了串行串行口控制寄存器,電源管理寄存器PCON,中斷允許寄存器IE,還介紹了數碼顯示管的工作方式、組成,共陽極和共陰極數碼顯示管的電路組成,有動態和靜態顯示兩種方式,說明了不同顯示方法與單片機的連接。再后來還介紹了硬件的焊接過程,及在焊接時遇到的問題和應該注意的方面。硬件焊接好后的檢查電路、不裝芯片上電檢查及上電裝芯片檢查。軟件部分:在了解電路設計原理后,根據原理和目的畫出電路流程圖,列出數碼顯示的斷碼表,計算波特率,設置串行口,在與接受機設置相同的通信協議的基礎上編寫顯示和發射程序。編寫完程序還要進行編譯,這就必須會使用編譯軟件。介紹了編譯軟件的使用和使用過程中遇到的問題,及在編譯后燒入芯片使用的軟件PLDA,后來的加電調試,及遇到的問題,在沒問題后與接受機連接,發射數據,直到對方準確接收到。在軟件調試過程中將詳細介紹調試遇到的問題,例如:通信協議是否相同,數碼管是否與芯片連接對應,計數器是否開始計數等。
上傳時間: 2013-10-19
上傳用戶:uuuuuuu
at91rm9200啟動過程教程 系統上電,檢測BMS,選擇系統的啟動方式,如果BMS為高電平,則系統從片內ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執行這個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程序。所謂合法的指的是在這些存儲設備的開始地址處連續的存放的32個字節,也就是8條指令必須是跳轉指令或者裝載PC的指令,其實這樣規定就是把這8條指令當作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當BOOT程序完成了把合法的映像搬到SRAM的任務以后,接下來就進行存儲器的REMAP,經過REMAP之后,SRAM從映設前的0X200000地址處被映設到了0X0地址并且程序從0X0處開始執行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準備從外部載入映像。對DEBUG口的初始化包括設置參數115200 8 N 1以及運行XMODEM協議。對USB DEVICE進行初始化以及運行DFU協議。現在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設然后執行映像了。我們上面講了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口并向其發送'c',這時我們打開超級終端會看到ccccc...。這說明系統已經啟動,同時xmodem協議已經啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協議,為下載和啟動uboot做準備。當下載了loader.bin后,超級終端會繼續打印:ccccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調到此處開始執行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內存、flash、網絡、系統啟動等一些命令。 如果系統上電時bms為低電平,則系統從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執行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的交叉編譯環境,關于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區別嗎?首先有區別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進行解壓,除此之外,他和loader并無大的區別,你可以把boot理解為在loader的基礎上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據自己的系統的情況修改和配置以及裁減,打造屬于自己系統的bootloder。
上傳時間: 2013-10-27
上傳用戶:wsf950131