⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flash.lst

📁 基于凌阳的大名鼎鼎的杰克机器人代码。
💻 LST
📖 第 1 页 / 共 2 页
字号:
                     <      	//////////////////////////////////////////////////
                     <      	
                     <      	
                     <      	.EXTERNAL 	F_SP_RampUpDAC1
                     <      	.EXTERNAL 	F_SP_RampDnDAC1
                     <      	.EXTERNAL 	F_SP_RampUpDAC2
                     <      	.EXTERNAL 	F_SP_RampDnDAC2
                     <      	
                     <      	.EXTERNAL 	F_SP_InitQueue
                     <      	.EXTERNAL 	F_SP_InitQueue_A2000
                     <      	.EXTERNAL 	F_SP_InitQueue_S480
                     <      	.EXTERNAL 	F_SP_InitQueue_S240
                     <      	.EXTERNAL 	F_SP_InitQueue_MS01
                     <      	.EXTERNAL 	F_SP_InitQueue_DVR
                     <      	
                     <      	.EXTERNAL 	F_SP_ReadQueue
                     <      	.EXTERNAL 	F_SP_ReadQueue_A2000
                     <      	.EXTERNAL 	F_SP_ReadQueue_S480
                     <      	.EXTERNAL 	F_SP_ReadQueue_S240
                     <      	.EXTERNAL 	F_SP_ReadQueue_MS01
                     <      	.EXTERNAL 	F_SP_ReadQueue_DVR
                     <      	
                     <      	.EXTERNAL 	F_SP_WriteQueue
                     <      	.EXTERNAL 	F_SP_WriteQueue_A2000
                     <      	.EXTERNAL 	F_SP_WriteQueue_S480
                     <      	.EXTERNAL 	F_SP_WriteQueue_S240
                     <      	.EXTERNAL 	F_SP_WriteQueue_MS01
                     <      	.EXTERNAL 	F_SP_WriteQueue_DVR
                     <      	
                     <      	.EXTERNAL 	F_SP_TestQueue
                     <      	.EXTERNAL 	F_SP_TestQueue_A2000
                     <      	.EXTERNAL 	F_SP_TestQueue_S480
                     <      	.EXTERNAL 	F_SP_TestQueue_S240
                     <      	.EXTERNAL 	F_SP_TestQueue_MS01
                     <      	.EXTERNAL 	F_SP_TestQueue_DVR
                     <      	
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC		// Read queue with no index change
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC_A2000
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC_S480
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC_S240
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC_MS01
                     <      	.EXTERNAL	F_SP_ReadQueue_NIC_DVR
                     <      	
                     <      	
                     <      	.EXTERNAL	F_SP_SACM_A2000_Init_
                     <      	.EXTERNAL	F_SP_SACM_S480_Init_
                     <      	.EXTERNAL	F_SP_SACM_S240_Init_
                     <      	
                     <      	.EXTERNAL	F_SP_SACM_MS01_Init_
                     <      	.EXTERNAL	F_SP_PlayMode0_
                     <      	.EXTERNAL	F_SP_PlayMode1_
                     <      	.EXTERNAL	F_SP_PlayMode2_
                     <      	.EXTERNAL	F_SP_PlayMode3_
                     <      	
                     <      	.EXTERNAL	F_SP_SACM_DVR_Init_
                     <      	.EXTERNAL 	F_SP_SACM_DVR_Rec_Init_
                     <      	.EXTERNAL 	F_SP_SACM_DVR_Play_Init_
                     <      	
                     <      	.EXTERNAL	F_SP_GetResource
                     <      	
                     <      	//////////////////////////////////////////////////////////////////
                     <      	// Reserve old defintion
                     <      	// Note: Some user who use old library may use the old name
                     <      	//////////////////////////////////////////////////////////////////
                     <      	.EXTERNAL	F_SP_Send_PWM					// Get RAW data 
                     <      	.EXTERNAL	F_SP_Send_DAC1 					// 
                     <      	.EXTERNAL	F_SP_Send_DAC2 					//
                     <      	
                     <      	.EXTERNAL	F_STD_Send_DAC1 				// reserved old
                     <      	.EXTERNAL	F_STD_Send_DAC2 				// reserved old
                     <      	
                     <      	.EXTERNAL 	F_RampUpDAC1					// reserved old
                     <      	.EXTERNAL 	F_RampDnDAC1					// reserved old
                     <      	.EXTERNAL 	F_RampUpDAC2					// reserved old
                     <      	.EXTERNAL  	F_RampDnDAC2					// reserved old
                     <      	///////////////////////////////////////////////////////////////////
                     <      	
                     <      	
                     <      		
                     <      	//========================================================================================        
                     <      	// End of hardware.inc
                     <      	//========================================================================================
                            	
                            	.DEFINE C_FLASH_SIZE			0x8000
                            	.DEFINE C_FLASH_BLOCK_SIZE		0x100		//256个字节
                            	.DEFINE C_FLASH_MATCH			0xAAAA		//识别字
                            	.DEFINE C_FLASH_PAGE_ERASE		0x5511		//命令字_擦除一页
                            	.DEFINE C_FLASH_MASS_ERASE		0x5522		//命令字_整体擦除
                            	.DEFINE C_FLASH_1WORD_PGM		0x5533		//命令字_写一个字
                            	.DEFINE C_FLASH_SEQUENT_PGM		0x5544		//命令字_写多个字
                            	.DEFINE C_FLASH_MAIN_BLOCK		0x5555
                            	.DEFINE C_FLASH_INFORM_BLOCK	0x5566
                            	
                            	.DEFINE P_Flash_Ctrl  0x7555				//控制FLASH单元
                            	
