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

📄 extflash.lst

📁 利用zigbee进行定位的程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
   1               		.file	"extflash.c"
   2               		.arch atmega128
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
 118               	.global	extflash_ini
 120               	extflash_ini:
   1:extflash.c    **** //----------------------------------------------------//
   2:extflash.c    **** //-------Institute Of  Computing Technology-----------//
   3:extflash.c    **** //------------Chinese Academic  Science---------------//
   4:extflash.c    **** //-----中国科学院计算技术研究所先进测试技术实验室-----//
   5:extflash.c    **** //----------------------------------------------------//
   6:extflash.c    **** 
   7:extflash.c    **** /**
   8:extflash.c    ****  * @copyright:nbicc_lpp
   9:extflash.c    ****  * @this is this is extflash support  code
  10:extflash.c    ****  * @author 
  11:extflash.c    ****  *              zhouqiang      (zhouhongren@163.com)
  12:extflash.c    ****  *              
  13:extflash.c    ****  * @data:2005.12.29
  14:extflash.c    ****  * @version:0.0.1
  15:extflash.c    ****  * @updata:$
  16:extflash.c    ****  *
  17:extflash.c    ****  */
  18:extflash.c    **** #include "extflash.h"
  19:extflash.c    **** //--------------------------------
  20:extflash.c    **** //FLASH_IN--so
  21:extflash.c    **** //FLASH_OUT--si
  22:extflash.c    **** //FLASH_CLK--sck
  23:extflash.c    **** //FLASH_SELECT----cs
  24:extflash.c    **** //--------------------------------
  25:extflash.c    ****  
  26:extflash.c    **** 
  27:extflash.c    ****   //OS_SET_FLASH_SELECT_PIN();
  28:extflash.c    **** inline void extflash_ini(void)
  29:extflash.c    **** {
 122               	.LM1:
 123               	/* prologue: frame size=0 */
 124               	/* prologue end (size=0) */
  30:extflash.c    **** );
 126               	.LM2:
 127 0000 0E94 0000 		call OS_MAKE_FLASH_SELECT_OUTPUT
  31:extflash.c    ****  	OS_MAKE_FLASH_OUT_OUTPUT();
 129               	.LM3:
 130 0004 0E94 0000 		call OS_MAKE_FLASH_OUT_OUTPUT
  32:extflash.c    **** OS_MAKE_FLASH_IN_INPUT();
 132               	.LM4:
 133 0008 0E94 0000 		call OS_MAKE_FLASH_IN_INPUT
  33:extflash.c    ****       OS_MAKE_FLASH_CLK_OUTPUT();
 135               	.LM5:
 136 000c 0E94 0000 		call OS_MAKE_FLASH_CLK_OUTPUT
  34:extflash.c    ****    
  35:extflash.c    ****        OS_SET_FLASH_SELECT_PIN();
 138               	.LM6:
 139 0010 0E94 0000 		call OS_SET_FLASH_SELECT_PIN
  36:extflash.c    **** lash_busy=0;
 141               	.LM7:
 142 0014 1092 0000 		sts flash_busy,__zero_reg__
 143               	/* epilogue: frame size=0 */
 144 0018 0895      		ret
 145               	/* epilogue end (size=1) */
 146               	/* function extflash_ini size 13 (12) */
 153               	.global	Continuous_Array_Read
 155               	Continuous_Array_Read:
  37:extflash.c    ****       /*another method
  38:extflash.c    **** 	//----------------------------
  39:extflash.c    **** 	//initial uart1 to syn model
  40:extflash.c    **** 	//----------------------------
  41:extflash.c    **** 	
  42:extflash.c    **** 	 UCSR1B = 0x00; //disable while setting baud rate
  43:extflash.c    **** 	 UCSR1A = 0x03;
  44:extflash.c    **** 	 UCSR1C = 0x41;
  45:extflash.c    **** 	 UBRR1L = 0x22; //set baud rate lo
  46:extflash.c    **** 	 UBRR1H = 0x00; //set baud rate hi
  47:extflash.c    **** 	 UCSR1B = 0x18;
  48:extflash.c    ****        //115200 
  49:extflash.c    **** 	//----------------------------
  50:extflash.c    **** 	*/
  51:extflash.c    **** }
  52:extflash.c    **** inline static  void sendonebyte(uint8_t byte)
  53:extflash.c    **** {
  54:extflash.c    ****     
  55:extflash.c    **** 	uint8_t  tempbyte;
  56:extflash.c    **** 	tempbyte=byte;
  57:extflash.c    **** 	{ os_atomic_t _nesc_atomic = os_atomic_start();
  58:extflash.c    ****    				 {
  59:extflash.c    **** 	for (int i=0;i<8;i++)
  60:extflash.c    **** 		{
  61:extflash.c    **** 			
  62:extflash.c    **** 			OS_CLR_FLASH_CLK_PIN();
  63:extflash.c    **** 			
  64:extflash.c    **** 			if (tempbyte&0x80)
  65:extflash.c    **** 				{
  66:extflash.c    **** 					
  67:extflash.c    **** 					PORTD|=_BV(PIND3);
  68:extflash.c    **** 					
  69:extflash.c    **** 				}
  70:extflash.c    **** 			else
  71:extflash.c    **** 				{
  72:extflash.c    **** 					
  73:extflash.c    **** 					PORTD&=~_BV(PIND3);
  74:extflash.c    **** 					
  75:extflash.c    **** 				}
  76:extflash.c    **** 			
  77:extflash.c    **** 			//printf("\nPD is %02x\n",PORTD);
  78:extflash.c    **** 			OS_SET_FLASH_CLK_PIN();
  79:extflash.c    **** 			
  80:extflash.c    **** 			
  81:extflash.c    **** 			tempbyte<<=1;
  82:extflash.c    **** 		}
  83:extflash.c    ****       
  84:extflash.c    ****         	}
  85:extflash.c    **** 			 os_atomic_end(_nesc_atomic); }
  86:extflash.c    **** }
  87:extflash.c    **** 
  88:extflash.c    **** inline static  uint8_t readonebyte(void)
  89:extflash.c    **** {
  90:extflash.c    ****        
  91:extflash.c    **** 	uint8_t tempbyte=0;
  92:extflash.c    **** 	{ os_atomic_t _nesc_atomic = os_atomic_start();
  93:extflash.c    ****    				 {
  94:extflash.c    **** 	for (int i=0;i<7;i++)
  95:extflash.c    **** 		{
  96:extflash.c    **** 			OS_CLR_FLASH_CLK_PIN();
  97:extflash.c    **** 			OS_SET_FLASH_CLK_PIN();
  98:extflash.c    **** 			//printf("\nPD is %02x\n",PIND);
  99:extflash.c    **** 			if (PIND&_BV(PIND2))
 100:extflash.c    **** 				tempbyte|=0x01;
 101:extflash.c    **** 			else
 102:extflash.c    **** 				tempbyte&=0xfe;
 103:extflash.c    **** 			//OS_CLR_FLASH_CLK_PIN();
 104:extflash.c    **** 			
 105:extflash.c    **** 			tempbyte<<=1;
 106:extflash.c    **** 		}
 107:extflash.c    **** 	OS_CLR_FLASH_CLK_PIN();
 108:extflash.c    ****        OS_SET_FLASH_CLK_PIN();
 109:extflash.c    **** 	   
 110:extflash.c    **** 	
 111:extflash.c    **** 	//printf("\nPD is %02x\n",PIND);
 112:extflash.c    **** 	if (PIND&_BV(PIND2))
 113:extflash.c    **** 		tempbyte|=0x01;
 114:extflash.c    **** 	else
 115:extflash.c    **** 		tempbyte&=0xfe;
 116:extflash.c    **** 	//OS_CLR_FLASH_CLK_PIN();
 117:extflash.c    **** 	//printf("\ntempbyte  is %02x\n",tempbyte);	
 118:extflash.c    **** 	}
 119:extflash.c    **** 	os_atomic_end(_nesc_atomic); }
 120:extflash.c    **** 	return tempbyte;
 121:extflash.c    **** 			
 122:extflash.c    **** 	
 123:extflash.c    **** 	
 124:extflash.c    **** }
 125:extflash.c    **** void Continuous_Array_Read(uint16_t address,uint16_t page,uint8_t * buffer,uint16_t numbers)
 126:extflash.c    **** {
 157               	.LM8:
 158               	/* prologue: frame size=0 */
 159 001a 8F92      		push r8
 160 001c 9F92      		push r9
 161 001e AF92      		push r10
 162 0020 BF92      		push r11
 163 0022 CF92      		push r12
 164 0024 DF92      		push r13
 165 0026 EF92      		push r14
 166 0028 FF92      		push r15
 167 002a 0F93      		push r16
 168 002c 1F93      		push r17
 169 002e CF93      		push r28
 170 0030 DF93      		push r29
 171               	/* prologue end (size=12) */
 172 0032 EE24      		clr r14
 173 0034 FF24      		clr r15
 174 0036 8701      		movw r16,r14
 175 0038 4A01      		movw r8,r20
 176 003a 5901      		movw r10,r18
 127:extflash.c    **** 
 128:extflash.c    **** 	tempnumbers=numbers;
 129:extflash.c    **** 	temphead._extflash_head.opcode=Continuou_Array_Read;
 130:extflash.c    **** 	temphead._extflash_head.page=page&0x07ff;
 131:extflash.c    **** 	temphead._extflash_head.block_byte=address&0x01ff;
 132:extflash.c    **** 
 178               	.LM9:
 179 003c 18E6      		ldi r17,lo8(104)
 133:extflash.c    **** _CLR_FLASH_CLK_PIN();
 181               	.LM10:
 182 003e 9B01      		movw r18,r22
 183 0040 4427      		clr r20
 184 0042 5527      		clr r21
 185 0044 3770      		andi r19,hi8(2047)
 186 0046 4070      		andi r20,hlo8(2047)
 187 0048 5070      		andi r21,hhi8(2047)
 188 004a 722F      		mov r23,r18
 189 004c 770F      		lsl r23
 190 004e 6F2D      		mov r22,r15
 191 0050 6170      		andi r22,lo8(1)
 192 0052 F62E      		mov r15,r22
 193 0054 F72A      		or r15,r23
 194 0056 722F      		mov r23,r18
 195 0058 771F      		rol r23
 196 005a 7727      		clr r23
 197 005c 771F      		rol r23
 198 005e 602F      		mov r22,r16
 199 0060 6E7F      		andi r22,lo8(-2)
 200 0062 062F      		mov r16,r22
 201 0064 072B      		or r16,r23
 202 0066 232F      		mov r18,r19
 203 0068 2770      		andi r18,lo8(7)
 204 006a 220F      		lsl r18
 205 006c 302F      		mov r19,r16
 206 006e 317F      		andi r19,lo8(-15)
 207 0070 032F      		mov r16,r19
 208 0072 022B      		or r16,r18
 134:extflash.c    **** 
 210               	.LM11:
 211 0074 AA27      		clr r26
 212 0076 BB27      		clr r27
 213 0078 9170      		andi r25,hi8(511)
 214 007a A070      		andi r26,hlo8(511)
 215 007c B070      		andi r27,hhi8(511)
 216 007e E82E      		mov r14,r24
 217 0080 9170      		andi r25,lo8(1)
 218 0082 8F2D      		mov r24,r15
 219 0084 8E7F      		andi r24,lo8(-2)
 220 0086 F82E      		mov r15,r24
 221 0088 F92A      		or r15,r25
 135:extflash.c    **** 	OS_CLR_FLASH_SELECT_PIN();//选通flash
 136:extflash.c    **** 		sendonebyte(temphead.v[3]);
 137:extflash.c    **** 		sendonebyte(temphead.v[2]);
 138:extflash.c    **** 		sendonebyte(temphead.v[1]);
 223               	.LM12:
 224 008a 0E94 0000 		call OS_CLR_FLASH_SELECT_PIN
 225               	.LBB2:
 227               	.LM13:
 228 008e D12E      		mov r13,r17
 229               	.LBB3:
 230               	.LBB4:
 232               	.LM14:
 233 0090 0E94 0000 		call os_atomic_start
 234 0094 C82E      		mov r12,r24
 235 0096 C7E0      		ldi r28,lo8(7)
 236 0098 D0E0      		ldi r29,hi8(7)
 237               	.L8:
 238               	.LBB5:
 240               	.LM15:
 241 009a 0E94 0000 		call OS_CLR_FLASH_CLK_PIN
 243               	.LM16:
 244 009e D7FE      		sbrs r13,7
 245 00a0 02C0      		rjmp .L6
 247               	.LM17:
 248 00a2 939A      		sbi 50-0x20,3
 249 00a4 01C0      		rjmp .L7
 250               	.L6:
 252               	.LM18:
 253 00a6 9398      		cbi 50-0x20,3
 254               	.L7:
 256               	.LM19:
 257 00a8 0E94 0000 		call OS_SET_FLASH_CLK_PIN
 259               	.LM20:
 260 00ac DD0C      		lsl r13
 262               	.LM21:
 263 00ae 2197      		sbiw r28,1
 264 00b0 D7FF      		sbrs r29,7
 265 00b2 F3CF      		rjmp .L8
 266               	.LBE5:
 268               	.LM22:
 269 00b4 8C2D      		mov r24,r12
 270 00b6 0E94 0000 		call os_atomic_end
 271               	.LBE4:
 272               	.LBE3:
 273               	.LBE2:
 274               	.LBB6:
 276               	.LM23:
 277 00ba D02E      		mov r13,r16
 278               	.LBB7:
 279               	.LBB8:
 281               	.LM24:
 282 00bc 0E94 0000 		call os_atomic_start
 283 00c0 C82E      		mov r12,r24
 284 00c2 C7E0      		ldi r28,lo8(7)
 285 00c4 D0E0      		ldi r29,hi8(7)
 286               	.L15:
 287               	.LBB9:
 289               	.LM25:
 290 00c6 0E94 0000 		call OS_CLR_FLASH_CLK_PIN
 292               	.LM26:
 293 00ca D7FE      		sbrs r13,7
 294 00cc 02C0      		rjmp .L13
 296               	.LM27:
 297 00ce 939A      		sbi 50-0x20,3
 298 00d0 01C0      		rjmp .L14
 299               	.L13:
 301               	.LM28:
 302 00d2 9398      		cbi 50-0x20,3
 303               	.L14:
 305               	.LM29:
 306 00d4 0E94 0000 		call OS_SET_FLASH_CLK_PIN
 308               	.LM30:
 309 00d8 DD0C      		lsl r13
 311               	.LM31:
 312 00da 2197      		sbiw r28,1
 313 00dc D7FF      		sbrs r29,7
 314 00de F3CF      		rjmp .L15
 315               	.LBE9:
 317               	.LM32:
 318 00e0 8C2D      		mov r24,r12
 319 00e2 0E94 0000 		call os_atomic_end
 320               	.LBE8:
 321               	.LBE7:
 322               	.LBE6:
 323               	.LBB10:
 325               	.LM33:
 326 00e6 DF2C      		mov r13,r15
 327               	.LBB11:
 328               	.LBB12:
 330               	.LM34:
 331 00e8 0E94 0000 		call os_atomic_start
 332 00ec C82E      		mov r12,r24
 333 00ee C7E0      		ldi r28,lo8(7)
 334 00f0 D0E0      		ldi r29,hi8(7)
 335               	.L22:
 336               	.LBB13:
 338               	.LM35:
 339 00f2 0E94 0000 		call OS_CLR_FLASH_CLK_PIN
 341               	.LM36:
 342 00f6 D7FE      		sbrs r13,7
 343 00f8 02C0      		rjmp .L20
 345               	.LM37:
 346 00fa 939A      		sbi 50-0x20,3
 347 00fc 01C0      		rjmp .L21
 348               	.L20:
 350               	.LM38:
 351 00fe 9398      		cbi 50-0x20,3
 352               	.L21:
 354               	.LM39:
 355 0100 0E94 0000 		call OS_SET_FLASH_CLK_PIN
 357               	.LM40:
 358 0104 DD0C      		lsl r13
 360               	.LM41:
 361 0106 2197      		sbiw r28,1
 362 0108 D7FF      		sbrs r29,7
 363 010a F3CF      		rjmp .L22
 364               	.LBE13:
 366               	.LM42:
 367 010c 8C2D      		mov r24,r12
 368 010e 0E94 0000 		call os_atomic_end
 369               	.LBE12:
 370               	.LBE11:
 371               	.LBE10:
 372               	.LBB14:
 373               	.LBB15:
 375               	.LM43:
 376 0112 1E2D      		mov r17,r14
 377               	.LBB16:
 379               	.LM44:
 380 0114 0E94 0000 		call os_atomic_start
 381 0118 082F      		mov r16,r24
 382 011a C7E0      		ldi r28,lo8(7)
 383 011c D0E0      		ldi r29,hi8(7)

⌨️ 快捷键说明

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