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

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

?? flash.asm

?? 基于dsp的flash驅動程序
?? ASM
字號:
*********************************************************************************
*  MEMORY.ASM	v1.00								                            *
*  版權(c) 	2003-		北京合眾達電子技術有限責任公司			                *
*  設計者:	段立鋒								                                *
*********************************************************************************
		.file	"flash.asm"
		.c_mode
		.mmregs
		

		.copy	"vc5402.inc"	; VC5402 Memory-Mapped	Register Declaration
		.copy   "flash.inc" ; SEED DEC5416 Memory-Mapped Register Declaration
                       
		.def	_flash_erase
		.def	_flash_writes
		.def	_flash_writem
		.def	_flash_reads
		.def	_flash_readm
		
		.text

*********************************************************************************
*	FLASH的操作																	*
*********************************************************************************
*********************************************************************************
*																				*
* 函數定義:uint _flash_erase(uint addr, uint type)		   						*
* 功    能:Flash扇區/塊/整片擦除操作											*
*																				*
* 入口參數:A	  ---- 地址addr													*
*		       扇區擦除:Amsb~A11,每個扇區2K   								*
*		       塊擦除  :Amsb~A15,每個塊32K									*
*		       整片擦除:5555H													*
*		       Amsb:	A16,Flash用SST39VF200時								*
*		       			A17,Flash用SST39VF400時(缺省)						*
*		      			A18,Flash用SST39VF800時								*
*		       Flash定位在程序儲存空間0x4000000~401FFFFH                       *
*											   ~403FFFFH(缺省)   				*
*											   ~407FFFFH		                *
*		       地址addr為從0開始的偏移地址,而非Flash的絕對地址					*
*          	   (SP+n) ---- 操作類型type,如果是.far_mode模式則n為2,否則n為1	*
*		       扇區擦除:30H													*
*		       塊擦除:  50H													*
*		       整片擦除:10H													*
* 出口參數:A	  ---- 擦除標志													*
*		       未擦干凈:00H													*
*		       已擦干凈:01H													*
* 資源使用:B,AR0																*
*																				*
*********************************************************************************
_flash_erase:	
				STM	 #SWWSR_VALI,SWWSR	           ; 配置軟件等待寄存器
				STM	 #SWCR_VALI,SWCR
				STM	#Flash_base,AH
				PSHM	AL			; 保存地址
				STM	#Flash_5555,AL
				STM	#Flash_UL1,BL
				WRITA	*(BL)			; AAH -> (405555H)
				NOP
				NOP
				STM	#Flash_2AAA,AL
				STM	#Flash_UL2,BL
				WRITA	*(BL)			; 55H -> (402AAAH)
				NOP
				NOP
				STM	#Flash_5555,AL
				STM	#Flash_ERASE,BL
				WRITA	*(BL)			; 80H -> (405555H)
				NOP
				NOP
				STM	#Flash_5555,AL
				STM	#Flash_UL1,BL
				WRITA	*(BL)			; AAH -> (405555H)
				NOP
				NOP
				STM	#Flash_2AAA,AL
				STM	#Flash_UL2,BL
				WRITA	*(BL)			; 55H -> (82AAAH)
				NOP
				NOP
				STM	#Flash_5555,AL
				STM	#10H,BL
				WRITA	*(BL)			; 10H -> (82AAAH)
				NOP
				NOP
		
				POPM	AL			; 恢復地址
				.if	__far_mode
				WRITA	2H			; type -> (addr)
				.else
				WRITA	1H
				.endif
		
