




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第5章嵌入式系統實驗5.1Cortex-A8處理器硬件電路5.2Eclipse集成開發環境5.3S5PV210驅動仿真調試實驗5.4嵌入式Linux系統實驗5.5Android系統實驗習題
5.1Cortex-A8處理器硬件電路
S5PV210又名“蜂鳥”,是三星推出的一款適用于智能手機和平板電腦等多媒體設備的應用處理器,S5PV210和S5PC110功能一樣,110小封裝適用于智能手機,210封裝較大,主要用于平板電腦和上網本,蘋果的iPad和iPhone4上的A4處理器,就采用的是和S5PV210一樣的架構(只是3D引擎和視頻解碼部分不同),三星的GalaxyTab平板電腦上用的也是S5PV210。
5.1.1S5PV210芯片軟硬件資源
S5PV210芯片數據及圖形圖像處理能力強,通信接口豐富,具備以下特點:
(1)Cortex-A8內核,NEONTMSIMD協處理器,CPU主頻1GHz。
(2)采用45nm低功率制程,CPU典型功耗為11mW。
(3)支持1GBDDR2。
(4)0.65mm引腳間距,17mm×17mmFBGA封裝。
(5)支持USBHost2.0、USBOTG2.0。
(6)4個SDIO/HS
MMC接口。
(7)支持MPEG-4/2/1、H.264/H263、VC-1、DivX的視頻編解碼1080P@30fps(1080P是指分辨率,1920×1080像素,兩者相乘就知道約等于200萬像素,如果購買數碼攝像機,動態像素達到200萬就能拍攝出1080P的高清視頻;30fps是指屏幕的播放刷新速度為1秒30幀)。
(8)支持2D圖形加速,最大支持8000×8000分辨率。
(9)支持3D圖形加速(PowerVRSGX540),OpenGL1.1&2.0、OpenVG1.0。
(10)支持SD/MMC/SDIO接口存儲卡,最高支持32GB。
(11)支持JPEG硬件編解碼,最大支持65536×65536分辨率。
(12)視頻硬件編解碼,支持1080P@30fps。
(13)HDMI、TVOUT、Camera×2。
5.1.2CVT-S5PV210教學平臺
1.CVT-S5PV210教學平臺硬件資源CVTS5PV210教學平臺硬件主要由三個部分組成:核心板、底板和邊板。
1)核心板核心板是嵌入式系統的最重要的組成部分,它由處理器、內存、閃存、電源電路、時鐘電路、CPU擴展接口組成。
(1)處理器:CVT-S5PV210教學平臺所用的CPU為三星公司的ARMCortex-A8處理器S5PV210,主頻最高可達1GHz。
(2)內存:本平臺采用三星公司的DDR2SDRAM芯片K4T1G164QQ,容量為1GB,它由8個Bank
組成,每個Bank對應8Mb×16。其特點為低功耗、1.8V低電壓工作;支持休眠功能;BGM封裝,有效降低了PCB的面積;接口設計方便。
(3)閃存:如圖5-1所示,本平臺選用三星的NANDFlash芯片K9F8G08U0M,SLC架構系列,1GB的存儲容量,為非易失性存儲器,其特點為功耗低、接口方便,易于擴充。圖5-1NANDFlash電路圖
(4)電源電路:如圖5-2所示,核心板電源電路選用高集成度的MAXIM公司的PMU芯片MAX8698C。它具有3路DC/DC(將一個固定的直流電壓變換為可變的直流電壓)和9路LDO電源,可實現電源管理的智能化和低功耗化。圖5-2核心板電源電路
(5)時鐘電路:如圖5-3所示,本系統核心板使用了四個無源晶振,連接到XXTI、XXTO上的24MHz提供給CPU內核使用;連接到XUSBXTI、XUSBXXTO上的24MHz提供給USB使用;連接到XHDMIXTI、XHDMIXTO上的27MHz提供給顯示組件;連接到XRTCXTI、XRTCXTO上的32.768kHz
提供給實時時鐘電路使用。圖5-3時鐘電路
(6)CPU擴展接口:用于將核心板和底板有效連接起來。采用Molex公司的0.635mm間距貼片插座,穩定可靠,整體高度大大降低,引出CPU的所有信號線,可擴展性高。
2)底板
底板作為CVT-S5PV210教學實驗系統常用外設的擴展板。它依托核心板,進行相應的功能擴展,引申出不同的外設功能,如音頻、視頻、網絡、攝像頭、Wi-Fi、指示及控制、數據采集等。
(1)底板電源:如圖5-4所示,底板采用LM2596系列開關穩壓集成電路,最高輸入電壓40V,最高輸出電流3A,工作頻率150kHz,轉換效率為75%~88%,正常工作溫度范圍為-40℃~+125℃,器件保護采用熱關斷及電流限制,控制方式為PWM。圖5-4電源模塊
(2)AV視頻輸入:通過視頻解碼芯片SAA7113H實現,它可以輸入4路模擬視頻信號,通過內部寄存器的不同配置可以對4路輸入進行轉換,輸入可以為4路CVBS或2路S
視頻(Y/C)信號,輸出8位VPO總線,為標準的ITU656、YUV4∶2∶2格式。
SAA7113H兼容PAL、NTSC、SECAM多種制式,可以自動檢測場頻適用的50Hz或60Hz,可以在PAL、NTSC之間自動切換。AV視頻輸入的原理圖如圖5-5所示。kHzY/C圖5-5AV視頻輸入的原理圖
(3)SD/MMC:CPU共給出了四組SDIO。本電路中用SDIO0作為系統啟動。SDIO2為正常的SD/MMC卡接口,SDIO3為Wi-Fi的數據線。電路中,數據線都需上拉10kΩ的電阻。判斷SD/MMC是否插入通過CDN來判定。SDIO3作為Wi-Fi用,就不需要此信號進行檢測。
SD/MMC電路原理圖如圖5-6所示。圖5-6SD/MMC電路原理圖
(4)音頻:音頻采用WM8580音頻CODEC芯片,WM8580是一款帶有S/PDIF收發器的多路音頻編碼解碼器,特別適用于DVD以及需要有環繞立體聲處理的家用高保真音響、汽車和其他視聽設備等應用。
(5)串口:串行通信接口,按電氣標準及協議來分包括RS-232C、RS-422、RS-485、USB等。USB是近幾年發展起來的新型串行接口標準,主要應用于高速數據傳輸領域。
圖5-7為串行接口電路原理圖。在串行接口電路中,UART2作為調試通信口用,UART0作為外設通信口或ZigBee模塊接口,UART1作為GPS的通信口,UART3為GPRS通信口。圖5-7串行接口電路原理圖
(6)網絡接口:網絡接口采用DM9000AEP網絡接口芯片。DM9000系列是完全綜合的、低成本的單一快速以太網控制器芯片,具有通用的處理器接口。DM9000AEP采用CPU的16位數據總線XM0DATA,16位地址總線XM0ADDR。電路原理圖如圖5-8所示。
圖5-8網絡接口
(7)USBHost:USB作為串行接口標準,主要應用于高速數據傳輸領域,支持熱插拔、即插即用,USB1.1的最高數據傳輸率為12Mb/s,USB2.0則提高到480Mb/s。
從圖5-9可知,一個USB的D+和D-通過USBHub就可以轉換成4個USB接口。在原理圖中,每個USB接口需要一個獨立的電源供電,且在PCB布線時要布為差分線,提高USB的靈敏度。
圖5-9USBHost接口原理圖
3)邊板
邊板作為嵌入式相關接口的擴展板,讓用戶可學習ARM+DSP雙處理器的方法,了解常用的控制單元如模擬電機及步進電機的控制,了解常用指示單元跑馬燈、7段數碼管、點陣LED等的控制,常用傳感器采集等。邊板也可選配GPS/GPRS模塊、RFID模塊。
(1)邊板電源電路設計。
邊板的大部分電路需要用到3.3V
電源,GPRS模塊需要用到4V
電源,這里采用從底板傳過來的12V
電源和5V
電源,利用DC/DC轉換芯片,分別轉換為4V
和3.3V
電源。
12V轉換為4V
電源電路如圖5-10所示,5V
轉換為3.3V
電源電路如圖5-11所示。圖5-115V
轉換為3.3V
電源電路
(2)邊板矩陣LED擴展電路設計。
①地址譯碼電路:用于產生控制步進電機、矩陣LED、7段數碼管、跑馬燈的不同的片選信號。地址譯碼電路如圖5-12所示。圖5-12地址譯碼電路
②矩陣LED控制電路如圖5-13所示。圖5-13矩陣LED控制電路
CVTS5PV210教學平臺實物圖如圖5-14所示。圖5-14CVTS5PV210教學平臺
2.CVT-S5PV210教學平臺軟件資源
1)支持GoogleAndroid2.3
(1)內核:Linux。
(2)系統引導程序:UBoot1.3.4。
(3)交叉編譯工具:ARM2009q3。
(4)文件系統格式:Ramdisk、YAFFS2。
(5)GUI:GoogleAndroid2.3。
(6)軟件功能支持1080P視頻播放,FlashPlayerV10.3網頁Flash播放,SD圖形顯示,HDMI1.3高清數字輸出;支持1080P,MP3、MP4、RMVB等格式的音視頻播放,騰訊QQ、Skype即時通信,常見Android游戲,GoogleAndroid2.3其他功能。
.
2)設備驅動
(1)無線Wi-Fi模塊:支持801.11b/g。
(2)無線藍牙模塊:支持藍牙通信。
(3)支持200萬像素COMS攝像頭驅動。
(4)GPS模塊:支持SIFⅢ全球定位。
(5)網口:10M/100M
自適應網口驅動。
(6)支持HDMI輸出,同時支持圖像和聲音。.
(7)I2
S音頻接口,支持音頻播放和錄音功能。
(8)支持LTE480WVGA(800×480)。
(9)四線電阻式觸摸屏驅動。
(10)I2C驅動:Audio、Camera、HDMI等的I2C驅動。
(11)USBHost驅動:支持USB鼠標、USB鍵盤、U
盤等。
(12)USBOTG驅動:支持Device功能,可與PC同步進行資料拷貝。
(13)掃描鍵盤驅動,實現Android常見按鍵功能。
(14)高速SD/MMC卡驅動。
(15)RTC驅動:支持實時時鐘。
(16)
MFC驅動:MultiFormatVideoCodec。
(17)UART驅動:支持串口通信。
(18)JPEG驅動:JPEGCodec。
(19)2D、3D硬件加速驅動。
5.2Eclipse集成開發環境
1)MDK-ARMMDK是專為MCU的用戶開發嵌入式軟件而設計的一套開發工具,支持ARM7、ARM9、CortexM3處理器,提供工業標準的編譯工具和強大的調試支持。它包括根據器件定制的調試仿真支持,豐富的項目模板,固件示例以及為內存優化的RTOS庫。
2)RVDS
RVDS是ARM公司繼SDT與ADS1.2之后主推的新一代開發工具,目前有RVDS4.1標準版和專業版2種版本。RVDS是專為SoC、FPGA以及ASIC用戶開發復雜嵌入式應用程序或者和操作系統平臺組件接口而設計的開發工具。RVDS支持器件設計,支持多核調試,支持基于所有ARM和Cortex系列CPU的程序開發。RVDS還可以和第三方軟件進行很好的連接。
RVDS包含有四個模塊:
(1)IDE:RVDS中集成了EclipseIDE,用于代碼的編輯和管理;支持語句高亮和多顏色顯示,以工程的方式管理代碼,支持第三方Eclipse功能插件。
(2)RVCT:RVCT是業界最優秀的編譯器,支持全系列的ARM和XSCALE架構,支持匯編、C和C++。
(3)RVD:RVD是RVDS中的調試軟件,功能強大,支持Flash燒寫和多核調試,支持多種調試手段,快速錯誤定位。
(4)RVISS:RVISS是指令集仿真器,支持外設虛擬,可以使軟件開發和硬件開發同步進行,同時可以分析代碼性能,加快軟件開發速度。
編譯器輸出的ELF格式的目標文件,包含調試信息。除此之外,編譯器可以輸出所生成的匯編語言列表文件。RVDS的編譯器根據最新的ARM架構進行特別的優化,針對每個ARM架構都提供最好的代碼執行性能和最優的代碼密度??梢愿鶕枰x擇調試信息級別以及不同的代碼優化方向和優化級別。
3)ARMDS-5
ARMDS-5從以下工具發展而來:DS-5—RVDS—ADS—SDT。目前RVDS、ADS和SDT都已經停止更新,新項目推薦使用向后兼容的DS-5。
ARMDS-5基于Eclipse集成開發環境。ARMDS-5使用ARM編譯器,代碼優化程度比GNU高30%以上。ARMDS-5配合DSTREAM仿真器、RVI仿真器、ULINKPRO仿真器、ULINKPROD仿真器進行內核和硬件調試。ARMDS-5配合gdbserver進行Linux應用調試。
4)Eclipse
Eclipse最初由OTI和IBM兩家公司的IDE產品開發組創建,起始于1999年4月。IBM提供了最初的Eclipse代碼基礎,目前,由IBM發起的Eclipse項目已經發展成為一個龐大的Eclipse聯盟,有150多家軟件公司參與到Eclipse項目中,其中包括Borland、RationalSoftware、RedHat、Sybase及Oracle等。
Eclipse是著名的開放源代碼、跨平臺的自由集成開發環境。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術項目三個項目組成,具體包括四個組成部分——EclipsePlatform、JDT、CDT和PDE。
5)AndroidStudio工具
在GoogleI/O2013開發者大會上,谷歌隆重推出了全新的AndroidIDE(集成開發環境)——AndroidStudio。AndroidStudio基于Jetbrains公司的標志性JavaIDE——IntelliJ(開發者社區開源版本)開發,該產品在功能和設計上別具匠心,可以讓開發者更容易地處理開發和布局設計工作。
為了簡化Android的開發力度,谷歌決定將重點建設AndroidStudio工具。谷歌將會全力專注于AndroidStudio編譯工具的開發和技術支持,中止為Eclipse提供官方支持,包括中止對EclipseADT插件以及AndroidAnt編譯系統的支持。
5.2.1Eclipse開發環境的安裝
打開光盤下的目錄,Eclipse開發環境配套軟件如表5-1所示。
1.安裝gcc編譯器
打開yagarto-bu-2.21_gcc-4.6.2-c-c++_nl-1.19.0_gdb-7.3.1_eabi_20111119.exe,這個工具為交叉編譯器。這里的安裝目錄需要記住,因為在后面的編譯過程中,需要使用對應的交叉編譯器。安裝目錄如圖5-15所示。圖5-15交叉編譯器安裝目錄
2.安裝GNUmake工具
打開yagarto-tools-20100703-Setup.exe,并安裝。
3.安裝FS-JTAG工具
FS-JTAG工具主要是用于仿真器連接目標A8實驗箱。打開Setup.exe。安裝過程如圖5-16所示。圖5-16JTAG調試工具安裝過程
4.安裝Java
開發包
打開jre6u7windowsi586-p-s.exe。如果電腦上已經安裝過Java此類的工具,則不需要再次安裝。
5.安裝Eclipse
解壓05.Eclipse-cpp-helios-SR1-win32.zip壓縮包,解壓完成后,找到當中的Eclipse.exe發送到桌面快捷方式,改名為Eclipse_c(這里的改名主要是為區別于Android高版本的Eclipse)。
打開Eclipse_c,設置過程如圖5-17所示,確定工作安裝目錄。圖5-17Eclipse工作目錄
如圖5-18所示,點擊最右邊的工作區按鈕,就進入到Eclipse_c
操作主界面。圖5-18Eclipse操作主界面
6.ARM仿真器驅動的安裝
如圖5-19所示,實驗選用Cortex-A8ARM仿真器,該款仿真器可以仿真Cortex-M3、ARM7、ARM9、ARM11、Cortex-A8等多個ARM處理器系列。它是一款基于開源的OpenOcd接口的仿真器,外觀和JLINK相同,并且提供良好的交互界面,有著很全的調試功能,再加上Eclipse這樣強大的集成開發環境,使得它同樣能成為工程師的首選。它既有USB特性,USB2.0全速接口、USB電源供電;又有JTAG特性,IEEE1149.1標準;支持燒寫NOR/NANDFlash。圖5-19仿真器實物
如圖5-20所示,把仿真器一端接入計算機USB口,會提示發現新硬件,選擇從列表或指定位置安裝,然后單擊下一步。
單擊下一步會出現選擇驅動安裝目錄,單擊瀏覽找到DRIVER所在的目錄。選擇好,單擊確定后,會提示沒有通過微軟認證,選擇“仍然繼續”。圖5-20仿真器驅動安裝過程
如果電腦裝的是Windows7操作系統,如圖5-21所示為ARM仿真器在Windows7操作系統下的安裝過程。
可在桌面選中“我的電腦”,點擊右鍵選擇屬性→硬件→設備管理器,在通用串行總線控制器目錄下選擇farsighe
JTAG、farsighe
Serial
Port的更新驅動程序選項。圖5-21Windows7下仿真器驅動安裝過程
5.2.2Eclipse的調試方法
1)指定一個工程存放目錄
EclipseforARM是一個標準的窗口應用程序,可以點擊程序按鈕開始運行。
2)創建一個工程
進入Eclipse主界面后,單擊File→New→C
Project菜單項,Eclipse將打開一個標準對話框,輸入希望新建工程的名字,單擊Finish即可創建一個新的工程,建議對每個新建工程使用獨立的文件夾。
3)新建一個MakeFile文件
在創建一個新的工程后,單擊File→New→Other,在彈出的對話框中的General下單擊file,然后單擊next。選擇所要指定的工程后,在文件名選框中輸入文件名MakeFile,然后單擊Finish。
4)新建一個腳本文件
單擊File→New→Other,在彈出的對話框中的General下單擊file,然后單擊Next,然后選擇所要指定的工程后,在文件名選框中輸入文件名s5pc210.init,單擊Finish。
5)新建一個匯編源文件
單擊File→New→Other,在彈出的對話框中的General下單擊file,然后單擊Next,然后選擇所要指定的工程后,在文件名選框中輸入文件名led.s,單擊Finish。
6)編譯工程
工程建立完成后,保存文檔,編譯Project→BulitAll工程如圖5-22所示。圖5-22工程編譯結果
5.2.3Eclipse調試工程過程
(1)在Eclipse
的菜單中單擊Run→DebugConfigurations,彈出如圖5-23對話框。圖5-23調試工具配置窗口
(2)單擊ZyinEmbeddeddebug選項,然后右擊選擇“NEW”出現如圖5-24所示窗口。在Main選項卡中的Project框中,點擊Browse選擇led工程,在C/C++Application中單擊Browse找到工程目錄下的led.elf文件。圖5-24Main選項卡中選擇led.elf文件
(3)如圖5-25所示,在Debugger選項卡的Main中,找到GDBdebugger,單擊Browse,選擇前面安裝的C:\ProgramFiles\yagarto\bin\arm-none-eabi-gdb.exe(此處選擇自己的安裝目錄),在GDBcommandfile中選擇自己工程目錄下的s5pc210.init文件。圖5-25選擇調試工具
(4)在Commands選項卡中輸入如圖5-26所示的調試命令。如果源程序為C
程序,第二行則改為breakmain,或者選中如圖5-25中的Stoponstartupat:main選項。最后再點擊Apply,確保上面四處配置都修改正確。圖5-26輸入調試命令
(5)配置FA-JTAG調試工具。
FA-JTAG仿真器兩端分別連接好電腦與CVT-A8實驗箱,實驗箱上電運行。先打開FA-JTAG調試工具,在Target選項中選擇s5pc100或者s5pc110,在WoekDirection選項中選擇工程目錄或者默認C:\android路徑,單擊Connect按鈕后,該按鈕會變為Disconnect。最后單擊Telnet按鈕(這一步可以跳過),將會彈出Telnet窗口,顯示“OpenOn-ChipDebugger>”,即表示已經連上目標板。出現如圖5-27所示的打印地址信息,即表示仿真器已經與目標實驗箱連接成功。圖5-27FA-JTAG調試工具顯示信息
(6)通過Eclipse開啟工程調試。上面已經點擊Apply按鈕后,此處點擊Debug按鈕開始調試運行,等待程序編譯下載完成自動彈出提示進入調試界面,如圖5-28所示。
程序會在斷點處停下,然后使用單步、stepover、stepin和全速等工具進行調試運行程序,點擊全速運行,會出現LED亮滅的實驗現象。圖5-28Eclipse調試界面
5.3S5PV210驅動仿真調試實驗
本節利用CVT-S5PV210教學平臺提供的實驗作為實驗素材,其實驗文檔如圖5-29所示。實驗內容包括gcd匯編程序實驗、asm1匯編程序實驗、C語言程序實驗、Led跑馬燈實驗、Seg數碼管實驗、Matrixled矩陣控制實驗、MotorStepper步進電機控制實驗、GpioLed控制實驗、gpioled_s實驗、Interrupt中斷實驗、PWM蜂鳴器實驗、Uart串口實驗、KeyPad鍵盤實驗。圖5-29實驗文檔
5.3.1GPIO控制LED實驗
1.實驗目的
(1)熟悉Eclipse開發環境。
(2)熟悉在ARM裸機環境下的C語言編程。
(3)熟悉CVTS5PV210下,GPIO控制LED的操作。
2.實驗內容
(1)編寫程序,練習C語言的使用。
(2)實現對開發板上GpioLed的控制。
(3)代碼分別在Eclipse的Debug環境下運行。
3.實驗設備
(1)硬件:CVT-S5PV210嵌入式教學實驗箱、PC機。
(2)軟件:PC機操作系統WindowsXP(Win7)+Eclipse開發環境。
4.實驗原理
GPIO,即通用I/O接口。在嵌入式系統中常常有數量眾多、結構卻比較簡單的外部設備/電路,對這些設備/電路,有的需要CPU為之提供控制手段,有的則作為CPU的輸入信號。而且,許多這樣的設備/電路只要求一位,即只要有開/關兩種狀態就夠了。比如控制某個LED燈的亮與滅,或者通過獲取某個引腳的電平狀態來達到判斷外圍設備的狀態。對這些設備/電路的控制,使用傳統的串口或并口都不合適。所以在微控制器芯片上一般都會提供一個“通用可編程I/O接口”,即GPIO。
1)S5PV210的GPIO特性
(1)146個可中斷通用控制I/O。
(2)32個可控外部中斷。
(3)237個多功能復用I/O引腳。(4)142個內存端口引腳。(5)休眠模式引腳狀態可控(除了GPH0、GPH1、GPH2和GPH3)。
2)GPIO分組及功能設定
3)GPIO常用寄存器
GPA0引腳有六個控制功能寄存器,前四個在正常模式下使用,后兩個是掉電模式用。
(1)GPA0控制寄存器。
在S5PV210中,大多數的引腳都可復用,所以必須對每個引腳進行配置。接口控制寄存器(GPNCON)定義了每個引腳的功能,如表5-3所示。
(2)GPA0數據寄存器。
如果接口被配置成了輸入接口,可以從GPNDAT的相應位讀出數據;如果接口被配置成了輸出接口,可以向GPNDAT的相應位寫數據(1:高電平,0:低電平);如果接口被配置成了其他功能引腳,則未定義的值將被讀取。表5-4所示為GPA0DAT數據寄存器。
(3)GPA0上/下拉寄存器。
表5-5所示為GPA0PUD寄存器。
圖5-30所示為上拉、下拉、高阻狀態示意圖。圖5-30上拉、下拉、高阻狀態示意圖
①上拉使能:輸出端相當于一個推挽輸出。
輸出端上拉可以增加輸出電流的能力,當ARM的IO端接的是OC或OD門時,如果不接上拉電阻是無法輸出高電平的,有了這個上拉寄存器,設計時該OC門就可以不接上拉電阻了。
②上拉禁止:輸出端相當于一個OC門或OD門。
IO的輸入輸出功能與上拉功能不沖突,一般IC設計時,上拉功能是有一定電流限制的,不會造成功能異常;不需要上拉的情況較復雜,例如作為A/D輸入接口時,就不應該上拉,以免影響實際的輸入電平;CPU低功耗睡眠狀態,上拉電阻也有可能切斷,降低功耗(這取決于不同芯片)。
(4)GPA0驅動能力控制寄存器。
當接口需要輸出外接發光二極管等器件時,可選用此功能增大接口的驅動能力,實現不同驅動能力(1mA、2mA、4mA、8mA)的IO驅動。表5-6所示為GPA0DRV寄存器。
(5)GPA0掉電模式配置寄存器(見表5-7)。
(6)GPA0掉電上/下拉寄存器(見表5-8)。
(7)GPIO中斷控制寄存器(見表5-9)。
GPIO中斷有22組,分別為GPA0、GPA1、GPB、GPC0、GPC1、GPD0、GPD1、GPE0、GPE1、GPE0、GPE1、GPE2、GPE3、GPG0、GPG1、GPG2、GPG3、GPJ0、GPJ1、GPJ2、GPJ3和GPJ4。
5.實驗電路
實驗電路如圖5-31所示。從電路圖上可以看到,發光二極管LED的一端連接到了ARM的GPIOGPH3,另一端經過一個限流電阻接電源VDD3.3V。圖5-31GPIO控制LED實驗電路圖
當GPIO口為低電平時,LED兩端產生電壓降,這時LED有電流通過并發光。反之當GPIO為高電平時,LED將熄滅。注意亮滅之間要有一定的延時,以便人眼能夠區分出來。
GPH3配置寄存器有四個,分別是GPH3CON控制寄存器、GPH3DAT數據寄存器、GPH3PUD上/下拉寄存器、GPH3DRV驅動能力控制寄存器。
6.實驗程序
7.實驗步驟
(1)首先打開Eclipse軟件,指定工作目錄。
(2)打開GpioLed工程,點擊工具欄的File,然后點擊Import;如圖5-32所示,點擊ExistingProjectintoWorkspace;再次點擊Browse按鈕,進入目錄D:\Eclipse_projects\Gpi?oled\;點擊Finish按鈕。圖5-32打開GpioLed工程
(3)把Makefile的LDPATH和COMMON換成自己的路徑:
(4)選中工程點右鍵,點擊“BulidProject”按鈕對工程編譯,生成GpioLed.elf文件,如圖5-33所示。圖5-33編譯成功提示
(5)連接好仿真器,實驗箱通電。打開FS-JTAG調試工具,連接成功。
(6)實驗現象。
觀察到GpioLed亮滅,流水閃亮,可以調節延遲時間實現快亮、慢亮。
5.3.2步進電機控制實驗
1.實驗目的
(1)熟悉Eclipse開發環境。
(2)熟悉在ARM裸機環境下的C語言編程。
(3)熟悉CVT-S5PV210下,步進電機的操作。
2.實驗內容
(1)編寫程序,練習C語言的使用。
(2)實現對開發板上步進電機的控制。
(3)代碼分別在Eclipse的Debug環境下運行。
3.實驗設備
(1)硬件:CVT-S5PV210嵌入式教學實驗箱、PC。
(2)軟件:PC機操作系統WindowsXP(Win7)+Eclipse開發環境。
4.實驗原理
步進電機是將電脈沖信號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,即給電機加一個脈沖信號,電機則轉過一個步距角。
步進電機實際上是一種單相或多相同步電動機。單相步進電動機由單路電脈沖驅動,輸出功率一般很小,其用途為微小功率驅動。多相步進電動機由多相方波脈沖驅動,用途很廣。使用多相步進電動機時,單路電脈沖信號可先通過脈沖分配器轉換為多相脈沖信號,在經功率放大后分別送入步進電動機各項繞組。每輸入一個脈沖到脈沖分配器,電動機各相的通電狀態就發生變化,轉子會轉過一定的角度(稱為步距角)。正常情況下,步進電機轉過的總角度和輸入的脈沖數成正比;連續輸入一定頻率的脈沖時,電動機的轉速與輸入脈沖的頻率保持嚴格的對應關系,不受電壓波動和負載變化的影響。由于步進電動機能直接接收數字量的輸入,所以特別適合于微機控制。
目前常用的步進電機有三類:
(1)反應式步進電動機。它的結構簡單,生產成本低,步距角可以做得相當小,但動態性能相對較差。
(2)永磁式步進電動機。它的出力大,動態性能好,但步距角一般比較大。
(3)混合步進電動機。它綜合了反應式和永磁式兩者的優點,步距角小,出力大,動態性能好,是性能較好的一類步進電動機。
1)步進電機的工作原理
現以反應式三相步進電機為例說明其工作原理。定子鐵心上有六個形狀相同的大齒,相鄰兩個大齒之間的夾角為60°。每個大齒上都套有一個線圈,徑向相對的兩個線圈串聯起來成為一項繞組。各個大齒的內表面上又有若干個均勻分布的小齒。轉子是一個圓柱形鐵心,外表面上圓周方向均勻地布滿了小齒。轉子小齒的齒距是和定子相同的。設計時應使轉子齒數能被二整除。
2)教學實驗系統中步進電機的控制
本教學實驗系統中使用的步進電機為四相式步進電機,但工作模式為兩相四拍。系統中采用74HC273鎖存芯片,將步進電機的相位信號進行鎖存,然后通過ULN2003驅動芯片,進入步進電機的各相繞組。
教學實驗系統中的電機有兩種工作模式:半步模式、整步模式。整步模式下的步距角為18°,半步模式則為9°,各模式下的脈沖信號及分配信號如圖5-34、圖5-35和表5-11、表5-12所示。圖5-34半步模式脈沖信號圖圖5-35整步模式脈沖信號圖
5.實驗電路原理圖
由圖5-36可知,經過74HC273鎖存后的信號輸出到ULN2003,由ULN2003芯片來驅動和控制電機??刂?4HC273的片選地址為0x88001000,D0~D3分別對應步進電機的MA、MB、MC、MD信號。圖5-36步進電機實驗電路原理圖
6.實驗程序
7.實驗步驟
(1)首先打開Eclipse軟件,指定工作目錄。
(2)打開MotorStepper工程,點擊工具欄的File,然后點擊Import。然后點擊ExistingProjectintoWorkspace。再次點擊Browse按鈕。如圖5-37所示,進入目錄D:\Eclipse_pro?jects\MotorStepper\。點擊Finish按鈕。成功添加工程到Eclipse中。圖5-37工程文檔目錄
(3)需要把Makefile的LDPATH和COMMON換成自己的路徑:
(4)點擊工程右鍵,點擊“BulidProject”按鈕,對工程進行編譯,生成MotorStepper.elf文件。編譯成功提示如圖5-38所示。圖5-38編譯結果
5.3.3串口通信實驗
1.實驗目的
(1)熟悉Eclipse開發環境。
(2)熟悉在ARM裸機環境下的C
語言編程。
(3)熟悉CVT-S5PV210下串口UART的操作。
2.實驗內容
(1)編寫程序,練習C語言的使用。
(2)實現對開發板上串口的控制。
(3)代碼分別在Eclipse的Debug環境下運行。
3.實驗設備
(1)硬件:CVT-S5PV210嵌入式教學實驗箱、PC。
(2)軟件:PC機操作系統WindowsXP(Win7)+Eclipse開發環境。
4.實驗原理
串行通信接口電路一般由可編程的串行接口芯片、波特率發生器、EIA與TTL電平轉換器以及地址譯碼電路組成。采用的通信協議有兩類:異步協議和同步協議。隨著大規模集成電路技術的發展,通用的同步和異步接口芯片種類越來越多,它們的基本功能是類似的。采用這些芯片作為串行通信接口電路的核心芯片,會使電路結構比較簡單。下面介紹異步串行通信的基本原理、串行接口的物理層標準以及串口控制器寄存器。
1)異步串行通信
異步串行通信方式是將傳輸數據的每個字符一位接一位(例如先低位、后高位)地傳送。數據的各不同位可以分時使用同一傳輸通道,因此串行I/O可以減少信號連線,最少用一對線即可進行。接收方對于同一根線上一連串的數字信號,首先要分割成位,再按位組成字符。為了恢復發送的信息,雙方必須協調工作。在微型計算機中大量使用異步串行I/O方式,雙方使用各自的時鐘信號,而且允許時鐘頻率有一定誤差,因此實現較容易。但是由于每個字符都要獨立確定起始和結束(即每個字符都要重新同步),字符和字符間還可能有長度不定的空閑時間,因此效率較低。
圖5-39給出了異步串行通信中一個字符的傳送格式。開始前,線路處于空閑狀態,送出連續“1”。傳送開始時首先發一個“0”作為起始位,然后出現在通信線上的是字符的二進制編碼數據。每個字符的數據位長可以約定為5位、6位、7位或8位,一般采用ASCII編碼,后面是奇偶校驗位。根據約定,用奇偶校驗位將所傳字符中為“1”的位數湊成奇數個或偶數個。如果也約定不要奇偶校驗,可取消奇偶校驗位。最后是表示停止位的“1”信號,這個停止位可以約定持續1位、1.5位或2位的時間寬度。一個字符傳送完畢,線路進入空閑,持續為“1”。經過一段隨機的時間后,下一個字符開始傳送才又發出起始位。每一個數據位的寬度等于傳送波特率的倒數。異步串行通信中,常用的波特率為4800、9600、115200b/s等。圖5-39串行通信字符格式
2)串行接口的物理層標準
通用的串行I/O接口有許多種,現就最常見的兩種標準作簡單介紹。
(1)RS-232C。
圖5-40分別給出了DB-25和DB-9的引腳定義,表5-13列出了引腳的名稱以及簡要說明。
圖5-41給出了兩臺微機利用RS-232C接口通信的兩種基本連接方式。圖5-41RS-232C連線圖
(2)信號電平規定。
RS-232C規定了雙極性的信號邏輯電平,采用的是負邏輯定義:
-3V到-15V之間的電平表示邏輯“1”;
+3V到+15V之間的電平表示邏輯“0”。
以上電平標準稱為EIA電平。
常用專門的RS232接口芯片,如SP3232、SP3220、MAX232、MC1488/1489等,在TTL電平和EIA電平之間實現相互轉換。
3)實驗使用寄存器
S5PV210芯片進行UART通信所涉及的寄存器有:引腳配置、線控寄存器、控制寄存器、FIFO控制寄存器等。
(1)UART線控寄存器ULCONn。
表5-14列出了ULCONn各位的含義,有ULCON0、ULCON1、ULCON2、ULCON3,地址分別為0x0E90_0000、0x0E90_0400、0x0E90_0800、0x0E90_0C00。該寄存器的位6決定是否使用紅外模式,位5~位3決定校驗方式,位2決定停止位長度,位1和位0決定每幀的數據位數。
(2)UART控制寄存器UCONn。
表5-15列出了UCONn各位的含義,有UCON0、UCON1、UCON2、UCON3,地址分別為0x0E900004、0x0E900404、0x0E900804、0x0E900C04。該寄存器對UART的工作時鐘、中斷類型、錯誤使能、工作模式等進行了配置表。
(3)FIFO控制寄存器UFCONn。
表5-16列出了UFCONn各位的意義,有UFCON0、UFCON1、UFCON2、UFCON3,地址分別為0x0E90_0008、0x0E90_0408、0x0E90_0808、0x0E90_0C08。該寄存器用于收發緩沖的管理,包括緩沖的觸發字節數的設置、FIFO的清除和使能。
(4)MODEM控制寄存器UMCONn。
表5-17列出了UFCONn各位的意義,有UMCON0、UMCON1、UMCON2,地址分別為0xE290_000C、0xE290_040C、0xE290_080C。該寄存器用于設置流控方式。在實驗中沒有使用流控。
(5)發送/接收狀態寄存器UTRSTATn。
表5-18列出了UTRSTATn各位的意義,寄存器可讀。有4個發送和接收寄存器UTRSTAT0、UTRSTAT1、UTRSTAT2、UTRSTAT3,地址分別為0xE290_0010、0xE290_0410、0xE290_0810、0xE290_0C10。
(6)錯誤狀態寄存器UERSTATn。
表5-19列出了UERSTATn各位的意義,寄存器可讀,它可以反映芯片當前的錯誤類型。有4個錯誤狀態寄存器UERSTAT0、UERSTAT1、UERSTAT2、UERSTAT3,地址分別為0xE290_0014、0xE290_0414、0xE290_0814、0xE290_0C14。
(7)FIFO狀態寄存器UFSTATn。
表5-20列出了UFSTATn各位的意義,寄存器可讀,通過它讀出目前FIFO是否滿以及其中的字節數。有三個FIFO狀態寄存器UFSTAT0、UFSTAT1、UFSTAT2,地址分別為0xE290_0018、0xE290_0418、0xE290_0818。
(8)發送緩沖寄存器UTXH和接收緩沖寄存器URXH。
表5-21和表5-22列出了UTXH和URXH各位的意義。這兩個寄存器存放著發送和接收的數據,當然只有一個字節8位數據。需要注意的是,在發生溢出錯誤時,接收的數據必須被讀出來,否則會引發下次溢出錯誤。發送緩沖寄存器有UTXH0、UTXH1、UTXH2、UTXH3,地址分別為0xE290_0020、0xE290_0420、0xE290_0820、0xE290_0C20,寄存器可寫。
(9)波特率分頻寄存器UBRDIVn。
表5-23列出了UBRDIVn各位的意義,該寄存器可讀寫。有四個波特率分頻寄存器UBRDIV0、UBRDIV1、UBRDIV2、UBRDIV3,地址分別為0xE290_0028、0xE290_0428、0xE290_0828、0xE290_0C28,可讀寫。
(10)UART通道波特率除數寄存器UDIVSLOTn。
表5-24列出了UDIVSLOTn各位的意義,該寄存器可讀寫。有四個波特率分頻寄存器UDIVSLOT0、UDIVSLOT1、UDIVSLOT2、UDIVSLOT3,地址分別為0xE290_002C、0xE290_042C、0xE290_082C、0xE290_0C2C。使用UDIVSLOT可以更精確地生產波特率。
(11)UART中斷等待寄存器UINTPn。
表5-25列出了UINTPn各位的意義,該寄存器可讀寫。有四個中斷等待寄存器UINTP0、UINTP1、UINTP2、UINTP3,地址分別為0xE290_0030、0xE290_0430、0xE290_0830、0xE290_0C30。如果以上4位中的某一位是邏輯1,則相應UART通道產生中斷。
(12)UART中斷源等待寄存器UINTSPn。
表5-26列出了UINTSPn各位的意義,該寄存器可讀寫。有四個中斷源等待寄存器UINTSPn、UINTSP1、UINTSP2、UINTSP3,地址分別為0xE290_0034、0xE290_0434、0xE290_0834、0xE290_0C34。中斷源等待寄存器包含產生的中斷信息,不論中斷屏蔽寄存器的值為多少。
(13)UART中斷屏蔽寄存器UINTMn。
表5-27列出了UINTMn各位的意義,該寄存器可讀寫。有四個中斷屏蔽寄存器UINTM0、UINTM1、UINTM2、UINTM3,地址分別為0xE290_0038、0xE290_0438、0xE290_0838、0xE290_0C38。
中斷屏蔽寄存器包含那些中斷源被屏蔽的信息。如果一個特定的位被設置為1,中斷控制器將不產生中斷請求信號,即使相應的中斷產生了。即使在這種情況下,所對應的位UINTSPn寄存器也被設置為1。如果屏蔽位是0,則對相應中斷源的中斷請求提供服務。如圖5-42所示為三種中斷寄存器之間的關系。圖5-42三種中斷寄存器之間的關系
5.實驗說明
串口在嵌入式系統中是一個重要的資源,常用作輸入輸出設備,在后續的實驗中將使用串口的功能。串口的基本操作有三個:串口初始化、發送數據和接收數據,這些操作都是通過訪問上面所述的串口控制寄存器進行,下面將分別說明。
端口配置寄存器設置參見表5-3,此處利用GPA0[1:0]引腳設置為UART_2_TXD、UART_2_RXD功能。實驗相應寄存器參照UART2的各類寄存器設置。
串行接口電路原理圖如圖5-7所示。UART2作為調試通信口用。UART0作為外設通信口或ZigBee模塊接口,UART1作為GPS的通信口,UART3為GPRS通信口。
(1)實驗Main.c程序如下:
(2)Uart.c如下:
6.實驗步驟
(1)首先打開Eclipse軟件,指定工作目錄。
(2)打開Uart工程,點擊工具欄的File,然后點擊Import;點擊ExistingProjectintoWorkspace;再點擊Browse按鈕,進入目錄D:\Eclipse_projects\Uart\;點擊Finish按鈕,成功添加工程到Eclipse中。
(3)編寫串口操作函數實現如下功能:循環接收串口送來的數據,并將接收到的數據發送回去。
(4)需要把Makefile的LDPATH和COMMON換成自己的路徑:
(5)編譯UART,生成uart.elf文件,如圖5-43所示。圖5-43程序工作目錄和編譯結果
(6)將計算機的串口接到開發板的UART0上。
(7)連接好仿真器,實驗箱通電。打開FS-JTAG調試工具,連接成功。設置DebugConfigurations。執行Debug后,Eclipse進入Debug調試界面,可以看到程序停在main()的位置。調試模式成功,全速運行。
(8)運行超級終端,選擇正確的串口號,并將串口設置為:波特率(115200)、奇偶校驗、數據位數(8)和停止位數(1),無流控,打開串口。
(9)實驗結果。
運行程序,在超級終端中鍵盤輸入的數據,將回顯到串口超級終端上,如圖5-44所示。圖5-44超級終端上顯示結果
5.4嵌入式Linux系統實驗
嵌入式Linux的應用領域非常廣泛,主要的應用領域有信息家電、PDA、機頂盒、智能手機、觸摸屏、數據網絡、以太網交換機、路由器、集線器、遠程訪問服務器、ATM取款機、遠程通信、醫療電子、交通運輸計算機外設、工業控制、航空航天領域等。
嵌入式Linux的優勢具體如下:
(1)Linux是開放源代碼的,不存在黑箱技術,遍布全球的眾多Linux愛好者又是Linux開發者的強大技術支持;
(2)Linux的內核小、效率高,內核的更新速度很快,Linux是可以定制的,其系統內核最小只有約134KB。
(3)Linux是免費的OS,在價格上極具競爭力。
(4)Linux還有著嵌入式操作系統所需要的很多特色,突出的就是Linux適應于多種CPU和多種硬件平臺,是一個跨平臺的系統。到目前為止,它可以支持二、三十種CPU。而且性能穩定,裁剪性很好,開發和使用都很容易。很多CPU包括家電業芯片,都開始做Linux的平臺移植工作。移植的速度遠遠超過Java的開發環境。也就是說,如果今天用Linux環境開發產品,那么將來更換CPU就不會遇到困擾。
(5)Linux內核的結構在網絡方面是非常完整的,Linux對網絡中最常用的TCP/IP協議有最完備的支持。提供了包括十兆、百兆、千兆的以太網絡以及無線網絡、Tokerring(令牌環網)、光纖甚至衛星的支持。所以Linux很適于做信息家電的開發。
(6)使用Linux來開發無線連接產品的開發者越來越多。Linux在快速增長的無線連接應用主場中有一個非常重要的優勢,就是有足夠快的開發速度。這是因為Linux有很多工具,并且Linux為眾多程序員所熟悉。
5.4.1BootLoader實驗
1.實驗目的
(1)了解BootLoader在嵌入式系統中的作用。
(2)熟悉UbuntuLinux主機環境。(2)熟悉U-Boot編譯方法,掌握U-Boot的基本功能、操作。
2.實驗內容
(1)學習UBoot的基礎知識和常用命令,并按照實驗步驟實踐UBoot的用法。
(2)編譯引導Linux系統的BootLoader。
3.實驗設備
(1)硬件:CVT-A8系列實驗箱,電腦(帶串口)。
(2)軟件:PC機操作系統、Ubuntu系統環境。
4.實驗原理
1)BootLoader的概念回憶一下PC的體系結構可知,PC機中的引導加載程序由BIOS(其本質就是一段固件程序)和位于硬盤MBR中的引導程序一起組成。BIOS在完成硬件檢測和資源分配后,將硬盤MBR中的引導程序讀到系統的RAM中,然后將控制權交給引導程序。引導程序的主要運行任務就是將內核映象從硬盤上讀到RAM中,然后跳轉到內核的入口點去運行,也即開始啟動操作系統。
簡單地說,BootLoader就是在操作系統內核或用戶應用程序運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,以便為最終調用操作系統內核或用戶應用程序準備好正確的環境。對于一個嵌入式系統來說,可能有的包括操作系統,有的小型系統也可能只包括應用程序,但是在這之前都需要Boot
Loader為它準備一個正確的環境。通常,BootLoader是依賴于硬件而實現的,特別是在嵌入式領域,為嵌入式系統建立一個通用的BootLoader是很困難的。當然,我們可以歸納出一些通用的概念來,以便我們了解特定BootLoader的設計與實現。
(1)BootLoader的移植和修改。
每種不同的CPU體系結構都有不同的BootLoader。除了依賴于CPU的體系結構外,BootLoader實際上也依賴于具體的嵌入式板級設備的配置,比如板卡的硬件地址分配,RAM芯片的類型,其他外設的類型等。對于兩塊不同的嵌入式板而言,即使它們是基于同一種CPU而構建的,如果他們的硬件資源和配置不一致的話,要想讓運行在一塊板子上的BootLoader程序也能運行在另一塊板子上,也還是需要作一些必要的修改。
(2)BootLoader的安裝。
系統加電或復位后,所有的CPU通常都從CPU制造商預先安排的地址上取指令。比如,S3C2410X在復位時都從地址0x00000000取它的第一條指令。而嵌入式系統通常都有某種類型的固態存儲設備(比如:ROM、E2PROM或Flash等)被安排在這個起始地址上,因此在系統加電后,CPU將首先執行BootLoader程序。也就是說對于基于S3C2410X的這套系統,我們的BootLoader是從0地址開始存放的,而這塊起始地址需要采用可引導的固態存儲設備如Flash。
(3)用來控制BootLoader的設備或機制。
串口通信是最簡單也是最廉價的一種雙機通信設備,所以往往在BootLoader中主機和目標機之間都通過串口建立連接,BootLoader程序在執行時通常會通過串口來進行I/O,比如:輸出打印信息到串口,從串口讀取用戶控制字符等。當然如果認為串口通信速度不夠,也可以采用網絡或者USB通信,那么相應的在BootLoader中就需要編寫各自的驅動。
(4)BootLoader的啟動過程。
多階段的BootLoader能提供更為復雜的功能,以及更好的可移植性。從固態存儲設備上啟動的BootLoader大多都是2階段的啟動過程,即啟動過程可以分為stage1和stage2兩部分,具體功能將在下一節介紹。
(5)BootLoader的操作模式。
大多數BootLoader都包含兩種不同的操作模式:啟動加載模式和下載模式,這種區別僅對于開發人員才有意義。但從最終用戶的角度看,BootLoader的作用就是用來加載操作系統,而并不存在所謂的啟動加載模式與下載工作模式的區別。
啟動加載模式:這種模式也稱為"自主"模式,即BootLoader從目標機上的某個固態存儲設備上將操作系統加載到RAM中運行,整個過程并沒有用戶的介入。這種模式是BootLoader的正常工作模式,因此在嵌入式產品發布的時候,BootLoader顯然必須工作在這種模式下。
(6)BootLoader與主機之間進行文件傳輸所用的通信設備及協議。
最常見的情況就是,目標機上的BootLoader通過串口與主機之間進行文件傳輸,傳輸可以簡單的采用直接數據收發,當然在串口上也可以采用xmodem/ymodem/zmodem協議以及在以太網上采用TFTP協議。
(7)通常一個嵌入式BootLoader提供以下特征:
①初始化硬件,尤其是內存控制器。
②提供Linux內核的啟動參數。
③啟動Linux內核。
此外,大多數BootLoader也提供簡化開發過程的特征,具體如下:
①讀寫存儲器。
②通過串口或者以太網口上載新的二進制映像文件到目標板的RAM。
③從RAM中拷貝二進制映像文件到FLASH存儲器中。
2)U-Boot簡介
U-Boot,全稱UniversalBootLoader,是遵循GPL條款的開放源碼項目。從FADSROM、8xxROM、PPCBOOT逐步發展演化而來。U-Boot是開放源碼的,支持多種嵌入式操作系統內核,如Linux、NetBSD、VxWorks、QNX、RTEMS、ARTOS、LynxOS;支持多個處理器系列,如PowerPC、ARM、x86、MIPS、XScale;具有較高的可靠性和穩定性,高度靈活的功能設置,適合U-Boot調試、操作系統不同引導要求、產品發布;具有豐富的設備驅動源碼,如串口、以太網、SDRAM、Flash、LCD、NVRAM、E2PROM、RTC、鍵盤等;具有較為豐富的開發調試文檔與強大的網絡技術支持。
U-Boot的源碼目錄、編譯形式與Linux內核很相似,事實上,不少U-Boot源碼就是相應的Linux內核源程序的簡化,尤其是一些設備的驅動程序,U-Boot源碼的注釋中能體現這一點。U-Boot的用戶接口類似于Linux的shell界面,通過串口連接以后,用戶可以交互式輸入命令和看到結果。U-Boot的啟動界面如圖5-45所示。圖5-45UBoot的啟動界面
3)U-Boot環境變量
U-Boot環境被保存于非易失性存儲器(如Flash)的一段區域,當U-Boot啟動的時候被拷貝到RAM。它用于保存配置系統的環境變量。U-boot環境采用CRC32校驗和保護。本節列舉了大多數重要的環境變量。
用戶可以使用以下這些變量配置U-Boot:
(1)baudrate:控制臺波特率的十進制數值。當使用“setenvbaudrate...”命令改變波特率時,U-Boot將切換控制臺終端的波特率并在進入新的速度設置后等待一個換行符。如果失敗,將不得不復位目標板(由于沒有保存新的設置,因此系統將保持老的波特率),如果沒有“baudrate”變量被定義,缺省的波特率是115200。
(2)bootcmd:改變量定義一個命令字符串,當初始化倒數計時沒有被中斷時,該字符串將被自動執行。該命令僅僅在bootdelay也被定義時被執行。
(3)bootdelay:系統復位后,在執行bootcmd變量的內容前,UBoot將等待bootdelay秒。在這段時間,將顯示倒計時,可以通過按下任意鍵中斷bootcmd的運行。如果希望不作任何延時請設置該變量為0。
(4)ethaddr:第一個以太網接口的以太網MAC地址(Linux中的eth0)。該變量只能被
設置一次,U-Boot拒絕在設置后輸出或者覆蓋該變量。
(5)ipaddr:本機IP地址,tftp命令使用。
(6)serverip:TFTP服務器IP地址,tftp命令需要。
(7)bootlinux:從flash引導Linux系統啟動。
(8)bootandroid:從flash引導Android系統啟動。
(9)loadlinuxramdisk:從網絡TFTP服務器下載內核、RamDisk文件系統到內存中,并且運行下載的Linux系統。
(10)burnlinuxzImage:燒寫sd卡中的zImge文件到Flash中的Kernel區。
5.實驗步驟
(1)把PC電腦的串口連接到實驗設備的串口2。
(2)打開超級終端(Windows系統自帶的超級終端也行),按照提示選擇115200波特率、8位數據位、1位停止位、無奇偶校驗。
(3)實驗箱通電,可以看到超級終端顯示如圖5-46所示。圖5-46超級終端顯示界面
(4)在“Hitanykeytostopautboot:1”倒數到0之前,點擊鍵盤的任意按鍵,進入UBoot命令行狀態。
(5)U-Boot基本命令實驗。如圖5-47及圖5-48所示,分別在U-Boot中輸入如下命令,并觀察實驗結果:圖5-47打印目標板配置信息界面圖5-48打印目標板環境變量信息界面
(6)tftp程序下載和引導操作實驗。
首先打開tftp服務器,指定下載文件的目錄。
tftp服務器準備完成后,用網線連接PC與實驗箱的網口,在超級終端中輸入命令:
(7)U-Boot
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《母親家活動策劃書》課件
- 2024年11月社區護理試題+答案(附解析)
- 10月高級養老護理員練習題庫及答案(附解析)
- 裝潢設計在數碼產品包裝的未來感考核試卷
- 電子節能照明設備環保認證考核試卷
- 教育技術學的理論基礎
- 臺州網絡安全運維招聘注意事項信息
- 各國學前教育體系比較研究
- 《復習指南:出師表》課件
- 電力設備故障預測分析考核試卷
- 廠區保安培訓試題及答案
- 資質掛靠設計院合同協議
- 2025年海淀高三二模語文試題及答案
- 新聞記者職業資格2024年筆試考試題庫含答案
- 2025-2030中國食品中的X射線檢查系統行業市場發展趨勢與前景展望戰略研究報告
- 豌豆上公主PPT課件
- 艾滋病防治條例PPT課件
- 學生入團申請推薦表
- 當代教育心理學(陳琦劉儒德主編第二版)章節總結
- 七年級數學下冊第5章軸對稱與旋轉單元綜合測試卷新版湘教版
- 渡槽設計計算書
評論
0/150
提交評論