freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

嵌入式系統(tǒng)開發(fā)畢業(yè)論文-文庫吧資料

2025-07-04 13:29本頁面
  

【正文】 臺還很少見。TCP/IP是Internet的基本協(xié)議,以其實(shí)用性、高效性已經(jīng)成為事實(shí)上的工業(yè)標(biāo)準(zhǔn)。uC/0S II自1992年的第一版(uC/0S)以來已經(jīng)有好幾百個應(yīng)用,是一個經(jīng)實(shí)踐證明好用且穩(wěn)定可靠的內(nèi)核??刹眉?,可固化。LwIP的特性如下: ■ 支持多網(wǎng)絡(luò)接口下的IP轉(zhuǎn)發(fā) ■ 支持ICMP協(xié)議 ■ 包括實(shí)驗(yàn)性擴(kuò)展的的UDP(用戶數(shù)據(jù)報協(xié)議) ■ 包括阻塞控制,RTT估算和快速恢復(fù)和快速轉(zhuǎn)發(fā)的TCP(傳輸控制協(xié)議) ■ 提供專門的內(nèi)部回調(diào)接口(Raw API)用于提高應(yīng)用程序性能 ■ 可選擇的Berkeley接口API(多線程情況下) 基于uC/0S II的網(wǎng)絡(luò)平臺概述 嵌入式操作系統(tǒng)uC/0S II是一個公開源代碼的占先式多任務(wù)的微內(nèi)核RTOS,其性能和安全性可以與商業(yè)產(chǎn)品競爭。LwIP可以移植到操作系統(tǒng)上,也可以在無操作系統(tǒng)的情況下獨(dú)立運(yùn)行。LwIP是瑞士計算機(jī)科學(xué)院(Swedish Institute of Computer Science)的Adam Dunkels等開發(fā)的一套用于嵌入式系統(tǒng)的開放源代碼TCP/IP協(xié)議棧。uC/0S II是近年來發(fā)展迅速的一個開放源碼實(shí)時操作系統(tǒng),但它只是一個實(shí)時的任務(wù)調(diào)度及通信內(nèi)核,缺少對外圍設(shè)備和接口的支持,如沒有文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議、圖形界面。        第4章 網(wǎng)絡(luò)轉(zhuǎn)串口驅(qū)動的開發(fā)  Lwip在181。因此,系統(tǒng)初始化后能清楚地掌握自由內(nèi)存空間的情況是很重要的。此外,現(xiàn)在μC/OSII只支持固定大小的內(nèi)存分區(qū),容易造成內(nèi)存浪費(fèi)。對于任務(wù)??臻g來說,數(shù)組定義大了會造成內(nèi)存浪費(fèi);定義小了任務(wù)棧溢出,會造成系統(tǒng)崩潰。編譯器會將全局?jǐn)?shù)組作為未初始化的全局變量,放到應(yīng)用程序映像的數(shù)據(jù)段。在上述情況下,在兩個任務(wù)之間發(fā)生優(yōu)先級后轉(zhuǎn)是無法避免的。在μC/OSII中稱為優(yōu)先級反轉(zhuǎn)。我們創(chuàng)建一個信號量并對它進(jìn)行初始化,當(dāng)一個任務(wù)需要使用一個共享資源時,它必須先申請得到這個信號量。我們可以把一個完整的程序劃分成幾個任務(wù),不同的任務(wù)執(zhí)行不同的功能。進(jìn)入就緒態(tài)的優(yōu)先級最高的任務(wù)首先得到CPU的使用權(quán),只有等它交出CPU的使用權(quán)后,其它任務(wù)才可以被執(zhí)行。它是一個基于優(yōu)先級的實(shí)時操作系統(tǒng)。OSPrioCur=OSPrioHighRdyLDR r4,addr_OSPrioCurLDR r5,addr_OSPrioHighRdyLDRB r6,[r5]STRB r6,[r4];得到當(dāng)前任務(wù)的TCB地址LDR r4,addr_OSTCBCurLDR r5,[r4]STR sp,[r5]         ??;保存棧指針在占先任務(wù)的TCB上;取得高優(yōu)先級任務(wù)的TCB地址LDR r6,addr_OSTCBHighRdyLDR r6,[r6]LDR sp,[r6]         ??;得到新任務(wù)的堆棧指針;OSTCBCur=OSTCBHighRdySTR r6,[r4];得到當(dāng)前新任務(wù)的TCB地址LDMFD sp!,{r4}MSR SPSR_cxsf,r4LDMFD sp!,{r4}MSR SPSR_cxsf,r4LDMFD sp!,{r0r12,lr pc}OSIntCtxSw()         ??;中斷級的任務(wù)切換函數(shù)LDMIA sp!,{alvl,lr}SUBS pc,lr,4SUB lr,lr,4MOV r12,lrMRS lr,SPSRAND lr,lr,0XFFFFFE0ORR lr,lr,0XD3MSR CPSR_CXSF,lrOSTickISR()           ??;中斷服務(wù)函數(shù)STMDB sp!,{r0r11,lr}MRS r0,CPSRORR r0,r0,0x80         ??;設(shè)置中斷禁止標(biāo)志MSR CPSR_cxsf,r0          ;中斷結(jié)束LDR r0,I_ISPCLDR r1,=BIT_TIMER0STR r1,{r0}BL IrqStartBL osTimeTickBL IrqFinishLDR r0,=need_to_swap_contextLDR R2,[R0]CMP r2,1LDREQ pc,=_CON_SW完成上述工作后,μC/OSII就可以運(yùn)行在ARM處理器上了。 /*spsr IRQ,關(guān)閉FIQ*/return((void*)stk)。 /*r0*/*stk=(SVC32MODE|0x0|)。 /*r2*/*stk=0。 /*r4*/*stk=0。 /*r6*/*stk=0。 /*r8*/*stk=0。 /*r10*/*stk=0。 /*r12*/*stk=0。 /*裝載堆棧指針*//*為新任務(wù)創(chuàng)建上下文*/*stk=(unsigned int)task。opt =opt。 //雙精度浮點(diǎn)數(shù)typedef unsigned int OS_STK。 //32位有符號整數(shù)typedef float FP32。 //16位無符號整數(shù)typedef unsigned long INT32U。 //8位有符號整數(shù)typedef unsigned short INT16U。typedef unsigned char INT8U。 實(shí)時內(nèi)核μC/OSII在S3C44B0X上的移植我們使用ARM SDT編譯器,移植μC/OSII主要包括以下幾個步驟。μC/OSII的移植需要滿足以下要求:;;,并且需要一個定時中斷源;;。μC/OSII處理器無關(guān)的代碼提供了μC/OSII的系統(tǒng)服務(wù),應(yīng)用程序可以使用這些API函數(shù)進(jìn)行內(nèi)存管理、任務(wù)間通信及創(chuàng)建、刪除任務(wù)等。C/OSⅡ軟硬件體系結(jié)構(gòu) 。C/OSⅡ處理器相關(guān)代碼 181。C/OSⅡ.H181。C/OSⅡ處理器無關(guān)代碼OS 181。181。它使用ARM公司的16位/32位RISC結(jié)構(gòu),內(nèi)核是ARM7TDMI,工作在66MHz,片上集成了以下部件:8K Cache、外部存儲器控制器、LCD控制器、4個DMA通道、2個UART、1個多主I2C總線控制器、1個I2C總線控制器,以及5通道PWM定時器和1個內(nèi)部定時器、8通道12位ADC等,能夠與常用的外圍設(shè)備實(shí)現(xiàn)無縫連接,功能強(qiáng)大。移植工作包括以下幾個內(nèi)容:■ 用define設(shè)置一些常量的值()■ 聲明10個數(shù)據(jù)類型()■ 用define聲明三個宏()■ 用C語言編寫六個簡單的函數(shù)()■ 編寫四個匯編語言函數(shù)() 移植具體過程  181。前提是您的處理器和編譯器滿足了181?!?處理器有將堆棧指針和其它CPU寄存器讀出和存儲到堆棧或內(nèi)存中的指令如果用戶理解了處理器和C編譯器的技術(shù)細(xì)節(jié),移植181?!?處理器支持中斷,并且能產(chǎn)生定時中斷(通常在10至100Hz之間)。C/OSⅡ正常運(yùn)行,處理器必須滿足以下要求:■ 處理器的C編譯器能產(chǎn)生可重入代碼。因此,對μC/OSII實(shí)時操作系統(tǒng)的學(xué)習(xí)研究、開發(fā)、應(yīng)用具有重要意義。μC/OSII功能強(qiáng)大,支持56個用戶任務(wù),其內(nèi)核為占先式,支持信號量、郵箱、消息隊列等多種常用的進(jìn)程間通信機(jī)制,現(xiàn)已成功應(yīng)用到眾多商業(yè)嵌入式系統(tǒng)中,是一個成熟穩(wěn)定的實(shí)時內(nèi)核。C/OSⅡ在設(shè)計時就已經(jīng)充分考慮了可移植性,所以181。C/OSⅡ在讀寫處理器寄存器時只能通過匯編語言來實(shí)現(xiàn)。為了方便移植,大部分的181。C/OSⅡ移植到不同的處理器上。           第3章 181。ARM和Thumb之間切換使用BX 指令。Thumb不是一個完整的體系結(jié)構(gòu),不能指望處理只執(zhí)行Thumb指令而不支持ARM指令集。operand2AND {cond}{S}ORR Rd,Rn,operand2邏輯或操作指令RdRn|operand2ORR {cond}{S}EOR Rd,Rn,operand2邏輯異或操作指令RdRn^operand2EOR {cond}{S}BIC Rd,Rn,operand2位清除指令RdRn(~operand2)BIC {cond}CMP Rd,Rn,operand2比較指令標(biāo)志N、Z、C、VRnoperand2CMP {cond}CMN Rd,Rn,operand2負(fù)數(shù)比較指令標(biāo)志N、Z、C、VRn+operand2CMN {cond}TST Rd,Rn,operand2位測試指令標(biāo)志N、Z、C、VRnamp。 可以被‘回溯’的基于棧的結(jié)構(gòu)的格式,用來提供從失敗點(diǎn)到程序入口的函數(shù)(和給予的參數(shù))的列表。 在函數(shù)調(diào)用之間傳遞/返回參數(shù)。 使用棧的慣例。 對寄存器使用的限制。它們可以編譯自 C、 Pascal、也可以是用匯編語言寫成的。APCS,ARM 過程調(diào)用標(biāo)準(zhǔn)(ARM Procedure Call Standard),提供了緊湊的編寫例程的一種機(jī)制,定義的例程可以與其他例程交織在一起。它除了持有指示程序當(dāng)前使用的地址的二十六位數(shù)之外,還持有處理器的狀態(tài)。 這個寄存器在各個處理器模式下都有影子寄存器。同樣在程序第一次運(yùn)行的時候,把退出地址保存在 R14 中。 寄存器 14 專職持有返回點(diǎn)的地址以便于寫子例程。每個處理器模式都有這個寄存器的影子寄存器。 寄存器 13 典型的用做 OS 棧指針,但可被用做一個通用寄存器。 寄存器 8 到 12 是通用寄存器,但是在切換到 FIQ 模式的時候,使用它們的影子(shadow)寄存器。不象 80x86 處理器那樣要求特定寄存器被用做棧訪問,或者象 6502 那樣把數(shù)學(xué)計算的結(jié)果放置到一個累加器中,ARM 處理器在寄存器使用上是高度靈活的?! RM處理器的框架如圖21所示              乘法器指令解碼地址自增器nRESETnMREQSEQABORTnIRQnFIQnRWMAS[1:0]LOCKnCPICPACPBnWAITMCLKnOPCBIGENDISYNCnTRANSnM[4:0]桶形移位器32 位 ALU寫數(shù)據(jù) 寄存器讀數(shù)據(jù) 寄存器地址寄存器寄存器A[31:0]ABE及控制 邏輯PC Update解碼站指令 解碼IncrementerPCABusBBus       圖21 ARM處理器架構(gòu) 寄存器和處理器模式 有7個基本工作模式:User:非特權(quán)模式,大部分任務(wù)執(zhí)行在這種模式。 第2章 ARM處理器結(jié)構(gòu)和ARM指令集 ARM處理器結(jié)構(gòu)  ARM(Advanced RISC Machines)是微處理器行業(yè)的一家知名企業(yè),該企業(yè)設(shè)計了大量高性能、廉價、耗能低的RISC處理器、相關(guān)技術(shù)及軟件。它是Java API的一個子集,只包含了Java的關(guān)鍵特性,是專門針對對內(nèi)存具有苛刻要求的嵌入式系統(tǒng)而設(shè)計的。因此Java語言受速度和代碼容量的限制,本身并不適合于嵌入式系統(tǒng)的應(yīng)用。目標(biāo)是設(shè)計一個功能強(qiáng)大但結(jié)構(gòu)簡單的通用編程語言。因此,可用它設(shè)計一個完整的實(shí)時程序而不用匯編語言的支持。其主要目標(biāo)是在模塊化、系統(tǒng)編程、協(xié)同處理等方面對Pascal 進(jìn)行改進(jìn)。C++在支持現(xiàn)代軟件工程、OOP、結(jié)構(gòu)化等方面對C進(jìn)行了卓有成效的改進(jìn),但在程序代碼容量、執(zhí)行速度、程序復(fù)雜程度等方面比C語言程序性能差一些。目前是使用最廣泛的嵌入式系統(tǒng)編程語言。其最具代表性的應(yīng)用是UNIX操作系統(tǒng)。Bell實(shí)驗(yàn)室研究成功并投入使用的系統(tǒng)編程語言。它是美國國防部指定的唯一一種可用于軍用系統(tǒng)開發(fā)的語言。后來,為了更好地支持OOP(ObjectOriented Programming),對其進(jìn)行了改進(jìn),形成了目前廣泛使用的Ada95。它支持模塊化、獨(dú)立編譯、協(xié)處理等功能。因此開發(fā)工具的易學(xué)、易用、可靠、高效是基本要求。嵌入式系統(tǒng)則不同,應(yīng)用程序可以沒有操作系統(tǒng)直接在芯片上運(yùn)行;但是為了合理地調(diào)度多任務(wù)、利用系統(tǒng)資源、系統(tǒng)函數(shù)以及和專家?guī)旌瘮?shù)接口,用戶必須自行選配RTOS開發(fā)平臺,這樣才能保證程序執(zhí)行的實(shí)時性、可靠性,并減少開發(fā)時間,保障軟件質(zhì)量。而嵌入式系統(tǒng)本身不具備自舉開發(fā)能力,即使設(shè)計完成以后用戶通常也是不能對其中的程序功能進(jìn)行修改的,必須有一套開發(fā)工具和環(huán)境才能進(jìn)行開發(fā),這些工具和環(huán)境一般是基于通用計算機(jī)上的軟硬件設(shè)備以及各種邏輯分析儀、混合信號示波器等。 。 (OS)的高實(shí)時性是基本要求?!”M管半導(dǎo)體技術(shù)的發(fā)展使處理器速度不斷提高、片上存儲器容量不斷增加,但在大多數(shù)應(yīng)用中,存儲空間仍然是寶貴的,還存在實(shí)時性的要求?!榱颂岣邎?zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機(jī)本身中,而不是存貯于磁盤等載體中。 嵌入式系統(tǒng)軟件的特點(diǎn)嵌入式處理器的應(yīng)用軟件是實(shí)現(xiàn)嵌入式系統(tǒng)功能的關(guān)鍵,對嵌入式處理器系統(tǒng)軟件和應(yīng)用軟件的要求也和通用計算機(jī)有所不同。內(nèi)核的完全開放,使得可以自己設(shè)計和開發(fā)出真正的硬實(shí)時系統(tǒng);對于軟實(shí)時系統(tǒng),在Linux中也容易得到實(shí)現(xiàn)。開放源代碼的嵌入式Linux操作系統(tǒng)無疑有著很大的優(yōu)勢。VxWorks 運(yùn)行系統(tǒng)的核心是
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1