信息與通信BootLoader與設(shè)備驅(qū)動_第1頁
信息與通信BootLoader與設(shè)備驅(qū)動_第2頁
信息與通信BootLoader與設(shè)備驅(qū)動_第3頁
信息與通信BootLoader與設(shè)備驅(qū)動_第4頁
信息與通信BootLoader與設(shè)備驅(qū)動_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

[信息與通信]BootLoader與設(shè)備驅(qū)動第一頁,共64頁。4.1嵌入式系統(tǒng)的產(chǎn)生和發(fā)展

嵌入式軟件的體系結(jié)構(gòu)包括驅(qū)動層、操作系統(tǒng)層、中間件層和應(yīng)用層,如下圖所示。第二頁,共64頁。驅(qū)動層軟件分為三種類型:板級初始化程序:在系統(tǒng)上電后,初始化系統(tǒng)的硬件環(huán)境。與系統(tǒng)軟件相關(guān)的驅(qū)動程序:用于支持操作系統(tǒng)和中間件等系統(tǒng)軟件所需的驅(qū)動程序。與應(yīng)用軟件相關(guān)的驅(qū)動程序:這類驅(qū)動不一定需要與操作系統(tǒng)連接。第三頁,共64頁。4.2BootLoader4.2.1BootLoader概述4.2.2BootLoader的典型結(jié)構(gòu)4.2.3實例分析第四頁,共64頁。4.2.1BootLoader概述4.2BootLoader

BootLoader是系統(tǒng)加電后首先運(yùn)行的一段程序代碼,其目的是將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),為調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。第五頁,共64頁。BootLoader是依賴于目標(biāo)硬件實現(xiàn)的,可以從兩個方面來理解:每種嵌入式微處理器體系結(jié)構(gòu)都有不同BootLoader.BootLoader還依賴于具體的嵌入式板級硬件設(shè)備配置。第六頁,共64頁。1BootLoader的安裝4.2.1BootLoader概述

BootLoader需要放在系統(tǒng)加電后最先取指令的地址上,很多情況下,BootLoader與操作系統(tǒng)內(nèi)核、根文件系統(tǒng)甚至應(yīng)用程序等都可以燒寫在同一個固態(tài)存儲芯片上的。第七頁,共64頁。2BootLoader的操作模式4.2.1BootLoader概述

大多數(shù)BootLoader都包含兩種操作模式:啟動加載模式和下載模式。啟動加載模式:也稱為自主(Autonomous)模式。在這種模式下,BootLoader從目標(biāo)機(jī)的某個固態(tài)存儲設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個過程中沒有用戶的介入。第八頁,共64頁。下載模式:下載模式是指,目標(biāo)機(jī)上的BootLoader將通過串口或網(wǎng)絡(luò)連接等通信手段從宿主機(jī)上下載文件,如操作系統(tǒng)的內(nèi)核映像和根文件系統(tǒng)的映像等。第九頁,共64頁。3BootLoader的控制設(shè)備和機(jī)制4.2.1BootLoader概述串口通信:串口通信最容易實現(xiàn)。BootLoader程序在執(zhí)行時也就可以利用這個簡單實現(xiàn)的串口通信進(jìn)行I/O操作,與外界交換數(shù)據(jù)和信息。TFTP(網(wǎng)絡(luò)):在BootLoader中實現(xiàn)TFTP協(xié)議,在宿主機(jī)上利用TFTP的軟件工具,通過以太網(wǎng)連接來下載文件。第十頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)4.2BootLoader

BootLoader的主要任務(wù)就是要建立起調(diào)用操作系統(tǒng)系統(tǒng)內(nèi)核、運(yùn)行用戶應(yīng)用程序所需要的一個良好的軟硬件環(huán)境。這個任務(wù)具體包括兩部分的內(nèi)容:

硬件設(shè)備初始化建立內(nèi)存空間的映射圖

第十一頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)BootLoader的啟動過程