erase_poll:		READA	*(BL)
				BITF	*(BL),#Polling_Bit
				BC	erase_poll,NTC		; 查詢擦除是否完成?
				
				STM	#00H,AH
				.if	__far_mode
				CMPM	2H,#Flash_SE
				BC	verify_SE,TC		; 扇區擦除時,轉verify_SE
				CMPM	2H,#Flash_BE
				BC	verify_BE,TC		; 塊擦除時,轉verify_BE
				CMPM	2H,#Flash_CE
				BC	verify_CE,TC		; 整片擦除時,轉verify_CE
				LD	#0,A			; 不是上述3種擦除操作,則置未擦除干凈標志,返回
				FRET
				.else		
				CMPM	1H,#Flash_SE
				BC	verify_SE,TC		; 扇區擦除時,轉verify_SE
				CMPM	1H,#Flash_BE
				BC	verify_BE,TC		; 塊擦除時,轉verify_BE
				CMPM	1H,#Flash_CE
				BC	verify_CE,TC		; 整片擦除時,轉verify_CE
				LD	#0,A			; 不是上述3種擦除操作,則置未擦除干凈標志,返回
				RET
				.endif
		
verify_SE:		SFTL	A,Flash_SBIT
				OR	#Flash_base,16,A		; A = 被擦除扇區的起始地址
				BD	verify_erase
				LD	#Flash_SSIZE,B		; B = 扇區大小
		
verify_BE:		SFTL	A,Flash_BBIT
				OR	#Flash_base,16,A		; A = 被擦除塊的起始地址
				BD	verify_erase
				LD	#Flash_BSIZE,B		; B = 塊大小

verify_CE:		LD	#Flash_base,16,A	; A = Flash起始地址
				LD	#Flash_CSIZE,4,B	; B = Flash大小

verify_erase:	READA	*(AR0)
				CMPM	*(AR0),#Flash_BLANK
				BCD	erase_end,NTC
				XC	1,NTC
				LD	#0,A			; 置未擦除干凈標志
				ADD	#ONE,A
				SUB	#ONE,B
				BC	verify_erase,BNEQ
				LD	#1,A			; 置擦除干凈標志,返回
erase_end:		.if	__far_mode
				FRET
				.else
				RET
				.endif
		
*********************************************************************************
*										*
* 函數定義:uint _flash_writes(ulong addr, uint data)		   		*
* 功    能:將數據data寫入addr所指定的Flash單元					*
*										*
* 入口參數:A	  ---- 地址addr,Amsb~A0					*
*		       Amsb:	A16,Flash用SST39VF200時				*
*		       		A17,Flash用SST39VF400時(缺省)			*
*		      		A18,Flash用SST39VF800時				*
*		       Flash定位在程序儲存空間80000H~9FFFFH/BFFFFH(缺省)/FFFFFH	*
*		       地址addr為從0開始的偏移地址,而非Flash的絕對地址		*
*          (SP+n) ---- 數據data,如果是.far_mode模式則n為2,否則n為1		*
* 出口參數:A	  ---- 寫入標志							*
*		       未寫入:00H						*
*		       已寫入:01H						*
* 資源使用:B									*
*										*
*********************************************************************************
_flash_writes:	PSHM	AL
		PSHM	AH			; 保存地址
		STM	#Flash_base,AH
		STM	#Flash_5555,AL
		STM	#Flash_UL1,BL
		WRITA	*(BL)			; AAH -> (85555H)
		STM	#Flash_2AAA,AL
		STM	#Flash_UL2,BL
		WRITA	*(BL)			; 55H -> (82AAAH)
		STM	#Flash_5555,AL
		STM	#Flash_PRG,BL
		WRITA	*(BL)			; A0H -> (85555H)
		
		POPM	AH			; 恢復地址 
		POPM	AL
		OR	#Flash_base,16,A
		.if	__far_mode
		WRITA	2H			; data -> (addr)
		.else
		WRITA	1H
		.endif
		
write_poll:	
		nop
		READA	*(BL)
		.if	__far_mode
		XOR	2H,B			; data ^ B
		.else
		XOR	1H,B
		.endif
		BITF	*(BL),#Polling_Bit
		BC	write_poll,TC		; 查詢寫操作是否完成?
		NOP
		NOP
		STM	#ZERO,BH		; 驗證寫操作
		LD	#1,A			; 正確,A = 1
		XC	1,BNEQ
