亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

短波跳頻

  • C51原理及相關基礎入門知識

    C51原理及相關基礎入門知識 第一章:C51 流程控制語句一、分類條件語句、循環語句和開關語句。下面將對這些語句作詳細介紹。(1) 條件語句條件語句的一般形式為:if(表達式)語句 1;else語句 2;上述結構表示: 如果表達式的值為非0(TURE)即真, 則執行語句1, 執行完語句1 從語句2 后開始繼續向下執行; 如果表達式的值為 0(FALSE)即假, 則跳過語句1 而執行語句2。所謂表達式是指關系表達式和邏輯表達式的結合式。注意:1. 條件執行語句中"else 語句2;"部分是選擇項, 可以缺省, 此時條件語句變成:if(表達式) 語句1;表示若表達式的值為非 0 則執行語句1 , 否則跳過語句1 繼續執行。2. 如果語句1 或語句2 有多于一條語句要執行時, 必須使用"{"和"}" 把這些語句包括在其中, 此時條件語句形式為:if(表達式){語句體 1;}else{語句體 2;}3. 條件語句可以嵌套, 這種情況經常碰到, 但條件嵌套語句容易出錯, 其原因主要是不知道哪個if 對應哪個else。例如:if(x>20||x<-10)if(y<=100&&y>x)printf("Good");elseprintf("Bad");對于上述情況,規定: else 語句與最近的一個if 語句匹配, 上例中的 else 與 if(y<=100&&y>x) 相匹配。為了使 else 與if(x>20||x<-10) 相匹配, 必須用花括號。如下所示:if(x>20||x<-10){if(y<=100&&y>x)printf("Good");}

    標簽: C51 入門知識

    上傳時間: 2013-10-24

    上傳用戶:Sophie

  • NXP Cortex-M3 LPC1700系列微控制器簡介

    LPC1700系列ARM是基于第二代ARM Cortex-M3內核的微控制器,是為嵌入式系統應用而設計的高性能、低功耗的32位微處理器,適用于儀器儀表、工業通訊、電機控制、燈光控制、報警系統等領域。其操作頻率高達100MHz,采用3級流水線和哈佛結構,帶獨立的本地指令和數據總線以及用于外設的低性能的第三條總線,使得代碼執行速度高達1.25MIPS/MHz,并包含1個支持隨機跳轉的內部預取指單元。

    標簽: Cortex-M 1700 NXP LPC

    上傳時間: 2013-10-27

    上傳用戶:wyc199288

  • at91rm9200啟動過程教程

    at91rm9200啟動過程教程 系統上電,檢測BMS,選擇系統的啟動方式,如果BMS為高電平,則系統從片內ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執行這個BOOTLOAER(準確的說應該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設置PLLB產生48M時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應模式下的堆棧設置; 3、檢測主時鐘源(Main oscillator); 4、中斷控制器(AIC)的設置; 5、C 變量的初始化; 6、跳到主函數。 完成以上步驟后,我們可以認為BOOT過程結束,接下來的就是LOADER的過程,或者也可以認為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設備的開始地址處連續的存放的32個字節,也就是8條指令必須是跳轉指令或者裝載PC的指令,其實這樣規定就是把這8條指令當作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當BOOT程序完成了把合法的映像搬到SRAM的任務以后,接下來就進行存儲器的REMAP,經過REMAP之后,SRAM從映設前的0X200000地址處被映設到了0X0地址并且程序從0X0處開始執行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準備從外部載入映像。對DEBUG口的初始化包括設置參數115200 8 N 1以及運行XMODEM協議。對USB DEVICE進行初始化以及運行DFU協議。現在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設然后執行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內容和ROM的BOOT差不多,不同的硬件設計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設計的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據自己的應用配置??偟恼f來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務也不錯,不但提供了片內啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結構與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設的驅動,是一個功能強大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網站下載。 我們知道,當9200系統上電后,如果bms為高電平,則系統從片內rom啟動,這時rom中固化的boot程序初始化了debug口并向其發送'c',這時我們打開超級終端會看到ccccc...。這說明系統已經啟動,同時xmodem協議已經啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協議,為下載和啟動uboot做準備。當下載了loader.bin后,超級終端會繼續打印:ccccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調到此處開始執行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內存、flash、網絡、系統啟動等一些命令。 如果系統上電時bms為低電平,則系統從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經啟動了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統復位,就可以看到系統先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環境,關于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區別嗎?首先有區別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進行解壓,除此之外,他和loader并無大的區別,你可以把boot理解為在loader的基礎上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據自己的系統的情況修改和配置以及裁減,打造屬于自己系統的bootloder。

    標簽: 9200 at 91 rm

    上傳時間: 2013-10-27

    上傳用戶:wsf950131

  • LPC1700系列ARM基于第二代ARM Cortex-M3

    LPC1700系列ARM是基于第二代ARM Cortex-M3內核的微控制器,是為嵌入式系統應用而設計的高性能、低功耗的32位微處理器,適用于儀器儀表、工業通訊、電機控制、燈光控制、報警系統等領域。其操作頻率高達100MHz,采用3級流水線和哈佛結構,帶獨立的本地指令和數據總線以及用于外設的低性能的第三條總線,使得代碼執行速度高達1.25MIPS/MHz,并包含1個支持隨機跳轉的內部預取指單元。

    標簽: ARM Cortex-M 1700 LPC

    上傳時間: 2013-11-17

    上傳用戶:lbbyxmraon

  • ARM指令集(2)

    ARM指令集(2)  1.跳轉指令   在ARM中有兩種方式可以實現程序的跳轉:一種是刀‘轉指令;另一種是直接向PC寄存器(R15)中寫入目標地址值。   通過直接向PC寄存器中寫入目標地址值可以實現在46B地址空間中任意跳轉,這種跳轉指令又稱為長跳轉。如果在長跳轉指令之前使用MOV LR,PC等指令,則可以保存將來返回的地址值,這樣就實現了在46B地址空間中的子程序調用。   在ARM版本5及以上的體系中,實現了ARM指令集和Thumb指令集的混合使用。指令使用目標地址值的bit[0]來確定目標程序的類型。bit[0]的值為1時,目標程序為Thumb指令;bit[0]值為0時,目標程序為ARM指令。   在ARM版本5以前的體系中,傳送到PC寄存器中的目標地址值的低兩位bits[1∶0]被忽略,跳轉指令只能在ARM指令集中執行,即程序不能從ARM狀態切換到Thumb狀態。非T系列ARM版本5體系不含Thumb指令,當程序試圖切換到Thumb狀態時,將產生未定義指令異常中斷。   ARM跳轉指令可以從當前指令向前或向后的32MB地址空間跳轉。這類跳轉指令有以下4種。

    標簽: ARM 指令集

    上傳時間: 2013-11-20

    上傳用戶:妄想演繹師

  • arm指令集(1)

    arm指令集(1)  ARM跳轉指令可以從當前指令向前或向后的32MB地址空間跳轉。這類跳轉指令有以下4種。  ?。?)B 跳4專指令   B〔條件) (地址)   B指令屬于ARM指令集,是最簡單的分支指令。一旦遇到一個B指令,ARM處理器將立即跳轉到給定的地址,從那里繼續執行。注意:存儲在分支指令中的實際值是相對當前R15的值的一個偏移量,而不是一個絕對地址。它的值由匯編器來計算,是24位有符號數,左移兩位后有符號擴展為32位,表示的有效偏移位為26位(+/- 32 MB)。   (2)BL 帶返回的跳轉指令   BI,〔條件) (地址)   BL指令也屬于ARM指令集,是另一個分支指令。就在分支之前,在寄存器R14中裝載上R15的內容,因此可以重新裝載R14到R15中來返回到這個分支之后的那個指令處執行,它是子例程的一個基本但強力的實現。  ?。?)BLX 帶返回和狀態切換的跳轉指令   BLX <地址>   BLX指令有兩種格式,第1種格式的BLX指令記作BLX(1)。BLX(1)從ARM指令集跳轉到指令中指定的目標地址,并將程序狀態切換到Thumb狀態,該指令同時將PC寄存器的內容復制到LR寄存器中。   BLX(1)指令屬于無條件執行的指令。   第2種格式的BLX指令記作BLX(2)。BLX(2)指令從ARM指令集跳轉到指令中指定的目標地址,目標地址的指令可以是ARM指令,也可以是Thumb指令。目標地址放在指令中的寄存器<dest>中,該地址的bit[0]值為0,目標地址處的指令類型由CPSR中的T位決定。該指令同時將PC寄存器的內容復制到LR寄存器中。   (4)BX 帶狀態切換的跳轉指令   BX(條件) (dest)   BX指令跳轉到指令中指定的目標地址,目標地址處的指令可以是ARM指令,也可以是Thumb指令。目標地址值為指令的值和0xFl·FFFFFF做“與”操作的結果,目標地址處的指令類型由寄存器決定。

    標簽: arm 指令集

    上傳時間: 2014-12-27

    上傳用戶:laomv123

  • ARM處理器的工作模式

    ARM處理器的工作模式 ARM處理器狀態    ARM微處理器的工作狀態一般有兩種,并可在兩種狀態之間切換:第一種為ARM狀態,此時處理器執行32位的字對齊的ARM指令;第二種為Thumb狀態,此時處理器執行16位的、半字對齊的Thumb指令。在程序的執行過程中,微處理器可以隨時在兩種工作狀態之間切換,并且,處理器工作狀態的轉變并不影響處理器的工作模式和相應寄存器中的內容。但ARM微處理器在開始執行代碼時,應該處于ARM狀態。  ARM處理器狀態    進入Thumb狀態:當操作數寄存器的狀態位(位0)為1時,可以采用執行BX指令的方法,使微處理器從ARM狀態切換到Thumb狀態。此外,當處理器處于Thumb狀態時發生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時,自動切換到Thumb狀態。    進入ARM狀態:當操作數寄存器的狀態位為0時,執行BX指令時可以使微處理器從Thumb狀態切換到ARM狀態。此外,在處理器進行異常處理時,把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執行程序,也可以使處理器切換到ARM狀態。ARM處理器模式    ARM微處理器支持7種運行模式,分別為:用戶模式(usr):ARM處理器正常的程序執行狀態??焖僦袛嗄J?fiq):用于高速數據傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統使用的保護模式。數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。系統模式(sys):運行具有特權的操作系統任務。定義指令中止模式(und):當未定義的指令執行時進入該模式,可用于支持硬件協處理器的軟件仿真。ARM處理器模式    ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數的應用程序運行在用戶模式下,當處理器運行在用戶模式下時,某些被保護的系統資源是不能被訪問的。    除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權模式;其中除去用戶模式和系統模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護的系統資源等情況。ARM寄存器    ARM處理器共有37個寄存器。其中包括:31個通用寄存器,包括程序計數器(PC)在內。這些寄存器都是32位寄存器。以及6個32位狀態寄存器。 關于寄存器這里就不詳細介紹了,有興趣的人可以上網找找,很多這方面的資料。異常處理    當正常的程序執行流程發生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當前處理器的狀態必須保留,這樣當異常處理完成之后,當前程序可以繼續執行。處理器允許多個異常同時發生,它們將會按固定的優先級進行處理。當一個異常出現以后,ARM微處理器會執行以下幾步操作:進入異常處理的基本步驟:將下一條指令的地址存入相應連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執行。將CPSR復制到相應的SPSR中。根據異常類型,強制設置CPSR的運行模式位。強制PC從相關的異常向量地址取下一條指令執行,從而跳轉到相應的異常處理程序處。如果異常發生時,處理器處于Thumb狀態,則當異常向量地址加載入PC時,處理器自動切換到ARM狀態。 ARM微處理器對異常的響應過程用偽碼可以描述為: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;當運行于 ARM 工作狀態時If == Reset or FIQ then;當響應 FIQ 異常時,禁止新的 FIQ 異常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address異常處理完畢之后,ARM微處理器會執行以下幾步操作從異常返回:將連接寄存器LR的值減去相應的偏移量后送到PC中。將SPSR復制回CPSR中。若在進入異常處理時設置了中斷禁止位,要在此清除。

    標簽: ARM 處理器 工作模式

    上傳時間: 2013-11-15

    上傳用戶:hanbeidang

  • 一種基于8051核SoC引導程序的設計與實現

    引導程序的開發是系統芯片設計的重要組成部分。針對基于8051核的某控制系統芯片的具體要求,提出了一種系統芯片引導程序的設計策略。該策略思路是:當系統上電復位后,開始執行固化在系統芯片中的引導程序,并加載存儲于片外串行接口Flash的用戶程序到片內SRAM中;加載完成后,程序無條件跳到SRAM中執行用戶程序。在分析該系統芯片組成的基礎上,重點闡述了引導程序開發面臨的問題、解決的思路、引導程序的具體實現及開發編譯環境的配置。該方案對其它系統芯片引導程序的設計具有一定的參考價值。

    標簽: 8051 SoC 引導程序

    上傳時間: 2013-11-23

    上傳用戶:zhtzht

  • DSP和MCU的集成處理器

    當今集成電路設計已經進入 SOC 時代,于是各公司針對自己的設計需求挑選一款性價比較高的處理器作為內核是一件非常重要的事情。下面將介紹一款集成了DSP 和MCU 功能的處理器ZSP neo 。ZSP neo 是一類新型的處理器,它在一個的內核中集成了DSP 和MCU 的功能。對于那些需要比現有8 位微控制器更高的控制處理性能,而又無需32 位微控制器的對成本敏感的應用來說,ZSP neo 是一個理想的選擇。ZSP neo 針對其性能要求采用了相應的架構:·采用基于 RISC 的架構:處理器具有靜態分支預測功能;所以程序員設計程序時無需考慮跳轉延時。·采用了 Load-Store 架構:處理器對存儲器的操作使用 load 和store 指令;操作不直接發生在存儲器中。所有其他指令均為寄存器-寄存器操作;使用寄存器節省了存儲器帶寬。采用多種load/store 指令,這樣優化了存儲器操作;同時支持32 位和16 位的數據操作。處理器允許前推的靈活架構;功能單元的結果能夠在下個周期無條件地被其他功能單元使用。

    標簽: DSP MCU 集成處理器

    上傳時間: 2013-10-19

    上傳用戶:奔跑的雪糕

  • Study-3 51單片機開發板原理圖

    Study-3 51單片機開發板原理圖:1-單片機的管腳除下載的幾個(P30,P31,P15,P16,P17,RST)之外,均直接擴展出來,原理圖中對應綠色的網絡2-紅色的網路對應的是這個板子上的外設,比如 液晶 數碼管等等3-其他顏色的就是對應的各個部分的網絡4-這個原理圖的布局是根據PCB的布局來設計的,這樣方便查閱5-在PCB中的右面擴展出來的萬能板上,外面的一排是GND,里面的一排是VCC,擴展的時候,可以把電源直接接到這里就可以了6-板子的左上角有2個跳線,一個是控制液晶的背光用的,一個是2位數碼管的能信號,因為采用了74ls164串轉并的方案,所以數碼管和串口不能同時使用,但是下載程序不影響,即平時短接就可以當作串口試驗的時候,建議把跳線斷開7-關于S系列單片機的使用,這個板子兼容S系列的單片機使用,留有下載線的接口8-下載程序說明,STC單片機采用串口下載,下載前一定要冷啟動即斷電,點擊下載,上電,程序就會下載進去了

    標簽: Study 51單片機 開發板原理圖

    上傳時間: 2013-10-29

    上傳用戶:372825274

主站蜘蛛池模板: 云梦县| 新密市| 澄城县| 贵定县| 津南区| 合水县| 都安| 务川| 鄂温| 闵行区| 临沧市| 海阳市| 松原市| 中方县| 高要市| 大连市| 灵川县| 铜鼓县| 娄烦县| 丽水市| 宜黄县| 南康市| 扎鲁特旗| 巴里| 新乡县| 洛南县| 麦盖提县| 双流县| 都匀市| 阿荣旗| 凤冈县| 渝中区| 高尔夫| 德庆县| 习水县| 吕梁市| 天全县| 丁青县| 建阳市| 延寿县| 白银市|