(1)初始化CPU在各種模式下的堆棧空間設(shè)定CPU的內(nèi)存映射初始化各種控制寄存器初始化CPU的外部存儲器設(shè)定各外圍設(shè)備的基地址第十二頁,共64頁。創(chuàng)建正確的中斷向量表為C代碼執(zhí)行創(chuàng)建ZI(零創(chuàng)建)區(qū)進(jìn)入到C代碼。在C代碼中繼續(xù)對時鐘、RS232端口進(jìn)行初始化,然后打開系統(tǒng)中斷允許位。進(jìn)入到應(yīng)用代碼中執(zhí)行,執(zhí)行期間響應(yīng)各種不同的中斷信號并調(diào)用預(yù)先設(shè)置好的中斷服務(wù)程序處理這些中斷。第十三頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)BootLoader的啟動過程

(2)整個過程的流程圖第十四頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)1堆棧初始化堆棧初始化要處理的事情是為處理器的7種處理器模式(p37)分配堆??臻g。下面以FIQ模式下的堆棧設(shè)置為例進(jìn)行說明:第十五頁,共64頁。ORRR1,R0,#LOCKOUT|FIQ_MODE;把處理器模式放在R1中;LOCKOUT用來屏蔽中斷位MSRCPSR,R1;改變CPU的CPSR寄存器;進(jìn)入到指定的FIQ模式MSRSPSR,R2 ;保存前一模式LDRSP,=FIQ_STACK;把FIQ模式下的堆棧起始;值賦給當(dāng)前的SP ;FIQ_STACK是分配給FIQ;模式堆??臻g(比如說1K;字節(jié))的起始地址第十六頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)2DRAM初始化

DRAM的初始化是根據(jù)系統(tǒng)配置信息決定的。主要的處理內(nèi)容是ROM和RAM基地址的設(shè)定、數(shù)據(jù)總線寬度的設(shè)定、SDRAM刷新時間的設(shè)定等,這些設(shè)置可以參照S3C4510B芯片的用戶手冊。第十七頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)3設(shè)置特殊寄存器

特殊寄存器的設(shè)置主要是針對I/O口的。寄存器的設(shè)定主要根據(jù)硬件的配置情況而定。由于啟動代碼是燒錄到ROM中的,而中斷向量必須位于零地址,所以在存儲單元沒有重新映射之前ROM基址的設(shè)定應(yīng)該為零地址。第十八頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)4拷貝鏡像文件

拷貝鏡像文件的目的主要是為了提高運(yùn)行速度。將編譯生成的映像文件代碼從ROM拷貝到RAM中,程序的執(zhí)行也就在RAM中了。第十九頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)4內(nèi)存初始化

內(nèi)存初始化的目的是為C代碼的運(yùn)行開辟內(nèi)存區(qū)。分為:只讀區(qū),可讀/可寫區(qū),零初始化區(qū)。

內(nèi)存初始化處理的內(nèi)容是:(1)當(dāng)只讀區(qū)截止地址等于可讀/可寫區(qū)基址時,把零初始化區(qū)各字節(jié)清零;只讀區(qū)可讀/可寫區(qū)地址零初始化區(qū)第二十頁,共64頁。(2)當(dāng)只讀區(qū)截止地址不等于可讀/可寫區(qū)基址時,①如果可讀/可寫區(qū)基址小于零初始化基址,就從只讀區(qū)截止地址處開始把數(shù)據(jù)拷貝到可讀可寫區(qū)基址處,直到到達(dá)零初始化基址,然后把零初始化區(qū)各字節(jié)清零。只讀區(qū)可讀/可寫區(qū)地址范圍中的數(shù)據(jù)零初始化區(qū)地址范圍中的數(shù)據(jù)清零第二十一頁,共64頁。②否則(如果可讀/可寫區(qū)基址大于或等于零初始化基址)也只用把零初始化區(qū)各字節(jié)清零。只讀區(qū)可讀/可寫區(qū)零初始化區(qū)清零第二十二頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)5建立中斷向量表

中斷向量表用于處理異常情況,當(dāng)發(fā)生異常時,首先要保存當(dāng)前程序的返回地址和CPSR寄存器的值,然后進(jìn)入到相應(yīng)的異常向量地址。