;		BD 	write_poll
		LD	#0,A			; 錯誤,A = 0
		
		.if	__far_mode
		FRET
		.else
		RET
		.endif
		
*********************************************************************************
*										*
* 函數定義:uint _flash_writem(ulong addr, uint * ptr, uint length)   		*
* 功    能:將ptr所指向的數據緩沖區中的length個數據寫入addr所指定的Flash單元	*
*										*
* 入口參數:A	  ---- 地址addr,Amsb~A0					*
*		       Amsb:	A16,Flash用SST39VF200時				*
*		       		A17,Flash用SST39VF400時(缺省)			*
*		      		A18,Flash用SST39VF800時				*
*		       Flash定位在程序儲存空間80000H~9FFFFH/BFFFFH(缺省)/FFFFFH	*
*		       地址addr為從0開始的偏移地址,而非Flash的絕對地址		*
*          (SP+n) ---- 數據緩沖區起始地址ptr,如果是.far_mode模式則n為2,否則n為1	*
*          (SP+m) ---- 數據長度lrngth,如果是.far_mode模式則m為3,否則m為2	*
* 出口參數:A	  ---- 寫入標志							*
*		       未寫入:00H						*
*		       已寫入:01H						*
* 資源使用:B,AR0								*
*										*
*********************************************************************************
_flash_writem:	.if	__far_mode
		LDU	2H,B
		.else
		LDU	1H,B
		.endif
		STLM	B,AR0			; AR0 ← 數據起始地址
writem_loop:	PSHM	AL			; 保存地址
		PSHM	AH
		.if	__far_mode
		FRAME	-2
		LDU	*AR0+,B			; 取數據
		STL	B,0H			; 傳遞數據
		FCALL	_flash_writes
		RC	AEQ			; 未寫入,則A = 0,返回
		FRAME	2
		POPM	AH
		POPM	AL
		ADD	#ONE,A			; Flash地址+1
		ADDM	#-1,3H
		CMPM	3H,#ZERO
		.else
		FRAME	-1
		LDU	*AR0+,B			; 取數據
		STL	B,0H			; 傳遞數據
		CALL	_flash_writes
;		RC	AEQ			; 未寫入,則A = 0,返回
		FRAME	1
		POPM	AH
		POPM	AL
		ADD	#ONE,A			; Flash地址+1
		ADDM	#-1,2H
		CMPM	2H,#ZERO
		.endif
		BC	writem_loop,NTC
		LD	#1,A			; 已寫入,則A = 1,返回
		
		.if	__far_mode
		FRET
		.else
		RET
		.endif
		
*********************************************************************************
*										*
* 函數定義:uint _flash_reads(ulong addr)			   		*
* 功    能:從addr指定的Flash單元中讀出一個數據					*
*										*
* 入口參數:A	  ---- 地址addr,Amsb~A0					*
*		       Amsb:	A16,Flash用SST39VF200時				*
*		       		A17,Flash用SST39VF400時(缺省)			*
*		      		A18,Flash用SST39VF800時				*
*		       Flash定位在程序儲存空間80000H~9FFFFH/BFFFFH(缺省)/FFFFFH	*
*		       地址addr為從0開始的偏移地址,而非Flash的絕對地址		*
* 出口參數:A	  ---- 讀出數據							*
* 資源使用:A									*
*										*
*********************************************************************************
_flash_reads:	OR	#Flash_base,16,A
		READA	*(AL)
		.if	__far_mode
		FRET
		.else
		RET
		.endif
		
