![信息與通信BootLoader與設(shè)備驅(qū)動(dòng)_第1頁(yè)](http://file4.renrendoc.com/view/47b82c210b19f1ff0b92ad34bae2a845/47b82c210b19f1ff0b92ad34bae2a8451.gif)
![信息與通信BootLoader與設(shè)備驅(qū)動(dòng)_第2頁(yè)](http://file4.renrendoc.com/view/47b82c210b19f1ff0b92ad34bae2a845/47b82c210b19f1ff0b92ad34bae2a8452.gif)
![信息與通信BootLoader與設(shè)備驅(qū)動(dòng)_第3頁(yè)](http://file4.renrendoc.com/view/47b82c210b19f1ff0b92ad34bae2a845/47b82c210b19f1ff0b92ad34bae2a8453.gif)
![信息與通信BootLoader與設(shè)備驅(qū)動(dòng)_第4頁(yè)](http://file4.renrendoc.com/view/47b82c210b19f1ff0b92ad34bae2a845/47b82c210b19f1ff0b92ad34bae2a8454.gif)
![信息與通信BootLoader與設(shè)備驅(qū)動(dòng)_第5頁(yè)](http://file4.renrendoc.com/view/47b82c210b19f1ff0b92ad34bae2a845/47b82c210b19f1ff0b92ad34bae2a8455.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
[信息與通信]BootLoader與設(shè)備驅(qū)動(dòng)第一頁(yè),共64頁(yè)。4.1嵌入式系統(tǒng)的產(chǎn)生和發(fā)展
嵌入式軟件的體系結(jié)構(gòu)包括驅(qū)動(dòng)層、操作系統(tǒng)層、中間件層和應(yīng)用層,如下圖所示。第二頁(yè),共64頁(yè)。驅(qū)動(dòng)層軟件分為三種類型:板級(jí)初始化程序:在系統(tǒng)上電后,初始化系統(tǒng)的硬件環(huán)境。與系統(tǒng)軟件相關(guān)的驅(qū)動(dòng)程序:用于支持操作系統(tǒng)和中間件等系統(tǒng)軟件所需的驅(qū)動(dòng)程序。與應(yīng)用軟件相關(guān)的驅(qū)動(dòng)程序:這類驅(qū)動(dòng)不一定需要與操作系統(tǒng)連接。第三頁(yè),共64頁(yè)。4.2BootLoader4.2.1BootLoader概述4.2.2BootLoader的典型結(jié)構(gòu)4.2.3實(shí)例分析第四頁(yè),共64頁(yè)。4.2.1BootLoader概述4.2BootLoader
BootLoader是系統(tǒng)加電后首先運(yùn)行的一段程序代碼,其目的是將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),為調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。第五頁(yè),共64頁(yè)。BootLoader是依賴于目標(biāo)硬件實(shí)現(xiàn)的,可以從兩個(gè)方面來理解:每種嵌入式微處理器體系結(jié)構(gòu)都有不同BootLoader.BootLoader還依賴于具體的嵌入式板級(jí)硬件設(shè)備配置。第六頁(yè),共64頁(yè)。1BootLoader的安裝4.2.1BootLoader概述
BootLoader需要放在系統(tǒng)加電后最先取指令的地址上,很多情況下,BootLoader與操作系統(tǒng)內(nèi)核、根文件系統(tǒng)甚至應(yīng)用程序等都可以燒寫在同一個(gè)固態(tài)存儲(chǔ)芯片上的。第七頁(yè),共64頁(yè)。2BootLoader的操作模式4.2.1BootLoader概述
大多數(shù)BootLoader都包含兩種操作模式:?jiǎn)?dòng)加載模式和下載模式。啟動(dòng)加載模式:也稱為自主(Autonomous)模式。在這種模式下,BootLoader從目標(biāo)機(jī)的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到RAM中運(yùn)行,整個(gè)過程中沒有用戶的介入。第八頁(yè),共64頁(yè)。下載模式:下載模式是指,目標(biāo)機(jī)上的BootLoader將通過串口或網(wǎng)絡(luò)連接等通信手段從宿主機(jī)上下載文件,如操作系統(tǒng)的內(nèi)核映像和根文件系統(tǒng)的映像等。第九頁(yè),共64頁(yè)。3BootLoader的控制設(shè)備和機(jī)制4.2.1BootLoader概述串口通信:串口通信最容易實(shí)現(xiàn)。BootLoader程序在執(zhí)行時(shí)也就可以利用這個(gè)簡(jiǎn)單實(shí)現(xiàn)的串口通信進(jìn)行I/O操作,與外界交換數(shù)據(jù)和信息。TFTP(網(wǎng)絡(luò)):在BootLoader中實(shí)現(xiàn)TFTP協(xié)議,在宿主機(jī)上利用TFTP的軟件工具,通過以太網(wǎng)連接來下載文件。第十頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)4.2BootLoader
BootLoader的主要任務(wù)就是要建立起調(diào)用操作系統(tǒng)系統(tǒng)內(nèi)核、運(yùn)行用戶應(yīng)用程序所需要的一個(gè)良好的軟硬件環(huán)境。這個(gè)任務(wù)具體包括兩部分的內(nèi)容:
硬件設(shè)備初始化建立內(nèi)存空間的映射圖
第十一頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)BootLoader的啟動(dòng)過程
(1)初始化CPU在各種模式下的堆??臻g設(shè)定CPU的內(nèi)存映射初始化各種控制寄存器初始化CPU的外部存儲(chǔ)器設(shè)定各外圍設(shè)備的基地址第十二頁(yè),共64頁(yè)。創(chuàng)建正確的中斷向量表為C代碼執(zhí)行創(chuàng)建ZI(零創(chuàng)建)區(qū)進(jìn)入到C代碼。在C代碼中繼續(xù)對(duì)時(shí)鐘、RS232端口進(jìn)行初始化,然后打開系統(tǒng)中斷允許位。進(jìn)入到應(yīng)用代碼中執(zhí)行,執(zhí)行期間響應(yīng)各種不同的中斷信號(hào)并調(diào)用預(yù)先設(shè)置好的中斷服務(wù)程序處理這些中斷。第十三頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)BootLoader的啟動(dòng)過程
(2)整個(gè)過程的流程圖第十四頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)1堆棧初始化堆棧初始化要處理的事情是為處理器的7種處理器模式(p37)分配堆??臻g。下面以FIQ模式下的堆棧設(shè)置為例進(jìn)行說明:第十五頁(yè),共64頁(yè)。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;模式堆棧空間(比如說1K;字節(jié))的起始地址第十六頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)2DRAM初始化
DRAM的初始化是根據(jù)系統(tǒng)配置信息決定的。主要的處理內(nèi)容是ROM和RAM基地址的設(shè)定、數(shù)據(jù)總線寬度的設(shè)定、SDRAM刷新時(shí)間的設(shè)定等,這些設(shè)置可以參照S3C4510B芯片的用戶手冊(cè)。第十七頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)3設(shè)置特殊寄存器
特殊寄存器的設(shè)置主要是針對(duì)I/O口的。寄存器的設(shè)定主要根據(jù)硬件的配置情況而定。由于啟動(dòng)代碼是燒錄到ROM中的,而中斷向量必須位于零地址,所以在存儲(chǔ)單元沒有重新映射之前ROM基址的設(shè)定應(yīng)該為零地址。第十八頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)4拷貝鏡像文件
拷貝鏡像文件的目的主要是為了提高運(yùn)行速度。將編譯生成的映像文件代碼從ROM拷貝到RAM中,程序的執(zhí)行也就在RAM中了。第十九頁(yè),共64頁(yè)。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ū)基址時(shí),把零初始化區(qū)各字節(jié)清零;只讀區(qū)可讀/可寫區(qū)地址零初始化區(qū)第二十頁(yè),共64頁(yè)。(2)當(dāng)只讀區(qū)截止地址不等于可讀/可寫區(qū)基址時(shí),①如果可讀/可寫區(qū)基址小于零初始化基址,就從只讀區(qū)截止地址處開始把數(shù)據(jù)拷貝到可讀可寫區(qū)基址處,直到到達(dá)零初始化基址,然后把零初始化區(qū)各字節(jié)清零。只讀區(qū)可讀/可寫區(qū)地址范圍中的數(shù)據(jù)零初始化區(qū)地址范圍中的數(shù)據(jù)清零第二十一頁(yè),共64頁(yè)。②否則(如果可讀/可寫區(qū)基址大于或等于零初始化基址)也只用把零初始化區(qū)各字節(jié)清零。只讀區(qū)可讀/可寫區(qū)零初始化區(qū)清零第二十二頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)5建立中斷向量表
中斷向量表用于處理異常情況,當(dāng)發(fā)生異常時(shí),首先要保存當(dāng)前程序的返回地址和CPSR寄存器的值,然后進(jìn)入到相應(yīng)的異常向量地址。
第二十三頁(yè),共64頁(yè)。ENTRYB Reset_Handler ;系統(tǒng)復(fù)位,通過這個(gè)跳轉(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第二十四頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)6系統(tǒng)重新映射系統(tǒng)重新映射與前面鏡像文件的拷貝有關(guān)。當(dāng)為了提高運(yùn)行速度把ROM的鏡像文件拷貝到RAM后,中斷向量表就不在零地址處了,因此要重新映射存儲(chǔ)單元,把RAM的地址重新設(shè)定為零地址。為什么要系統(tǒng)重新映射?第二十五頁(yè),共64頁(yè)。整個(gè)過程是把啟動(dòng)代碼從ROM(EEPROM或者Flash)拷貝到SDRAM運(yùn)行,同時(shí)在拷貝完畢后進(jìn)行內(nèi)存的重新映射,把SDRAM映射到原來的ROM地址(0x00000000)中,這樣就可以用SDRAM中的代碼寫Flash,使得程序代碼得以更新。第二十六頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)7
切換到用戶模式,進(jìn)入C代碼區(qū)CPU切換到用戶模式下,并把堆棧指針SP指定到用戶堆棧區(qū),就可以進(jìn)入到C代碼區(qū)運(yùn)行。在C代碼中繼續(xù)對(duì)時(shí)鐘、RS232端口進(jìn)行初始化,然后打開系統(tǒng)中斷允許位,進(jìn)入到應(yīng)用代碼中執(zhí)行。第二十七頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)BootLoader結(jié)構(gòu)
從程序結(jié)構(gòu)上來講,BootLoader一般都分:
Stage1:存放依賴于CPU體系結(jié)構(gòu)的代碼,如設(shè)備初始化代碼等,通常使用匯編語(yǔ)言來實(shí)現(xiàn),達(dá)到短小精悍的目的。
Stage2:用來實(shí)現(xiàn)復(fù)雜功能,通常使用C語(yǔ)言來實(shí)現(xiàn),使代碼具有更好的可移植性。第二十八頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)1Stage1Stage1部分的代碼按照?qǐng)?zhí)行的先后順序,通常包括以下步驟:硬件設(shè)備初始化為加載Stage2程序準(zhǔn)備RAM空間拷貝Stage2程序到RAM空間設(shè)置好堆棧跳轉(zhuǎn)到Stage2的C程序入口點(diǎn)第二十九頁(yè),共64頁(yè)。4.2.2BootLoader的典型結(jié)構(gòu)2Stage2Stage2部分的代碼通常包括以下步驟:初始化本階段用到的硬件設(shè)備,如RS232檢測(cè)系統(tǒng)內(nèi)存映射將操作系統(tǒng)內(nèi)核映像和根文件系統(tǒng)映像從Flash讀到RAM空間中為操作系統(tǒng)內(nèi)核設(shè)置啟動(dòng)參數(shù)調(diào)用操作系統(tǒng)內(nèi)核第三十頁(yè),共64頁(yè)。4.2.3實(shí)例分析4.2BootLoader
本小節(jié)使用基于ARM7TDMI內(nèi)核的S3C44B0X為例詳細(xì)介紹BootLoader的設(shè)計(jì)與實(shí)現(xiàn)。
與S3C4510B有區(qū)別的是:S3C44B0X沒有存儲(chǔ)器重映射的功能,所有存儲(chǔ)區(qū)地址固定;另外,S3C44B0X提供了矢量中斷的功能,擴(kuò)展了向量表第三十一頁(yè),共64頁(yè)。4.2.3實(shí)例分析硬件初始化程序(1)說明:硬件初始化程序編譯環(huán)境:ADS1.2***************************************存儲(chǔ)器空間;GCS6 64M16bit(8MB)DRAM/SDRAM(0xC000000-0xC7FFFFF);APP RAM=0xC000000~0xC7EFFFF;44BMON RAM=0xC7F0000-0xC7FFFFF
(對(duì)于不同的RAM,可以修改此地址);STACK RAM=0xC7FFA00第三十二頁(yè),共64頁(yè)。4.2.3實(shí)例分析中斷控制預(yù)定義
INTPND EQU 0x01E00004INTMOD EQU 0x01E00008INTMSK EQU 0x01E0000CI_ISPREQU0x01E00020I_CMST EQU 0x01E0001CI_ISPCEQU0x01E00024********************************************看門狗定時(shí)器預(yù)定義WTCON EQU 0x01D30000********************************************第三十三頁(yè),共64頁(yè)。4.2.3實(shí)例分析初始化程序開始EXPORT InitSystem禁止看門狗
LDR R0,=WTCONLDR R1,=0STRR1,[R0]第三十四頁(yè),共64頁(yè)。4.2.3實(shí)例分析
初始化堆棧
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第三十五頁(yè),共64頁(yè)。4.2.3實(shí)例分析
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第三十六頁(yè),共64頁(yè)。4.2.3實(shí)例分析
ORR R1,R0,#SVCMODE|NOINT MSR CPSR_CXSF,R1 ;SVCMode LSR SP,=SVCStack
;USERmodeisnotinitialized.第三十七頁(yè),共64頁(yè)。4.3.1設(shè)備驅(qū)動(dòng)概述4.3設(shè)備驅(qū)動(dòng)
使用任何外部設(shè)備都需要有相應(yīng)驅(qū)動(dòng)程序的支持。驅(qū)動(dòng)程序?yàn)樯蠈榆浖峁┰O(shè)備的操作接口。
驅(qū)動(dòng)層軟件有兩個(gè)重要的概念:硬件抽象層(HAL,HardwareAbstractionLayer)和板級(jí)支持包(BSP,BoardSupportPackage)。
第三十八頁(yè),共64頁(yè)。硬件抽象層4.3.1設(shè)備驅(qū)動(dòng)概述
硬件抽象層的目的是為了將硬件抽象化,即通過程序來控制諸如CPU、I/O、存儲(chǔ)器等硬件的操作,從而使得系統(tǒng)的設(shè)備驅(qū)動(dòng)程序與硬件無(wú)關(guān)。
第三十九頁(yè),共64頁(yè)。板級(jí)支持包(1)4.3.1設(shè)備驅(qū)動(dòng)概述設(shè)計(jì)板級(jí)支持包的目的主要是為驅(qū)動(dòng)程序提供訪問硬件設(shè)備寄存器的函數(shù)包,從而實(shí)現(xiàn)對(duì)操作系統(tǒng)的支持。在功能上,板級(jí)支持包大體需要實(shí)現(xiàn)以下兩方面的內(nèi)容:
在系統(tǒng)啟動(dòng)時(shí),完成對(duì)硬件的初始化。
為驅(qū)動(dòng)程序提供訪問硬件的手段。
第四十頁(yè),共64頁(yè)。
通用異步收發(fā)器(UniversalAsynchronousReceiverandTransmitter,UART)是用于控制計(jì)算機(jī)與串行設(shè)備的接口。UART的介紹第四十一頁(yè),共64頁(yè)。應(yīng)用示例LPC2000的I/O電壓為3.3V(可承受5V),連接時(shí)須注意電平的匹配。LPC2000其它通信設(shè)備TxD0RxD0TxD0RxD0與PC機(jī)相連時(shí),由于PC機(jī)串口是RS232電平,所以連接時(shí)需要使用RS232轉(zhuǎn)換器。LPC2000PC機(jī)串口232電平轉(zhuǎn)換TxD0RxD0TxD0RxD0第四十二頁(yè),共64頁(yè)。移位寄存器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總線第四十三頁(yè),共64頁(yè)。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底部時(shí),它將被送入發(fā)送移位寄存器(UnTSR)進(jìn)行發(fā)送。未定義UART發(fā)送單元第四十四頁(yè),共64頁(yè)。UART0、UART1各含有1個(gè)16字節(jié)的發(fā)送FIFO緩沖區(qū)。UnTHR是UARTn發(fā)送FIFO的最高字節(jié)。UART的發(fā)送FIFO是一直使能的。發(fā)送FIFOUnTHRUnTSRUART發(fā)送FIFO緩沖區(qū)第四十五頁(yè),共64頁(yè)。VPB總線AHB-VPB橋ARM7AHB總線移位寄存器UnRSR接收緩沖寄存器UnRBRUARTn接收單元RxDnVPB總線AHB-VPB橋移位寄存器UnRSR接收緩沖寄存器UnRBRUARTn接收單元RxDnARM7AHB總線RXDUnRBRCPUUnRSRUnRBR描述復(fù)位值7:0接收緩存寄存器,它包含了接收FIFO中最早接收到的字節(jié)未定義UART接收模塊第四十六頁(yè),共64頁(yè)。UART0、UART1各含有1個(gè)16字節(jié)的接收FIFO緩沖區(qū)。軟件設(shè)置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。位76[5:3]210功能Rx觸發(fā)點(diǎn)設(shè)置—復(fù)位TxFIFO復(fù)位RxFIFO使能FIFOEnFIFO:FIFO使能。該位的任何變化都將清空UART的FIFO。1:使能接收FIFO,并且允許訪問UnFCR[7:1]。0:禁止接收FIFO,此時(shí)接收緩存只有1個(gè)字節(jié)。接收FIFOUnRSRUnRBRUnFCRUART接收FIFO緩沖區(qū)第四十七頁(yè),共64頁(yè)。UART0、UART1各含有1個(gè)16字節(jié)的接收FIFO緩沖區(qū)。軟件設(shè)置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。位76[5:3]210功能Rx觸發(fā)點(diǎn)設(shè)置—復(fù)位TxFIFO復(fù)位RxFIFO使能FIFO接收FIFOUnRSRUnRBRUnFCR復(fù)位RxFIFO:接收FIFO復(fù)位。當(dāng)該位置位時(shí),UART0接收FIFO中的所有字節(jié)被清零并復(fù)位指針邏輯注意:該位會(huì)自動(dòng)清零。UART接收FIFO緩沖區(qū)第四十八頁(yè),共64頁(yè)。UART0、UART1各含有1個(gè)16字節(jié)的接收FIFO緩沖區(qū)。軟件設(shè)置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。位76[5:3]210功能Rx觸發(fā)點(diǎn)設(shè)置—復(fù)位TxFIFO復(fù)位RxFIFO使能FIFO接收FIFOUnRSRUnRBRUnFCR復(fù)位TxFIFO:發(fā)送FIFO復(fù)位。當(dāng)該位置位時(shí),UART發(fā)送FIFO中的所有字節(jié)被清零并復(fù)位指針邏輯。注意:該位會(huì)自動(dòng)清零。UART接收FIFO緩沖區(qū)第四十九頁(yè),共64頁(yè)。UART0、UART1各含有1個(gè)16字節(jié)的接收FIFO緩沖區(qū)。軟件設(shè)置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。位76[5:3]210功能Rx觸發(fā)點(diǎn)設(shè)置—復(fù)位TxFIFO復(fù)位RxFIFO使能FIFO接收FIFOUnRSRUnRBRUnFCR—:這些位保留,用戶程序不要向這些位寫入1。UART接收FIFO緩沖區(qū)第五十頁(yè),共64頁(yè)。UART0、UART1各含有1個(gè)16字節(jié)的接收FIFO緩沖區(qū)。軟件設(shè)置接收FIFO緩沖區(qū)的觸發(fā)字節(jié)。位76[5:3]210功能Rx觸發(fā)點(diǎn)設(shè)置—復(fù)位TxFIFO復(fù)位RxFIFO使能FIFO接收FIFOUnRSRUnRBRUnFCRRx觸發(fā)點(diǎn)設(shè)置:通過設(shè)置這兩位可以調(diào)整接收FIFO中觸發(fā)中斷的有效字節(jié)數(shù)量。 00:觸發(fā)點(diǎn)0(1字節(jié)); 01:觸發(fā)點(diǎn)1(4字節(jié)); 10:觸發(fā)點(diǎn)2(8字節(jié)); 11:觸發(fā)點(diǎn)3(14字節(jié));UART接收FIFO緩沖區(qū)第五十一頁(yè),共64頁(yè)。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具有)。第五十二頁(yè),共64頁(yè)。4.11UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器——UnLCR位76[5:4]62[1:0]功能除數(shù)鎖存間隔奇偶選擇奇偶設(shè)置停止位字長(zhǎng)字長(zhǎng)度選擇: 00:5位字符長(zhǎng)度 01:6位字符長(zhǎng)度 10:7位字符長(zhǎng)度 11:8位字符長(zhǎng)度第五十三頁(yè),共64頁(yè)。4.11UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器——UnLCR位76[5:4]62[1:0]功能除數(shù)鎖存間隔奇偶選擇奇偶設(shè)置停止位字長(zhǎng)停止位選擇: 0:1個(gè)停止位 1:2個(gè)停止位第五十四頁(yè),共64頁(yè)。4.11UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器——UnLCR位76[5:4]62[1:0]功能除數(shù)鎖存間隔奇偶選擇奇偶使能停止位字長(zhǎng)奇偶使能:控制是否進(jìn)行奇偶校驗(yàn)。如果使能,發(fā)送時(shí)將添加一位校驗(yàn)位。 0:禁止奇偶產(chǎn)生和校驗(yàn); 1:使能奇偶產(chǎn)生和校驗(yàn);奇偶選擇:設(shè)置奇偶校驗(yàn)類型。 00:奇數(shù)(數(shù)據(jù)位+校驗(yàn)位=奇數(shù)); 01:偶數(shù)(數(shù)據(jù)位+校驗(yàn)位=偶數(shù)); 10:校驗(yàn)位強(qiáng)制為1; 11:校驗(yàn)位強(qiáng)制為0;第五十五頁(yè),共64頁(yè)。4.11UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器——UnLCR位76[5:4]62[1:0]功能除數(shù)鎖存間隔奇偶選擇奇偶使能停止位字長(zhǎng)間隔:當(dāng)該位為1時(shí),輸出引腳(TxDn)強(qiáng)制為邏輯0,可以引起通信對(duì)方(LPC2000)產(chǎn)生間隔中斷。在某些通信方式中,使用間隔中斷作為通信的起始信號(hào)(如:LINBus)。 0:禁止間隔發(fā)送; 1:使能間隔發(fā)送;第五十六頁(yè),共64頁(yè)。4.11UART(0、1)UART設(shè)置使用UART前需要設(shè)置的寄存器——UnLCR位76[5:4]62[1:0]功能除數(shù)鎖存間隔奇偶選擇奇偶使能停止位字長(zhǎng)除數(shù)鎖存:因?yàn)閁nDLL和UnRBR/UnTHR的地址重疊,通過設(shè)置該位可以指定其中某個(gè)寄存器操作。0:禁止訪問除數(shù)鎖存寄存器; 1:使能訪問除數(shù)鎖存寄存器;第五十七頁(yè),共64頁(yè)。UART寄存器地址訪問方式UART0U0RBR0xE000C000DLAB=0,對(duì)地址:0xE000C000進(jìn)行讀訪問U0THRDLAB=0,對(duì)地址:0xE000C000進(jìn)行寫訪問U0DLLDLAB=1,對(duì)地址:0xE000C000進(jìn)行訪問U0IER0xE000C004DLAB=0,對(duì)地址:0xE000C004進(jìn)行訪問U0DLMDLAB=1,對(duì)地址:0xE000C004進(jìn)行訪問UART——特殊寄存
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人抵押借款簡(jiǎn)易合同示例
- 個(gè)人抵押貸款合同季度范本
- 臨街店鋪購(gòu)買合同范本
- 二次供水設(shè)備采購(gòu)合同
- 專業(yè)服裝管理軟件經(jīng)銷合同書
- 上海市股權(quán)轉(zhuǎn)讓合同標(biāo)準(zhǔn)范本
- 二手房銷售代理合同協(xié)議
- 中外合作種植戰(zhàn)略合作合同
- 云計(jì)算服務(wù)提供商數(shù)據(jù)保密合同
- 返聘人員協(xié)議書
- 癲癇病人的護(hù)理(課件)
- 企業(yè)資產(chǎn)管理培訓(xùn)
- 2024年WPS計(jì)算機(jī)二級(jí)考試題庫(kù)350題(含答案)
- 2024年4月27日浙江省事業(yè)單位招聘《職業(yè)能力傾向測(cè)驗(yàn)》試題
- 2024年6月浙江省高考地理試卷真題(含答案逐題解析)
- 醫(yī)院培訓(xùn)課件:《如何撰寫護(hù)理科研標(biāo)書》
- 風(fēng)車的原理小班課件
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試 數(shù)學(xué) 含答案
- 2024年山東省濟(jì)南市中考英語(yǔ)試題卷(含答案)
- 2024年北師大版八年級(jí)上冊(cè)全冊(cè)數(shù)學(xué)單元測(cè)試題含答案
- 江蘇省南京市第二十九中2025屆數(shù)學(xué)高二上期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
評(píng)論
0/150
提交評(píng)論