第二十三頁,共64頁。ENTRYB Reset_Handler ;系統(tǒng)復(fù)位,通過這個跳轉(zhuǎn)指令進(jìn)入堆棧初始化操作B Undefined_Handler ;未定義異常向量B SWI_Handler;軟中斷異常向量B Prefetch_Handler ;預(yù)取指異常向量B Abort_Handler ;中止異常向量NOP ;保留B IRQ_Handler ;IRQ中斷向量B FIQ_Handler ;FIQ中斷向量(快速響應(yīng)用戶中;斷,支持高速數(shù)據(jù)傳輸)跳轉(zhuǎn)指令地址依次+4第二十四頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)6系統(tǒng)重新映射系統(tǒng)重新映射與前面鏡像文件的拷貝有關(guān)。當(dāng)為了提高運(yùn)行速度把ROM的鏡像文件拷貝到RAM后,中斷向量表就不在零地址處了,因此要重新映射存儲單元,把RAM的地址重新設(shè)定為零地址。為什么要系統(tǒng)重新映射?第二十五頁,共64頁。整個過程是把啟動代碼從ROM(EEPROM或者Flash)拷貝到SDRAM運(yùn)行,同時在拷貝完畢后進(jìn)行內(nèi)存的重新映射,把SDRAM映射到原來的ROM地址(0x00000000)中,這樣就可以用SDRAM中的代碼寫Flash,使得程序代碼得以更新。第二十六頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)7

切換到用戶模式,進(jìn)入C代碼區(qū)CPU切換到用戶模式下,并把堆棧指針SP指定到用戶堆棧區(qū),就可以進(jìn)入到C代碼區(qū)運(yùn)行。在C代碼中繼續(xù)對時鐘、RS232端口進(jìn)行初始化,然后打開系統(tǒng)中斷允許位,進(jìn)入到應(yīng)用代碼中執(zhí)行。第二十七頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)BootLoader結(jié)構(gòu)

從程序結(jié)構(gòu)上來講,BootLoader一般都分:

Stage1:存放依賴于CPU體系結(jié)構(gòu)的代碼,如設(shè)備初始化代碼等,通常使用匯編語言來實現(xiàn),達(dá)到短小精悍的目的。

Stage2:用來實現(xiàn)復(fù)雜功能,通常使用C語言來實現(xiàn),使代碼具有更好的可移植性。第二十八頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)1Stage1Stage1部分的代碼按照執(zhí)行的先后順序,通常包括以下步驟:硬件設(shè)備初始化為加載Stage2程序準(zhǔn)備RAM空間拷貝Stage2程序到RAM空間設(shè)置好堆棧跳轉(zhuǎn)到Stage2的C程序入口點第二十九頁,共64頁。4.2.2BootLoader的典型結(jié)構(gòu)2Stage2Stage2部分的代碼通常包括以下步驟:初始化本階段用到的硬件設(shè)備,如RS232檢測系統(tǒng)內(nèi)存映射將操作系統(tǒng)內(nèi)核映像和根文件系統(tǒng)映像從Flash讀到RAM空間中為操作系統(tǒng)內(nèi)核設(shè)置啟動參數(shù)調(diào)用操作系統(tǒng)內(nèi)核第三十頁,共64頁。4.2.3實例分析4.2BootLoader

本小節(jié)使用基于ARM7TDMI內(nèi)核的S3C44B0X為例詳細(xì)介紹BootLoader的設(shè)計與實現(xiàn)。

與S3C4510B有區(qū)別的是:S3C44B0X沒有存儲器重映射的功能,所有存儲區(qū)地址固定;另外,S3C44B0X提供了矢量中斷的功能,擴(kuò)展了向量表第三十一頁,共64頁。4.2.3實例分析硬件初始化程序(1)說明:硬件初始化程序編譯環(huán)境:ADS1.2***************************************存儲器空間;GCS6 64M16bit(8MB)DRAM/SDRAM(0xC000000-0xC7FFFFF);APP RAM=0xC000000~0xC7EFFFF;44BMON RAM=0xC7F0000-0xC7FFFFF