0000B831                    	.CODE
                            	//============================================================
                            	//函数: F_FlashWrite1Word()
                            	//语法:void F_FlashWrite1Word(int addr,int Value)
                            	//描述:写一个字到FLASH中
                            	//参数:1、被写数据的存储地址
                            	//      2、被写数据
                            	//返回:无
                            	//============================================================
                            	.PUBLIC _F_FlashWrite1Word
                            	_F_FlashWrite1Word:	 .proc 
0000B831 88 DA              		push bp to [sp]
                            		
0000B832 08 0B 01 00        		bp = sp+1
0000B834 09 93 AA AA        		r1 = C_FLASH_MATCH				//AAAA
0000B836 19 D3 55 75        		[P_Flash_Ctrl] = r1
0000B838 09 93 33 55        		r1 = C_FLASH_1WORD_PGM			//5533
0000B83A 19 D3 55 75        		[P_Flash_Ctrl] = r1
0000B83C 03 92              		r1 =  [bp+3]					//flash address
0000B83D 04 94              		r2 =  [bp+4]					//data
0000B83E C1 D4              		[r1] = r2
                            		
0000B83F 88 98              		pop bp from [sp]
0000B840 90 9A              		retf
                            		.ENDP
                            	
                            	//============================================================
                            	//函数:F_FlashWrite()
                            	//语法:F_FlashWrite(int sector,int &num,int size)
                            	//描述:顺序写多个字
                            	//参数:1、被写数据的起始地址 
                            	//      2、被写数据 
                            	//      3、写数据的数量
                            	//返回:无
                            	//============================================================ 
                            	.PUBLIC _F_FlashWrite
                            	_F_FlashWrite: .proc 
0000B841 88 DA              		push bp to [sp]
                            		
0000B842 08 0B 01 00        		bp = sp+1
0000B844 03 92              		r1 = [bp+3]						//flash base address
0000B845 04 94              		r2 = [bp+4]						//data
0000B846 05 96              		r3 = [bp+5]						//多个字节	
0000B847 0C 99 AA AA        		r4 = C_FLASH_MATCH				//AAAA
0000B849 1C D9 55 75        		[P_Flash_Ctrl] = r4
                            	L_FlashWriteLoop:
0000B84B 0C 99 44 55        		r4 = C_FLASH_SEQUENT_PGM		//5544
0000B84D 1C D9 55 75        		[P_Flash_Ctrl] = r4
0000B84F D2 98              		r4 = [r2++]
0000B850 D1 D8              		[r1++] = r4
                            	
0000B851 41 26              		r3 -= 1
0000B852 48 4E              		jnz L_FlashWriteLoop
0000B853 1B D7 55 75        		[P_Flash_Ctrl] = r3				//写结束
                            		
0000B855 88 98              		pop bp from [sp]
0000B856 90 9A              		retf
                            		.ENDP
                            	
                            	
                            	// ===========================================================
                            	//函数:F_FlashErase()
                            	//语法:void F_FlashErase(sector)
                            	//描述:擦除256字节
                            	//参数: 擦除页的起始地址
                            	//返回:无
                            	// ===========================================================
                            	.PUBLIC _F_FlashErase
                            	_F_FlashErase: .proc 
0000B857 88 DA              		push bp to [sp]
                            		
0000B858 08 0B 01 00        		bp = sp + 1
0000B85A 09 93 AA AA        		r1 = C_FLASH_MATCH				//AAAA
0000B85C 19 D3 55 75        		[P_Flash_Ctrl] = r1
0000B85E 09 93 11 55        		r1 = C_FLASH_PAGE_ERASE			//5511
0000B860 19 D3 55 75        		[P_Flash_Ctrl] = r1
0000B862 03 92              		r1 = [bp+3]						//擦除一页
0000B863 C1 D2              		[r1] = r1
                            	
0000B864 88 98              		pop bp from [sp]
0000B865 90 9A              		retf
                            		.ENDP
                            	    .END
0 error(s), 0 warning(s).

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -