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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? iaptest.s

?? 周立功經典實驗教程《ARM嵌入式系統實驗教程》的配套源代碼
?? S
字號:
;******************************************************************************	
; 文件名:IAPTEST.S
; 功能:LPC2200的IAP功能測試。
;      1. 選擇扇區,命令代碼50
;      2. 復制RAM數據到FLASH,即FLASH編程,命令代碼51
;      3. 擦除扇區,命令代碼52
;      4. 查空扇區,命令代碼53
;      5. 讀取器件ID,命令代碼54
;      6. 讀取boot代碼版本號,命令代碼55
;      7. 校驗數據,命令代碼56
; 說明:使用JTAG調試,觀察操作返回值及操作結果。
;******************************************************************************	
                INCLUDE		LPC2294.INC
				EXPORT  	MAIN
                
IAP_Enter       EQU     0x7FFFFFF0              ; IAP入口地址定義
IAP_ParIn       EQU     0x40003E00              ; 定義IAP入口參數地址(緩沖區0x40003E00-0x40003E10)
IAP_ParOut      EQU     0x40003D00              ; 定義IAP出口參數地址(緩沖區0x40003D00-0x40003D10)

; 定義IAP命令字
IAP_SELSECTOR   EQU     50
IAP_RAMTOFLASH  EQU     51
IAP_ERASESECTOR EQU     52
IAP_BLANKCHK    EQU     53
IAP_READPARTID  EQU     54
IAP_BOOTCODEID  EQU     55
IAP_COMPARE     EQU     56

; 定義CCLK值大小,單位為KHz
IAP_FCCLK       EQU     11059

                
                AREA    IAPTESTC, CODE, READONLY
                ENTRY  

; 使用IAP功能時,RAM的頂端的32字節保留給IAP操作使用;
; IAP入口為THUMB狀態,所以調用時使用BX指令(切換處理器狀態)。
                
MAIN            LDR     SP,=0x40003F00     		; 設置堆棧指針                

				LDR		R0,=MAMCR
				MOV		R1,#0x00				; 關閉MAM  
				STR		R1,[R0]							
   				LDR		R0,=PLLCON
				MOV		R1,#0x00				; 關閉PLL
				STR		R1,[R0]
				LDR		R0,=PLLFEED
				MOV		R1,#0xAA
				STR		R1,[R0]
				MOV		R1,#0x55
				STR		R1,[R0]
                
                ; 讀取器件ID
                BL      ReadParID
                
                ; 讀取boot代碼版本號
                BL      BootCodeID
                
                
                ; 選擇扇區1
                MOV     R2,#1                   ; 設置入口參數,起始扇區號
                MOV     R3,#1                   ; 終止扇區號(要大于等于起始扇區)
                BL      SelSector               ; 選擇操作扇區
                
                
                ; 擦除扇區1
                MOV     R2,#1
                MOV     R3,#1
                BL      EraseSector
                
                
                ; 查空扇區1
                MOV     R2,#1
                MOV     R3,#1
                BL      BlankCHK
                
                  
                ; 選擇扇區1
                MOV     R2,#1                   ; 設置入口參數,起始扇區號
                MOV     R3,#1                   ; 終止扇區號(要大于等于起始扇區)
                BL      SelSector               ; 選擇操作扇區
                ; 寫數據到扇區1
                MOV     R2,#0x00002000
                MOV     R3,#0x40000000
                MOV     R4,#512
                BL      RamToFlash
                
                ; 選擇扇區1
                MOV     R2,#1                   ; 設置入口參數,起始扇區號
                MOV     R3,#1                   ; 終止扇區號(要大于等于起始扇區)
                BL      SelSector               ; 選擇操作扇區
                ; 查空扇區1
                MOV     R2,#1
                MOV     R3,#1
                BL      BlankCHK 
                
                
                ; 比較數據
                MOV     R2,#0x00002000          
                MOV     R3,#0x40000000
                MOV     R4,#512
                BL      Compare
                