(對于不同的RAM,可以修改此地址);STACK RAM=0xC7FFA00第三十二頁,共64頁。4.2.3實例分析中斷控制預(yù)定義

INTPND EQU 0x01E00004INTMOD EQU 0x01E00008INTMSK EQU 0x01E0000CI_ISPREQU0x01E00020I_CMST EQU 0x01E0001CI_ISPCEQU0x01E00024********************************************看門狗定時器預(yù)定義WTCON EQU 0x01D30000********************************************第三十三頁,共64頁。4.2.3實例分析初始化程序開始EXPORT InitSystem禁止看門狗

LDR R0,=WTCONLDR R1,=0STRR1,[R0]第三十四頁,共64頁。4.2.3實例分析

初始化堆棧

MRS R0,CPSR BIC R0,R0,#MODEMASK

ORR R1,R0,#UNDEFMODE|NOINT MSR CPSR_CXSF,R1 ;UndefMode LSR SP,=UndefStack

ORR R1,R0,#ABORTMODE|NOINT MSR CPSR_CXSF,R1 ;AbortMode LSR SP,=AbortStack第三十五頁,共64頁。4.2.3實例分析

ORR R1,R0,#IRQMODE|NOINT MSR CPSR_CXSF,R1 ;IRQMode LSR SP,=IRQStack ORR R1,R0,#FIQMODE|NOINT MSR CPSR_CXSF,R1 ;FIQMode LSR SP,=FIQStack第三十六頁,共64頁。4.2.3實例分析

ORR R1,R0,#SVCMODE|NOINT MSR CPSR_CXSF,R1 ;SVCMode LSR SP,=SVCStack

;USERmodeisnotinitialized.第三十七頁,共64頁。4.3.1設(shè)備驅(qū)動概述4.3設(shè)備驅(qū)動

使用任何外部設(shè)備都需要有相應(yīng)驅(qū)動程序的支持。驅(qū)動程序為上層軟件提供設(shè)備的操作接口。

驅(qū)動層軟件有兩個重要的概念:硬件抽象層(HAL,HardwareAbstractionLayer)和板級支持包(BSP,BoardSupportPackage)。

第三十八頁,共64頁。硬件抽象層4.3.1設(shè)備驅(qū)動概述

硬件抽象層的目的是為了將硬件抽象化,即通過程序來控制諸如CPU、I/O、存儲器等硬件的操作,從而使得系統(tǒng)的設(shè)備驅(qū)動程序與硬件無關(guān)。

第三十九頁,共64頁。板級支持包(1)4.3.1設(shè)備驅(qū)動概述設(shè)計板級支持包的目的主要是為驅(qū)動程序提供訪問硬件設(shè)備寄存器的函數(shù)包,從而實現(xiàn)對操作系統(tǒng)的支持。在功能上,板級支持包大體需要實現(xiàn)以下兩方面的內(nèi)容:

在系統(tǒng)啟動時,完成對硬件的初始化。

為驅(qū)動程序提供訪問硬件的手段。

第四十頁,共64頁。

通用異步收發(fā)器(UniversalAsynchronousReceiverandTransmitter,UART)是用于控制計算機(jī)與串行設(shè)備的接口。UART的介紹第四十一頁,共64頁。應(yīng)用示例LPC2000的I/O電壓為3.3V(可承受5V),連接時須注意電平的匹配。LPC2000其它通信設(shè)備TxD0RxD0TxD0RxD0與PC機(jī)相連時,由于PC機(jī)串口是RS232電平,所以連接時需要使用RS232轉(zhuǎn)換器。LPC2000PC機(jī)串口232電平轉(zhuǎn)換TxD0RxD0TxD0RxD0第四十二頁,共64頁。移位寄存器UnRSR接收緩沖寄存器UnRBRUARTn接收單元RxDn除數(shù)鎖存寄存器UnDLL、UnDLMUARTn波特率發(fā)生器UARTn控制寄存器(UnLCR)FIFO控制寄存器(UnFCR)UARTn狀態(tài)寄存器(UnLSR)中斷中斷使能寄存器UnIER中斷標(biāo)志寄存器UnIIRUARTn高速緩存寄存器UnSCR發(fā)送緩沖寄存器UnTHRUARTn發(fā)送單元TxDn移位寄存器UnTSRMODEMModem控制寄存器U1MCRModem狀態(tài)寄存器U1MSRCTSDSRDCDDTRRIRTSVPB總線第四十三頁,共64頁。VPB總線AHB-VPB橋ARM7UARTn發(fā)送單元TxDn移位寄存器UnTSR發(fā)送緩沖寄存器UnTHRAHB總線ARM7AHB總線UARTn發(fā)送單元TxDn移位寄存器UnTSR發(fā)送緩沖寄存器UnTHRVPB總線AHB-VPB橋CPUUnTSRTXDUnTHRUnTHR描述復(fù)位值7:0發(fā)送器保持寄存器。寫入該寄存器的值保存到發(fā)送FIFO中,當(dāng)該字節(jié)到達(dá)FIFO底部時,它將被送入發(fā)送移位寄存器(UnTSR)進(jìn)行發(fā)送。未定義UART發(fā)送單元第四十四頁,共64頁。UART0、UART1各含有1個16字節(jié)的發(fā)送FIFO緩沖區(qū)。UnTHR是UARTn發(fā)送FIFO的最高字節(jié)。UART的發(fā)送FIFO是一直使能的。發(fā)送FIFOUnTHRUnTSRUART發(fā)送FIFO緩沖區(qū)第四十五頁,共64頁。VPB總線AHB-VPB橋ARM7AHB總線移位寄存器UnRSR接收緩沖寄存器UnRBRUARTn接收單元RxDnVPB總線AHB-VPB橋移位寄存器UnRSR接收緩沖寄存器UnRBRUARTn接收單元RxDnARM7AHB總線RXDUnRBRCPUUnRSRUnRBR描述復(fù)位值7:0接收緩存寄存器,它包含了接收FIFO中最早接收到的字節(jié)未定義UART接收模塊第四十六頁,共64頁。UART0、UART1各含有1個16字節(jié)的接收FIFO緩沖區(qū)。軟件設(shè)置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。位76[5:3]210功能Rx觸發(fā)點設(shè)置—復(fù)位TxFIFO復(fù)位RxFIFO使能FIFOEnFIFO:FIFO使能。該位的任何變化都將清空UART的FIFO。1:使能接收FIFO,并且允許訪問UnFCR[7:1]。0:禁止接收FIFO,此時接收緩存只有1個字節(jié)。接收FIFOUnRSRUnRBRUnFCRUART接收FIFO緩沖區(qū)第四十七頁,共64頁。UART0、UART1各含有1個16字節(jié)的接收FIFO緩沖區(qū)。軟件設(shè)置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。位76[5:3]210功能Rx觸發(fā)點設(shè)置—復(fù)位TxFIFO復(fù)位RxFIFO使能FIFO接收FIFOUnRSRUnRBRUnFCR復(fù)位RxFIFO:接收FIFO復(fù)位。當(dāng)該位置位時,UART0接收FIFO中的所有字節(jié)被清零并復(fù)位指針邏輯注意:該位會自動清零。UART接收FIFO緩沖區(qū)第四十八頁,共64頁。UART0、UART1各含有1個16字節(jié)的接收FIFO緩沖區(qū)。軟件設(shè)置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。位76[5:3]210功能Rx觸發(fā)點設(shè)置—復(fù)位TxFIFO復(fù)位RxFIFO使能FIFO接收FIFOUnRSRUnRBRUnFCR復(fù)位TxFIFO:發(fā)送FIFO復(fù)位。當(dāng)該位置位時,UART發(fā)送FIFO中的所有字節(jié)被清零并復(fù)位指針邏輯。注意:該位會自動清零。UART接收FIFO緩沖區(qū)第四十九頁,共64頁。UART0、UART1各含有1個16字節(jié)的接收FIFO緩沖區(qū)。軟件設(shè)置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。位76[5:3]210功能Rx觸發(fā)點設(shè)置—復(fù)位TxFIFO復(fù)位RxFIFO使能FIFO接收FIFOUnRSRUnRBRUnFCR—:這些位保留,用戶程序不要向這些位寫入1。UART接收FIFO緩沖區(qū)第五十頁,共64頁。UART0、UART1各含有1個16字節(jié)的接收FIFO緩沖區(qū)。軟件設(shè)置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。位76[5:3]210功能Rx觸發(fā)點設(shè)置—復(fù)位TxFIFO復(fù)位RxFIFO使能FIFO接收FIFOUnRSRUnRBRUnFCRRx觸發(fā)點設(shè)置:通過設(shè)置這兩位可以調(diào)整接收FIFO中觸發(fā)中斷的有效字節(jié)數(shù)量。 00:觸發(fā)點0(1字節(jié)); 01:觸發(fā)點1(4字節(jié)); 10:觸發(fā)點2(8字節(jié)); 11:觸發(fā)點3(14字節(jié));UART接收FIFO緩沖區(qū)第五十一頁,共64頁。4.11UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器寄存器名稱功能UnLCR設(shè)置UARTn的通信格式。UnFCR設(shè)置UARTn的接收FIFO緩沖區(qū)。UnDLL、UnDLM設(shè)置UARTn的通信波特率。UnIER設(shè)置UARTn的中斷。U1MCRModem接口設(shè)置(只有UART1具有)。第五十二頁,共64頁。4.11UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器——UnLCR位76[5:4]62[1:0]功能除數(shù)鎖存間隔奇偶選擇奇偶設(shè)置停止位字長字長度選擇: 00:5位字符長度 01:6位字符長度 10:7位字符長度 11:8位字符長度第五十三頁,共64頁。4.11UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器——UnLCR位76[5:4]62[1:0]功能除數(shù)鎖存間隔奇偶選擇奇偶設(shè)置停止位字長停止位選擇: 0:1個停止位 1:2個停止位第五十四頁,共64頁。4.11UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器——UnLCR位76[5:4]62[1:0]功能除數(shù)鎖存間隔奇偶選擇奇偶使能停止位字長奇偶使能:控制是否進(jìn)行奇偶校驗。如果使能,發(fā)送時將添加一位校驗位。 0:禁止奇偶產(chǎn)生和校驗; 1:使能奇偶產(chǎn)生和校驗;奇偶選擇:設(shè)置奇偶校驗類型。 00:奇數(shù)(數(shù)據(jù)位+校驗位=奇數(shù)); 01:偶數(shù)(數(shù)據(jù)位+校驗位=偶數(shù)); 10:校驗位強(qiáng)制為1; 11:校驗位強(qiáng)制為0;第五十五頁,共64頁。4.11UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器——UnLCR位76[5:4]62[1:0]功能除數(shù)鎖存間隔奇偶選擇奇偶使能停止位字長間隔:當(dāng)該位為1時,輸出引腳(TxDn)強(qiáng)制為邏輯0,可以引起通信對方(LPC2000)產(chǎn)生間隔中斷。在某些通信方式中,使用間隔中斷作為通信的起始信號(如:LINBus)。 0:禁止間隔發(fā)送; 1:使能間隔發(fā)送;第五十六頁,共64頁。4.11UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器——UnLCR位76[5:4]62[1:0]功能除數(shù)鎖存間隔奇偶選擇奇偶使能停止位字長除數(shù)鎖存:因為UnDLL和UnRBR/UnTHR的地址重疊,通過設(shè)置該位可以指定其中某個寄存器操作。0:禁止訪問除數(shù)鎖存寄存器; 1:使能訪問除數(shù)鎖存寄存器;第五十七頁,共64頁。UART寄存器地址訪問方式UART0U0RBR0xE000C000DLAB=0,對地址:0xE000C000進(jìn)行讀訪問U0THRDLAB=0,對地址:0xE000C000進(jìn)行寫訪問U0DLLDLAB=1,對地址:0xE000C000進(jìn)行訪問U0IER0xE000C004DLAB=0,對地址:0xE000C004進(jìn)行訪問U0DLMDLAB=1,對地址:0xE000C004進(jìn)行訪問UART——特殊寄存

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論