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

正文內(nèi)容

微處理器的嵌入式系統(tǒng)研究畢業(yè)論文-預(yù)覽頁

2025-07-20 05:25 上一頁面

下一頁面
 

【正文】 kSpace SPACE FIQ_STACK_LEGTH * 4 。然后程序把處理器模式轉(zhuǎn)化為管理模式,并設(shè)置管理模式的堆棧指針。程序4 設(shè)置CPU堆棧大小USR_STACK_LEGTH EQU 64SVC_STACK_LEGTH EQU 0FIQ_STACK_LEGTH EQU 16IRQ_STACK_LEGTH EQU 64ABT_STACK_LEGTH EQU 0UND_STACK_LEGTH EQU 0(5)系統(tǒng)基本初始化為了使系統(tǒng)基本能夠工作,必須在進入main()函數(shù)前對系統(tǒng)進行一些基本的初始化工作,這些工作TargetResetInit()完成。endifif ((Fcclk / 4) / Fpclk) == 2 VPBDIV = 2。endifif (Fcco / Fcclk) == 8 PLLCFG = ((Fcclk / Fosc) 1) | (2 5)。 while((PLLSTAT amp。 PLLFEED = 0x55。else MAMTIM = 3。}時鐘是芯片各部分正常工作的基礎(chǔ),雖然時鐘可以在任何時候設(shè)置,但為了避免混亂,最好在進入main()函數(shù)前設(shè)置。μC/OSⅡ是著名的、源碼公開的內(nèi)核,可用于各類8位、16位和32位單片機或DSP。至今,從8位到64位,μC/OSⅡ已在超過40種不同架構(gòu)的微處理器上運行。匯編語言寫的部分已經(jīng)壓到最低限度,使得μC/OSⅡ便于移植到其他微處理器上。(5)占先式(Preemptive)μC/OSⅡ是完全占先式的實時內(nèi)核。(7)可確定性 絕大多數(shù)μC/OSⅡ的函數(shù)調(diào)用與服務(wù)的執(zhí)行時間具有可確定性。(9)系統(tǒng)服務(wù) μC/OSⅡ提供很多系統(tǒng)服務(wù),例如郵箱、消息隊列、信號量、塊大小固定的內(nèi)存的申請與釋放和時間相關(guān)函數(shù)等。其質(zhì)量已得到認(rèn)證,可以在任何應(yīng)用中使用。移植技術(shù)可以使一種特定的技術(shù)在更加廣泛的范圍使用,使軟件使用更加靈活,不局限于某一條件。(3)μC/OSⅡ可以移植到從8位到64位的不同類型、不同規(guī)模的的嵌入式系統(tǒng),并能在大部分的8位、16位、32位,甚至64位的微處理器和DSP上運行。根據(jù)系統(tǒng)開發(fā)要求以及系統(tǒng)硬件結(jié)構(gòu),編了如下程序:① 鍵盤輸入控制程序;② 中斷程序;③ 定時器控制程序:定時控制LED; 鍵盤輸入控制程序流程圖如圖8所示,圖8 鍵盤輸入控制程序流程圖GPIO是一個雙向的I/O口,內(nèi)部無上拉電阻,所以用作鍵盤輸入時,要加上上拉電阻。因此,在程序當(dāng)中,編寫了去抖動程序。 //等待KEY1鍵按下 for(i=0。KEY1)==0)break。FIQ中斷優(yōu)先級最高,向量IRQ具有中等優(yōu)先級,非向量IRQ的優(yōu)先級最低。當(dāng)要退出中斷時,對向量地址寄存器寫0,通知VIC中斷結(jié)束??梢酝ㄟ^軟件向其寫入清零標(biāo)志。使用中斷向量控制器的向量IRQ功能,實現(xiàn)EINT0、EINT1中斷處理。 //設(shè)置所有通道為IRQ中斷VICVectCntl0=Ox2e。VICIntEnable=Ox0000C0000。兩個定時器具有同樣的寄存器,只是地址不同而已。定時器控制寄存器TCR(R/W)預(yù)分頻控制PR(R/W)32位定時器計數(shù)器TC(R/W)中斷寄存器IR(R/W)pclk圖11 基本定時器的寄存器功能框圖如圖12所示,定時器比較匹配由控制寄存器MCR進行匹配操作設(shè)置。捕獲可以設(shè)置為上升沿觸發(fā)、下降沿觸發(fā)或雙邊沿觸發(fā),并可設(shè)置為捕獲中斷,這些設(shè)置是通過CCR完成的。在程序中,必須初始化定時器,如果兩個定時器都用到,那么兩個都要初始化。 //比較值 T0TCR=Ox03。支持軟件調(diào)試及JTAG硬件仿真調(diào)試,支持匯編語言、C、C++源程序,具有編譯效率高、系統(tǒng)庫功能強等特點,可以在Windows9Windows XP、Windows 2000以及RedHat Linux上運行。AXD 調(diào)試器主窗口如圖16所示:圖16 AXD 調(diào)試器主窗口 工程的編輯(1) 建立工程點擊WINDOWS操作系統(tǒng)的【開始】【程序】【ARM Developer Suite 】【CodeWarrior for ARM Developer Suite】起動Metrowerks CodeWarrior,或雙擊“CodeWarriorfor ARM Developer Suite”快捷方式起動。圖18 建立文本文件然后在新建的文件中編寫程序,點擊“Save”圖標(biāo)按鈕將文件存盤(或從【File】菜單選擇【Save】),輸入文件全名。另外,也可以在【Project】菜單中選擇【Add Files…】來添加源文件,或使用New對話框選擇【File】頁來建立源文件時選擇加入工程(即選中“Add to Project”項)。Make 編譯連接(快捷鍵為F7)。圖19 編譯連接工程圖20 DebugRel Settings窗體點擊“DebugRel Settings…”圖標(biāo)按鈕,即可進行工程的地址設(shè)置、輸出文件設(shè)置、編譯選項等,如圖37所示。同樣,可以在【Project】菜單中找到相應(yīng)的命令。點擊菜單【Options】選擇【Configure Target…】,即彈出Choose Target窗口,如圖23所示:在沒有添加其它仿真驅(qū)動程序前,Target項中只有兩項,分別為ADP(JTAG 硬件仿真)和ARMUL(軟件仿真)。(2)調(diào)試工具條AXD運行調(diào)試工具條如圖24所示,調(diào)試觀察窗口工具條如圖25所示,文件操作工具條如圖26所示。 運行到光標(biāo)(Run To Cursor),運行程序直到當(dāng)前光標(biāo)所在行時停止。(1)仿真器設(shè)置在AXD調(diào)試環(huán)境, 打開【Options】【Configure Target...】,彈出Choose Target窗口,在“Target Environments”框中選擇“EasyJTAG...”項。 圖27 仿真器環(huán)境設(shè)置窗口EasyJTAG 設(shè)置選項說明:ARMcore項: 選擇CPU 型號;Connection: 硬件連接接口選擇;Halt Mode: 停機模式選擇,包含Halt program(停止CPU)和Halt and reset(復(fù)位然后停止CPU)兩項;Aux. Option: 輔助選項,包含Step In Interrupt(允許單步運行進入中斷)和Erase Flash when need(允許EasyJTAG擦除Flash)兩項;Flash Type: 片外FLASH 型號選擇,可支持兩塊FLASH 芯片,當(dāng)ARMcore選擇LPC2200系列CPU時此項才有效。(2)仿真器的應(yīng)用問題 IDE環(huán)境中按F5鍵或Debug圖標(biāo)按鈕即可直接進入AXD,但有時會出現(xiàn)如圖28所示的提示,處理方法是點擊“確定”,然后在彈出的Load Session窗口中點擊“取消”。圖29 Fatal AXD Error窗口使用JTAG下載程序到FLASH。不管使用哪一種方式,均要先設(shè)置編譯鏈接的地址,即代碼地址從0x00000000地址開始,比如使用LPC2100專用工程模板時,在生成目標(biāo)選用RelInChip,如程序7所示。EasyJTAG仿真器可支持LPC2000系列ARM7微控制器的片內(nèi)FLASH下載,這樣就可以使用這一功能將程序下載到FLASH中,以便脫機運行。 使用ISP下載LPC2100系列ARM7微控制器芯片具有ISP功能,可以通過串口進行程序下載。生成HEX文件后,接下來使用串口延長線連接PC串口(如COM1)和目標(biāo)板UART0(需要轉(zhuǎn)換為RS232電平),并將目標(biāo)板上的ISP跳線短接。連接成功后,先使用“Erase”按鈕擦除選定扇區(qū)的FLASH,然后在Filename項中輸入要下載的HEX文件全名,點擊“Upload to Flash”按鈕即開始下載程序。另處還翻譯了大量的外文資料,在了解國際技術(shù)和動態(tài)的同時加強了外文的閱讀能力。剛開始的時候真是寸步難行,但經(jīng)過幾周的耐心研究,對嵌入式軟件開發(fā)漸漸熟悉起來。在不斷學(xué)習(xí)的過程中,的確困難重重。例如查閱文獻資料,正確使用技術(shù)資料和手冊等等工具??焖僦袛喈惓L幚沓绦? IMPORT Reset/*給外部使用的標(biāo)號在這聲明*/ EXPORT InitStack EXPORT Vectors CODE32 AREA Startup,CODE,READONLY/*中斷向量表*/Vectors LDR PC, ResetAddr LDR PC, UndefinedAddr LDR PC, SWI_Addr LDR PC, PrefetchAddr LDR PC, DataAbortAddr DCD 0xb9205f80 LDR PC, [PC, 0xff0] LDR PC, FIQ_AddrResetAddr DCD ResetUndefinedAddr DCD UndefinedSWI_Addr DCD SoftwareInterruptPrefetchAddr DCD PrefetchAbortDataAbortAddr DCD DataAbortNouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler/*未定義指令*/Undefined B Undefined/*軟中斷*/SoftwareInterrupt B SoftwareInterruptPrefetchAbort B PrefetchAbort/*取數(shù)據(jù)中止*/DataAbort B DataAbort/*快速中斷*/FIQ_Handler STMFD SP!, {R0R3, LR} BL FIQ_Exception LDMFD SP!, {R0R3, LR} SUBS PC, LR, 4/******************************************************************** *函數(shù)名稱: InitStack*功能描述: 初始化堆棧********************************************************************/InitStack MOV R0, LR/*設(shè)置管理模式堆棧*/ MSR CPSR_c, 0xd3 LDR SP, StackSvc/*設(shè)置中斷模式堆棧*/ MSR CPSR_c, 0xd2 LDR SP, StackIrq/*設(shè)置快速中斷模式堆棧*/ MSR CPSR_c, 0xd1 LDR SP, StackFiq/*設(shè)置中止模式堆棧*/ MSR CPSR_c, 0xd7 LDR SP, StackAbt/*設(shè)置未定義模式堆棧*/ MSR CPSR_c, 0xdb LDR SP, StackUnd/*設(shè)置系統(tǒng)模式堆棧*/ MSR CPSR_c, 0xdf LDR SP, StackUsr MOV PC, R0StackUsr DCD UsrStackSpace + (USR_STACK_LEGTH 1) * 4StackSvc DCD SvcStackSpace + (SVC_STACK_LEGTH 1)* 4StackIrq DCD IrqStackSpace + (IRQ_STACK_LEGTH 1)* 4StackFiq DCD FiqStackSpace + (FIQ_STACK_LEGTH 1)* 4StackAbt DCD AbtStackSpace + (ABT_STACK_LEGTH 1)* 4StackUnd DCD UndtStackSpace + (UND_STACK_LEGTH 1)* 4/* 分配堆??臻g */ AREA MyStacks, DATA, NOINIT, ALIGN=2UsrStackSpace SPACE USR_STACK_LEGTH * 4 ??焖僦袛嗄J蕉褩?臻gA
點擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1