HALT            B       HALT    
                
                
;******************************************************************************	
; 名稱:SelSector
; 功能:IAP操作扇區選擇,命令代碼50
; 入口參數:R2      起始扇區
;          R3      終止扇區
; 出口參數:IAP返回值
; 說明:使用了R0、R1指向的緩沖區作為IAP參數傳送緩沖區。
;******************************************************************************	                
SelSector
                STMFD   SP!,{R0-R7,LR}
                
                LDR     R0,=IAP_ParIn          
                LDR     R1,=IAP_ParOut
                
                MOV     R4,#IAP_SELSECTOR       ; 設置命令字
                STR     R4,[R0]
                
                STR     R2,[R0,#4]              ; 參數設置,起始扇區
                STR     R3,[R0,#8]              ; 終止扇區
                
                ADR     LR,SelSrExt
                LDR     R5,=IAP_Enter+1
                BX      R5
                
SelSrExt        LDMFD   SP!,{R0-R7,PC}


;******************************************************************************	
; 名稱:RamToFlash
; 功能:復制RAM的數據到FLASH,命令代碼51
; 入口參數:R2      目標地址,即FLASH起始地址。以512字節為分界
;          R3      源地址,即RAM地址。地址必須字對齊
;          R4      復制字節個數,為512/1024/4096/8192
; 出口參數:IAP返回值
; 說明:使用了R0、R1指向的緩沖區作為IAP參數傳送緩沖區。
;      在使用此程序前,要先選擇操作扇區。
;******************************************************************************
RamToFlash
                STMFD   SP!,{R0-R7,LR}
                
                LDR     R0,=IAP_ParIn          
                LDR     R1,=IAP_ParOut
                
                MOV     R5,#IAP_RAMTOFLASH      ; 設置命令字
                STR     R5,[R0]
                
                STR     R2,[R0,#4]              ; 參數設置,目標地址
                STR     R3,[R0,#8]              ; 源地址
                STR     R4,[R0,#12]             ; 操作字節數
                LDR     R4,=IAP_FCCLK   
                STR     R4,[R0,#16]             ; CCLK頻率
                
                ADR     LR,RamTFExt
                LDR     R5,=IAP_Enter+1
                BX      R5
                
RamTFExt        LDMFD   SP!,{R0-R7,PC}


;******************************************************************************	
; 名稱:EraseSector
; 功能:扇區擦除,命令代碼52
; 入口參數:R2      起始扇區
;          R3      終止扇區
; 出口參數:IAP返回值
; 說明:使用了R0、R1指向的緩沖區作為IAP參數傳送緩沖區。
;      在使用此程序前,要先選擇操作扇區。
;******************************************************************************
EraseSector
                STMFD   SP!,{R0-R7,LR}
                
                LDR     R0,=IAP_ParIn          
                LDR     R1,=IAP_ParOut
                
                MOV     R4,#IAP_ERASESECTOR     ; 設置命令字
                STR     R4,[R0]
                
                STR     R2,[R0,#4]              ; 參數設置,起始扇區 
                STR     R3,[R0,#8]              ; 終止扇區
                LDR     R4,=IAP_FCCLK   
                STR     R4,[R0,#12]             ; CCLK頻率
                
                ADR     LR,EraseSrExt
                LDR     R5,=IAP_Enter+1
                BX      R5
                
EraseSrExt      LDMFD   SP!,{R0-R7,PC}



;******************************************************************************	
; 名稱:BlankCHK
; 功能:扇區查空,命令代碼53
; 入口參數:R2      起始扇區
;          R3      終止扇區
; 出口參數:IAP返回值
; 說明:使用了R0、R1指向的緩沖區作為IAP參數傳送緩沖區。
;******************************************************************************
BlankCHK
                STMFD   SP!,{R0-R7,LR}
                
                LDR     R0,=IAP_ParIn          
                LDR     R1,=IAP_ParOut
                
                MOV     R4,#IAP_BLANKCHK        ; 設置命令字
                STR     R4,[R0]
                
                STR     R2,[R0,#4]              ; 參數設置,起始扇區 
                STR     R3,[R0,#8]              ; 終止扇區
                
                ADR     LR,BlankCKExt
                LDR     R5,=IAP_Enter+1
                BX      R5
                
BlankCKExt      LDMFD   SP!,{R0-R7,PC}


;******************************************************************************	
; 名稱:ReadParID
; 功能:讀取器件ID,命令代碼54
; 入口參數:無
; 出口參數:IAP返回值
; 說明:使用了R0、R1指向的緩沖區作為IAP參數傳送緩沖區。
;******************************************************************************
ReadParID
                STMFD   SP!,{R0-R7,LR}
                
                LDR     R0,=IAP_ParIn          
                LDR     R1,=IAP_ParOut
                
                MOV     R4,#IAP_READPARTID      ; 設置命令字
                STR     R4,[R0]
                
                ADR     LR,ReadPDExt
                LDR     R5,=IAP_Enter+1
                BX      R5
                
ReadPDExt       LDMFD   SP!,{R0-R7,PC}

;******************************************************************************	
; 名稱:BootCodeID
; 功能:讀取boot代碼版本號,命令代碼55
; 入口參數:無
; 出口參數:IAP返回值
; 說明:使用了R0、R1指向的緩沖區作為IAP參數傳送緩沖區。
;******************************************************************************
BootCodeID
                STMFD   SP!,{R0-R7,LR}
                
                LDR     R0,=IAP_ParIn          
                LDR     R1,=IAP_ParOut
                
                MOV     R4,#IAP_BOOTCODEID      ; 設置命令字
                STR     R4,[R0]
                
                ADR     LR,BootCDExt
                LDR     R5,=IAP_Enter+1
                BX      R5
                
BootCDExt       LDMFD   SP!,{R0-R7,PC}




;******************************************************************************	
; 名稱:Compare
; 功能:校驗數據,命令代碼56
; 入口參數:R2      目標地址,即RAM/FLASH起始地址。地址必須字對齊
;          R3      源地址,即FLASH/RAM地址。地址必須字對齊
;          R4      復制字節個數,必須能被4整除
; 出口參數:IAP返回值
; 說明:使用了R0、R1指向的緩沖區作為IAP參數傳送緩沖區。
;******************************************************************************
Compare
                STMFD   SP!,{R0-R7,LR}
                
                LDR     R0,=IAP_ParIn          
                LDR     R1,=IAP_ParOut
                
                MOV     R5,#IAP_COMPARE         ; 設置命令字
                STR     R5,[R0]
                
                STR     R2,[R0,#4]              ; 參數設置,目標地址
                STR     R3,[R0,#8]              ; 源地址
                STR     R4,[R0,#12]             ; 操作字節數
                
                
                ADR     LR,CompareExt
                LDR     R5,=IAP_Enter+1
                BX      R5
                
CompareExt      LDMFD   SP!,{R0-R7,PC}
                
                
                END
                			


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆视频网站| 国产精品丝袜一区| 中文一区二区在线观看| 亚洲欧美色图小说| 久久精品国产亚洲5555| 色综合久久综合| 2021中文字幕一区亚洲| 亚洲高清免费在线| 成人国产在线观看| 久久久久久免费毛片精品| 亚洲国产wwwccc36天堂| 9色porny自拍视频一区二区| 欧美大片在线观看| 亚洲综合另类小说| 成人h动漫精品一区二区 | 免费精品99久久国产综合精品| 风流少妇一区二区| 精品三级在线观看| 日韩激情在线观看| 欧美日韩午夜精品| 亚洲自拍偷拍网站| 色欧美日韩亚洲| 亚洲视频在线一区二区| 国产激情精品久久久第一区二区 | 精品裸体舞一区二区三区| 亚洲视频一区在线| 成人激情免费电影网址| www国产成人免费观看视频 深夜成人网| 亚洲国产成人av网| 欧美性极品少妇| 午夜影院在线观看欧美| 欧美性高清videossexo| 亚洲精品日产精品乱码不卡| 99久久精品国产毛片| 国产精品美女久久福利网站| 暴力调教一区二区三区| 中文字幕日韩欧美一区二区三区| 成人在线视频首页| 中文字幕精品三区| www.视频一区| 亚洲制服丝袜一区| 欧美日韩一区成人| 麻豆视频一区二区| 精品国产一区二区三区忘忧草 | 午夜精品久久久| 欧美日韩不卡一区二区| 首页国产欧美久久| 欧美一级生活片| 激情国产一区二区| 国产精品久久久一区麻豆最新章节| 国产成人亚洲综合a∨婷婷| 久久精品男人天堂av| 国内久久精品视频| 欧美一区二区三区影视| 精品一二三四在线| 国产亚洲制服色| 成人一区二区三区中文字幕| 国产精品视频免费看| 成人动漫一区二区| 亚洲视频在线观看一区| 色婷婷综合久久久中文字幕| 亚洲图片另类小说| 日本道色综合久久| 午夜视频一区二区三区| 国产91色综合久久免费分享| 国产欧美精品一区| 99热精品一区二区| 亚洲欧美另类小说视频| 欧美影院一区二区三区| 视频一区欧美精品| 欧美xxxxxxxxx| 丁香婷婷综合网| 一区二区三区在线影院| 欧美理论片在线| 精品一区二区三区在线视频| 中文字幕免费一区| 成人国产电影网| 日韩av网站免费在线| 久久日韩粉嫩一区二区三区| 国产成人av自拍| 国产精品成人在线观看| 欧美mv日韩mv亚洲| 成人免费va视频| 亚洲成人av资源| 久久综合九色综合97婷婷女人 | 日韩欧美黄色影院| 国产成人亚洲综合a∨猫咪| 亚洲精品一二三| 日韩免费看网站| 91一区在线观看| 美女网站色91| 国产精品久久久99| 欧美日韩中文字幕一区| 韩国av一区二区| 一区二区三区在线视频免费| 精品国产3级a| 色香蕉成人二区免费| 蜜臀av一区二区| 亚洲免费视频中文字幕| 欧美不卡一区二区| 在线观看成人小视频| 精东粉嫩av免费一区二区三区| 伊人一区二区三区| 久久久久久久精| 99久久夜色精品国产网站| 国产一区二区女| 爽好多水快深点欧美视频| 日韩毛片视频在线看| 精品欧美黑人一区二区三区| 色吊一区二区三区| 国产成人av电影| 美女www一区二区| 日日摸夜夜添夜夜添国产精品| 国产精品夫妻自拍| 久久嫩草精品久久久精品一| 91福利国产成人精品照片| 懂色一区二区三区免费观看| 蜜臀久久99精品久久久久久9| 亚洲专区一二三| 亚洲欧洲美洲综合色网| 中文字幕第一页久久| 日韩视频一区二区三区在线播放 | 国产美女视频91| 蜜乳av一区二区| 日韩精品免费专区| 亚洲成人免费电影| 亚洲综合一区二区精品导航| 最近中文字幕一区二区三区| 国产女人aaa级久久久级 | 91色乱码一区二区三区| 国产不卡免费视频| 成人网男人的天堂| 久久电影网站中文字幕| 国产传媒一区在线| 国产成人精品在线看| 国产一区日韩二区欧美三区| 奇米色一区二区三区四区| 日韩成人一级片| 亚洲成人激情av| 日韩专区中文字幕一区二区| 日韩国产精品大片| 免费成人在线观看视频| 亚洲超碰97人人做人人爱| 亚洲一区二区成人在线观看| 亚洲国产视频直播| 免费观看在线色综合| 国模冰冰炮一区二区| 国产精品一卡二卡在线观看| 丁香一区二区三区| 91色porny蝌蚪| 欧美日韩电影在线| 欧美不卡一二三| 亚洲人成在线播放网站岛国| 夜夜嗨av一区二区三区中文字幕| 亚洲在线视频网站| 日韩电影在线一区二区| 韩国成人在线视频| av在线播放成人| 欧美日韩在线一区二区| 日韩一区二区三区三四区视频在线观看 | 亚洲综合视频在线观看| 天天综合色天天综合| 狠狠色狠狠色综合系列| 国产精品一卡二| 一本色道久久加勒比精品| 56国语精品自产拍在线观看| 久久久久久久综合| 亚洲精品成人天堂一二三| 蜜桃视频在线一区| av亚洲精华国产精华| 69p69国产精品| 国产精品久久久久久亚洲伦| 亚洲欧美综合网| 秋霞成人午夜伦在线观看| eeuss鲁一区二区三区| 91精品欧美福利在线观看| 国产拍欧美日韩视频二区| 午夜精品成人在线视频| 国产999精品久久久久久| 欧美日韩国产精品成人| 欧美激情一区二区三区四区| 亚洲美女视频在线观看| 成人一区二区三区视频在线观看| 91精品免费在线观看| 亚洲乱码国产乱码精品精可以看| 久久精品国产一区二区| 欧美在线观看一二区| 久久精品水蜜桃av综合天堂| 三级一区在线视频先锋| 国产福利一区二区三区在线视频| 91在线观看美女| 久久久亚洲欧洲日产国码αv| 亚洲国产精品久久人人爱 | 欧美人与禽zozo性伦| 国产精品国产a| 黄色日韩网站视频| 久久午夜羞羞影院免费观看| 天堂午夜影视日韩欧美一区二区| 99久久综合精品| 日本一二三四高清不卡|