*********************************************************************************
*										*
* 函數定義:void _flash_readm(ulong addr, uint * ptr, uint length)   		*
* 功    能:從addr指定的Flash單元中讀出length數據到ptr所指向的數據緩沖區中		*
*										*
* 入口參數:A	  ---- 地址addr,Amsb~A0					*
*		       Amsb:	A16,Flash用SST39VF200時				*
*		       		A17,Flash用SST39VF400時(缺省)			*
*		      		A18,Flash用SST39VF800時				*
*		       Flash定位在程序儲存空間80000H~9FFFFH/BFFFFH(缺省)/FFFFFH	*
*		       地址addr為從0開始的偏移地址,而非Flash的絕對地址		*
*          (SP+n) ---- 數據緩沖區起始地址ptr,如果是.far_mode模式則n為2,否則n為1	*
*          (SP+m) ---- 數據長度length,如果是.far_mode模式則m為3,否則m為2	*
* 出口參數:A	  ---- 讀出數據							*
* 資源使用:B,AR0								*
*										*
*********************************************************************************
_flash_readm:	OR	#Flash_base,16,A
		.if	__far_mode
		LDU	2H,B
		.else
		LDU	1H,B
		.endif
		STLM	B,AR0			; AR0 ← 數據起始地址
		
readm_loop:	READA	*AR0+
		ADD	#ONE,A			; Flash地址+1
		.if	__far_mode
		ADDM	#-1,3H
		CMPM	3H,#ZERO
		.else
		ADDM	#-1,2H
		CMPM	2H,#ZERO
		.endif
		BC	readm_loop,NTC
		
		.if	__far_mode
		FRET
		.else
		RET
		.endif

		.end

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费黄网站欧美| 裸体歌舞表演一区二区| 精品sm捆绑视频| 欧美一区二区视频在线观看| 在线免费亚洲电影| 色噜噜狠狠色综合欧洲selulu| 99久久婷婷国产综合精品| 春色校园综合激情亚洲| 成人小视频在线| 99在线精品观看| 成人动漫在线一区| 色天天综合色天天久久| 在线免费观看日本一区| 欧美久久久久中文字幕| 91精品国产入口在线| 欧美老肥妇做.爰bbww| 日韩欧美资源站| 国产午夜亚洲精品理论片色戒| 日本一区二区三区电影| 亚洲欧洲精品天堂一级| 亚洲午夜成aⅴ人片| 蜜桃视频一区二区三区| 国产高清精品久久久久| 97久久精品人人做人人爽| 欧美性大战久久久久久久蜜臀| 91精品国产免费久久综合| 久久免费的精品国产v∧| 综合欧美亚洲日本| 日韩精品国产欧美| 成人免费福利片| 欧美日韩精品专区| 国产亚洲婷婷免费| 亚洲精品国产精品乱码不99| 日韩福利电影在线| 成人av片在线观看| 欧美一区二区福利视频| 中文字幕乱码久久午夜不卡| 视频一区免费在线观看| 国产成人在线观看| 欧美日韩aaa| 国产清纯白嫩初高生在线观看91| 一区二区在线看| 国产精品91xxx| 欧美夫妻性生活| 国产精品毛片大码女人| 免费看黄色91| 欧美午夜精品理论片a级按摩| 久久久久免费观看| 视频一区二区三区在线| 99久久综合精品| 久久综合狠狠综合久久综合88 | av在线综合网| 欧美成人精精品一区二区频| 亚洲狼人国产精品| 国产福利一区在线观看| 91精品国产综合久久香蕉的特点 | 色狠狠一区二区三区香蕉| 精品国产乱码久久久久久夜甘婷婷| 一区二区在线电影| 国产成人8x视频一区二区| 日韩视频中午一区| 亚洲成人自拍网| 在线观看日韩av先锋影音电影院| 中文字幕电影一区| 国产精品一级二级三级| 日韩精品中午字幕| 青青草97国产精品免费观看无弹窗版| 色综合亚洲欧洲| 1024成人网| 99riav一区二区三区| 欧美国产国产综合| 盗摄精品av一区二区三区| 久久久精品国产99久久精品芒果| 激情图片小说一区| 久久亚洲私人国产精品va媚药| 日韩精品三区四区| 日韩欧美亚洲国产另类| 蜜臀av性久久久久蜜臀aⅴ| 欧美高清视频一二三区| 日产国产欧美视频一区精品| 91精品国产综合久久蜜臀 | 国产欧美综合色| 国产精品99久久久久久久女警 | 久久精品人人做人人综合| 久久精品国产99| 久久亚洲综合色一区二区三区| 国模冰冰炮一区二区| 精品国精品自拍自在线| 高清日韩电视剧大全免费| 国产精品久久网站| 色噜噜狠狠成人网p站| 2023国产精品视频| 亚洲日本电影在线| 天堂在线亚洲视频| 91精品国产免费| 韩国三级中文字幕hd久久精品| 久久伊99综合婷婷久久伊| 国产91清纯白嫩初高中在线观看| 亚洲欧美日韩人成在线播放| 欧美日韩亚洲国产综合| 麻豆91免费看| 国产精品乱码一区二三区小蝌蚪| 色88888久久久久久影院野外| 丝袜亚洲精品中文字幕一区| 精品成人在线观看| 91在线码无精品| 亚洲一区二区三区四区不卡| 日韩免费一区二区三区在线播放| 国产成人精品在线看| 亚洲欧美日本韩国| 日韩一区二区电影网| 99视频在线精品| 蜜臀av性久久久久蜜臀aⅴ| 国产免费成人在线视频| 欧美亚洲日本国产| 国产精品一二三区在线| 亚洲精品va在线观看| 精品国产百合女同互慰| 一本色道久久综合精品竹菊| 激情另类小说区图片区视频区| 日韩美女啊v在线免费观看| 91精品久久久久久蜜臀| 99精品1区2区| 国产自产高清不卡| 亚洲成人资源网| 国产精品每日更新在线播放网址| 欧美精品一二三区| 99麻豆久久久国产精品免费| 国内久久精品视频| 亚洲电影你懂得| 亚洲免费资源在线播放| 国产日韩欧美综合在线| 在线观看91av| 91福利在线观看| 成人国产亚洲欧美成人综合网| 青青草原综合久久大伊人精品| 亚洲美女在线一区| 欧美国产一区二区| 亚洲精品一区二区三区精华液 | 欧美午夜精品久久久久久超碰| 国产一区二区三区不卡在线观看| 午夜精品久久久久影视| 亚洲色图欧洲色图婷婷| 国产精品国产三级国产aⅴ入口| 欧美tickle裸体挠脚心vk| 欧美三级欧美一级| 日本道免费精品一区二区三区| 丁香婷婷深情五月亚洲| 国产成人免费在线| 丁香桃色午夜亚洲一区二区三区| 久草精品在线观看| 蜜桃av噜噜一区二区三区小说| 亚洲大片在线观看| 丝瓜av网站精品一区二区| 五月天网站亚洲| 日韩精品电影在线| 蜜桃久久久久久久| 激情久久久久久久久久久久久久久久| 捆绑变态av一区二区三区| 老司机午夜精品| 国产曰批免费观看久久久| 极品美女销魂一区二区三区| 国内精品写真在线观看 | 国产欧美综合在线| 欧美高清在线一区二区| 中文字幕日韩av资源站| 亚洲免费色视频| 午夜激情久久久| 日本va欧美va精品发布| 九九在线精品视频| 成人午夜视频在线| 99久久99久久免费精品蜜臀| 欧洲一区二区三区在线| 欧美性猛交xxxxxx富婆| 日韩精品中文字幕在线不卡尤物| 久久亚洲捆绑美女| 综合久久国产九一剧情麻豆| 亚洲超碰97人人做人人爱| 免费视频一区二区| 成人丝袜视频网| 欧美在线观看你懂的| 精品日韩欧美一区二区| 一区二区中文字幕在线| 亚洲成人午夜影院| 国产精品综合视频| 日本韩国欧美三级| 精品久久久网站| 亚洲欧美综合色| 日韩国产高清在线| 成人福利视频网站| 欧美一区午夜视频在线观看| 中文字幕精品综合| 日韩国产一二三区| av午夜精品一区二区三区| 欧美日高清视频| 日韩伦理电影网| 狠狠色综合色综合网络| 欧美亚洲动漫另类| 国产精品欧美综合在线| 日韩综合在线视频|