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

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

?? physical.lst

?? 一個WSN的樹狀路由,對于那些學WSN路由方面的朋友應該有說幫助.
?? LST
?? 第 1 頁 / 共 3 頁
字號:
   1               		.file	"physical.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:
  87               	.global	update_crc
  89               	update_crc:
   1:physical.c    **** /*
   2:physical.c    **** ****************************************************************************
   3:physical.c    **** *              寧波中科集成電路設計中心  版權所有 Copyright 2005
   4:physical.c    **** *						http:\\www.nbicc.com
   5:physical.c    **** *文件名:  physical.h
   6:physical.c    **** *程序員:  夏鵬		xpsonny@nbicc.com
   7:physical.c    **** *主要內容  物理層調度控制
   8:physical.c    **** 
   9:physical.c    **** *如有問題或BUG,請登錄www.wsn.net.cn 提問或用郵件和作者聯系
  10:physical.c    **** ****************************************************************************
  11:physical.c    **** */
  12:physical.c    **** 
  13:physical.c    **** #include "physical.h"
  14:physical.c    **** #include "message.h"
  15:physical.c    **** #include "radiocontrol.h"
  16:physical.c    **** #include "os.h"
  17:physical.c    **** #include "mac.h"
  18:physical.c    **** 
  19:physical.c    **** //static result_t PhysicalIdle(void);										// 進入空閑
  20:physical.c    **** //static result_t PhysicalSleep(void);										// 睡眠
  21:physical.c    **** 
  22:physical.c    **** //extern uint8_t  OS_BCAST_ADDR;
  23:physical.c    **** 											// 物理層狀態值
  24:physical.c    **** enum {
  25:physical.c    ****     IDLE,
  26:physical.c    ****     RECEIVING,
  27:physical.c    ****     TRANSMITTING,
  28:physical.c    ****     TRANSMITTING_LAST,
  29:physical.c    ****     TRANSMITTING_DONE
  30:physical.c    **** };
  31:physical.c    **** 
  32:physical.c    **** enum {FREE, BUSY};							// 緩存狀態
  33:physical.c    **** 
  34:physical.c    **** static char state;							// 物理層狀態變量
  35:physical.c    **** static uint8_t pktLength;							// 包括包頭的包長度
  36:physical.c    **** static OSMACMsg buffer1;							// 用于接收和處理的緩存空間
  37:physical.c    **** static OSMACMsg buffer2;
  38:physical.c    **** static char recvBufState;							// 接收緩存狀態
  39:physical.c    **** static char procBufState;							// 處理緩存狀態
  40:physical.c    **** static char* procBufPtr;							// 處理緩存地址,用于接收和處理緩存地址交換
  41:physical.c    **** static char* sendPtr;								// 指向發送緩存,由上層分配
  42:physical.c    **** static char* recvPtr;								// 指向接收緩存
  43:physical.c    **** static char* procPtr;								// 指向處理緩存
  44:physical.c    **** static uint8_t txCount;						// 發送字節計數變量
  45:physical.c    **** static uint8_t recvCount;							// 接收字節計數變量
  46:physical.c    **** static int16_t crcRx;								// 接收數據包CRC計算結果
  47:physical.c    **** static int16_t crcTx;								// 發送數據包CRC計算結果
  48:physical.c    **** 
  49:physical.c    **** /*************************************************************************
  50:physical.c    **** *功能描述:16位CRC計算
  51:physical.c    **** *參數說明:待計算的八位數據,上一次計算的CRC結果
  52:physical.c    **** *返回值:  CRC計算一次后的結果
  53:physical.c    **** **************************************************************************/
  54:physical.c    **** int16_t update_crc(char data, int16_t crc)
  55:physical.c    **** {
  91               	.LM1:
  92               	/* prologue: frame size=0 */
  93               	/* prologue end (size=0) */
  56:physical.c    **** 	char i;
  57:physical.c    **** 	int16_t tmp;
  58:physical.c    **** 	tmp = (int16_t)(data);
  95               	.LM2:
  96 0000 9927      		clr r25
  59:physical.c    **** 	crc = crc ^ (tmp << 8);
  98               	.LM3:
  99 0002 982F      		mov r25,r24
 100 0004 8827      		clr r24
 101 0006 6827      		eor r22,r24
 102 0008 7927      		eor r23,r25
  60:physical.c    **** 	for (i = 0; i < 8; i++) {
 104               	.LM4:
 105 000a 20E0      		ldi r18,lo8(0)
 106 000c 41E2      		ldi r20,lo8(4129)
 107 000e 50E1      		ldi r21,hi8(4129)
 108               	.L7:
 109 0010 CB01      		movw r24,r22
 110 0012 880F      		lsl r24
 111 0014 991F      		rol r25
 112 0016 2F5F      		subi r18,lo8(-(1))
  61:physical.c    **** 		if (crc & 0x8000)
 114               	.LM5:
 115 0018 77FF      		sbrs r23,7
 116 001a 04C0      		rjmp .L5
  62:physical.c    ****             crc = (crc << 1) ^ 0x1021;  // << is done before ^
 118               	.LM6:
 119 001c BC01      		movw r22,r24
 120 001e 6427      		eor r22,r20
 121 0020 7527      		eor r23,r21
 122 0022 01C0      		rjmp .L4
 123               	.L5:
  63:physical.c    **** 		else
  64:physical.c    ****             crc = crc << 1;
 125               	.LM7:
 126 0024 BC01      		movw r22,r24
 127               	.L4:
 129               	.LM8:
 130 0026 2830      		cpi r18,lo8(8)
 131 0028 98F3      		brlo .L7
  65:physical.c    **** 	}
  66:physical.c    **** 	return crc;
  67:physical.c    **** }
 133               	.LM9:
 134 002a CB01      		movw r24,r22
 135               	/* epilogue: frame size=0 */
 136 002c 0895      		ret
 137               	/* epilogue end (size=1) */
 138               	/* function update_crc size 23 (22) */
 143               	.global	packet_received
 145               	packet_received:
  68:physical.c    **** 
  69:physical.c    **** /*************************************************************************
  70:physical.c    **** *功能描述:數據包接收完成任務函數,通知MAC接收處理緩存中的包,并清空處理緩存
  71:physical.c    **** *          和接收緩存
  72:physical.c    **** *參數說明:無
  73:physical.c    **** *返回值:  無
  74:physical.c    **** **************************************************************************/
  75:physical.c    **** void packet_received(void)
  76:physical.c    **** {
 147               	.LM10:
 148               	/* prologue: frame size=0 */
 149 002e CF93      		push r28
 150               	/* prologue end (size=1) */
  77:physical.c    **** 	//void* tmp;
  78:physical.c    **** 	char error, intEnabled;
  79:physical.c    **** 	uint8_t len;
  80:physical.c    **** 	len = (uint8_t)procPtr[0];
 152               	.LM11:
 153 0030 E091 0000 		lds r30,procPtr
 154 0034 F091 0000 		lds r31,(procPtr)+1
 155 0038 8081      		ld r24,Z
  81:physical.c    **** 	if (crcRx != *(int16_t*)(procPtr + len - 2)) {
 157               	.LM12:
 158 003a E80F      		add r30,r24
 159 003c F11D      		adc r31,__zero_reg__
 160 003e 3297      		sbiw r30,2
 161 0040 2091 0000 		lds r18,crcRx
 162 0044 3091 0000 		lds r19,(crcRx)+1
 163 0048 8081      		ld r24,Z
 164 004a 9181      		ldd r25,Z+1
 165 004c 2817      		cp r18,r24
 166 004e 3907      		cpc r19,r25
 167 0050 11F0      		breq .L11
  82:physical.c    **** 		error = 1;
 169               	.LM13:
 170 0052 61E0      		ldi r22,lo8(1)
 171 0054 01C0      		rjmp .L12
 172               	.L11:
  83:physical.c    **** 	} else {
  84:physical.c    **** 		error = 0;
 174               	.LM14:
 175 0056 60E0      		ldi r22,lo8(0)
 176               	.L12:
  85:physical.c    **** 	}
  86:physical.c    **** 	// 通知MAC對接收到的數據包進行處理
  87:physical.c    **** 	MACPhysicalRxPktDone(procPtr, error);
 178               	.LM15:
 179 0058 8091 0000 		lds r24,procPtr
 180 005c 9091 0000 		lds r25,(procPtr)+1
 181 0060 0E94 0000 		call MACPhysicalRxPktDone
  88:physical.c    **** 	intEnabled = (* (volatile unsigned char *) (0x3F + 0x20)) & 0x80;
 183               	.LM16:
 184 0064 CFB7      		in r28,95-0x20
 185 0066 C078      		andi r28,lo8(-128)
  89:physical.c    **** 		* (volatile unsigned char *) (0x3F + 0x20) &= ~0x80;		// 關中斷
 187               	.LM17:
 188 0068 8FB7      		in r24,95-0x20
 189 006a 8F77      		andi r24,lo8(127)
 190 006c 8FBF      		out 95-0x20,r24
  90:physical.c    **** 		if (recvBufState == BUSY) {									// 接收緩沖中有數據待處理
 192               	.LM18:
 193 006e 8091 0000 		lds r24,recvBufState
 194 0072 8130      		cpi r24,lo8(1)
 195 0074 C9F4      		brne .L13
  91:physical.c    ****             procPtr = recvPtr;										// 處理緩沖獲得待處理數據地址
 197               	.LM19:
 198 0076 2091 0000 		lds r18,recvPtr
 199 007a 3091 0000 		lds r19,(recvPtr)+1
 200 007e 3093 0000 		sts (procPtr)+1,r19
 201 0082 2093 0000 		sts procPtr,r18
  92:physical.c    ****             recvPtr = procBufPtr;
 203               	.LM20:
 204 0086 8091 0000 		lds r24,procBufPtr
 205 008a 9091 0000 		lds r25,(procBufPtr)+1
 206 008e 9093 0000 		sts (recvPtr)+1,r25
 207 0092 8093 0000 		sts recvPtr,r24
  93:physical.c    **** 			procBufPtr = procPtr;
 209               	.LM21:
 210 0096 3093 0000 		sts (procBufPtr)+1,r19
 211 009a 2093 0000 		sts procBufPtr,r18
  94:physical.c    **** 			recvBufState = FREE;  
 213               	.LM22:
 214 009e 1092 0000 		sts recvBufState,__zero_reg__
  95:physical.c    **** 		    packet_received();
 216               	.LM23:
 217 00a2 0E94 0000 		call packet_received
 218 00a6 02C0      		rjmp .L15
 219               	.L13:
  96:physical.c    **** 		} else {
  97:physical.c    ****             procBufState = FREE;									// 處理緩沖可用
 221               	.LM24:
 222 00a8 1092 0000 		sts procBufState,__zero_reg__
 223               	.L15:
  98:physical.c    **** 		}
  99:physical.c    **** 		if (intEnabled) 
 225               	.LM25:
 226 00ac CC23      		tst r28
 227 00ae 19F0      		breq .L10
 100:physical.c    **** 			* (volatile unsigned char *) (0x3F + 0x20) |= 0x80;		// 開中斷
 229               	.LM26:
 230 00b0 8FB7      		in r24,95-0x20
 231 00b2 8068      		ori r24,lo8(-128)
 232 00b4 8FBF      		out 95-0x20,r24
 233               	.L10:
 234               	/* epilogue: frame size=0 */
 235 00b6 CF91      		pop r28
 236 00b8 0895      		ret
 237               	/* epilogue end (size=2) */
 238               	/* function packet_received size 70 (67) */
 244               	.global	packet_sent
 246               	packet_sent:
 101:physical.c    **** 
 102:physical.c    **** }
 103:physical.c    **** 
 104:physical.c    **** /*************************************************************************
 105:physical.c    **** *功能描述:數據包發送完成任務函數,通知MAC數據包已經發送
 106:physical.c    **** *參數說明:無
 107:physical.c    **** *返回值:  無
 108:physical.c    **** **************************************************************************/
 109:physical.c    **** void packet_sent(void)
 110:physical.c    **** {
 248               	.LM27:
 249               	/* prologue: frame size=0 */
 250               	/* prologue end (size=0) */
 111:physical.c    **** 	MACPhysicalTxPktDone(sendPtr);
 252               	.LM28:
 253 00ba 8091 0000 		lds r24,sendPtr
 254 00be 9091 0000 		lds r25,(sendPtr)+1
 255 00c2 0E94 0000 		call MACPhysicalTxPktDone
 256               	/* epilogue: frame size=0 */
 257 00c6 0895      		ret
 258               	/* epilogue end (size=1) */
 259               	/* function packet_sent size 7 (6) */
 262               	.global	PhysicalInit
 264               	PhysicalInit:
 112:physical.c    **** }
 113:physical.c    **** 
 114:physical.c    **** /*************************************************************************
 115:physical.c    **** *功能描述:物理層初始化
 116:physical.c    **** *參數說明:無
 117:physical.c    **** *返回值:  無
 118:physical.c    **** **************************************************************************/
 119:physical.c    **** result_t PhysicalInit(void)
 120:physical.c    **** {
 266               	.LM29:
 267               	/* prologue: frame size=0 */
 268               	/* prologue end (size=0) */
 121:physical.c    **** 	state = IDLE;
 270               	.LM30:
 271 00c8 1092 0000 		sts state,__zero_reg__
 122:physical.c    **** 	recvPtr = (char*)&buffer1;
 273               	.LM31:
 274 00cc 80E0      		ldi r24,lo8(buffer1)
 275 00ce 90E0      		ldi r25,hi8(buffer1)
 276 00d0 9093 0000 		sts (recvPtr)+1,r25
 277 00d4 8093 0000 		sts recvPtr,r24
 123:physical.c    **** 	procBufPtr = (char*)&buffer2;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品影院一区二区久久久| 91丨九色porny丨蝌蚪| 国产精品久久久久四虎| 色狠狠色狠狠综合| 国产suv精品一区二区6| 亚洲国产成人va在线观看天堂 | 亚洲综合在线免费观看| 久久女同性恋中文字幕| 欧美精品在欧美一区二区少妇| 成人午夜精品一区二区三区| 亚洲欧洲精品成人久久奇米网| 欧洲精品在线观看| 国产在线视频精品一区| 一区二区三区蜜桃| 中文字幕制服丝袜成人av| 欧美日韩成人综合| 在线影院国内精品| 色偷偷久久一区二区三区| 成人黄页在线观看| 成人黄色av电影| 成人在线视频首页| 成人激情小说网站| av毛片久久久久**hd| av一本久道久久综合久久鬼色| 国产老妇另类xxxxx| 精品写真视频在线观看| 国产一区二区美女| 国产精品一区二区黑丝| 国产精品中文字幕欧美| 国产一区二区三区免费看| 国产一区在线不卡| 成人综合激情网| 99久久精品国产网站| 91福利在线观看| 欧美日韩亚洲国产综合| 91精品国产福利在线观看| 欧美一卡二卡三卡四卡| 91精品久久久久久蜜臀| 亚洲精品一区二区三区在线观看| 精品少妇一区二区三区| 久久精品欧美一区二区三区不卡 | 成人夜色视频网站在线观看| 国产成人日日夜夜| 91在线精品一区二区三区| 色婷婷精品久久二区二区蜜臀av| 欧美午夜在线观看| 日韩精品中文字幕在线不卡尤物 | 国产精品不卡视频| 夜夜揉揉日日人人青青一国产精品 | 亚洲成人精品在线观看| 亚洲精品成a人| 视频一区视频二区中文字幕| 精品一区二区三区在线观看| av中文字幕在线不卡| 大白屁股一区二区视频| 欧美视频一区二区三区在线观看| 日韩欧美一级片| 亚洲欧美日韩在线| 国模冰冰炮一区二区| 91极品视觉盛宴| 久久久.com| 偷拍自拍另类欧美| 成人视屏免费看| 91精品国产综合久久精品麻豆 | 正在播放亚洲一区| 中文天堂在线一区| 日日夜夜免费精品视频| av中文字幕不卡| 亚洲精品在线电影| 日韩国产欧美视频| 一本色道久久综合亚洲91| 2022国产精品视频| 午夜激情综合网| 99久久婷婷国产综合精品电影 | 91精品国产综合久久蜜臀| 中文字幕av资源一区| 强制捆绑调教一区二区| 色婷婷久久久久swag精品 | 欧美一区二区三区日韩| 中文久久乱码一区二区| 久久机这里只有精品| 欧洲人成人精品| 自拍偷拍欧美激情| 成人一区在线看| 国产亚洲一区二区在线观看| 日产精品久久久久久久性色| 成人福利电影精品一区二区在线观看| 欧美成人精品1314www| 日韩精品三区四区| 91精品婷婷国产综合久久性色| 国产精品少妇自拍| 国产毛片精品视频| 精品福利视频一区二区三区| 视频精品一区二区| 欧美人与z0zoxxxx视频| 亚洲va韩国va欧美va精品| 成人免费视频视频在线观看免费| 久久青草欧美一区二区三区| 五月天网站亚洲| 欧美老女人第四色| 日韩激情在线观看| 欧美电影一区二区| 美女久久久精品| 精品卡一卡二卡三卡四在线| 精品亚洲成a人| 精品88久久久久88久久久 | 欧美大片一区二区三区| 美女视频黄久久| 欧美疯狂做受xxxx富婆| 亚洲丝袜美腿综合| 91免费看视频| 最近中文字幕一区二区三区| 欧洲另类一二三四区| 亚洲成a人v欧美综合天堂| 日韩一级片网址| 黑人巨大精品欧美一区| 国产精品嫩草99a| 色综合天天综合在线视频| 亚洲一区二区三区四区在线| 在线播放国产精品二区一二区四区 | 亚洲欧美成人一区二区三区| 91免费观看在线| 免费成人av资源网| 国产日产精品1区| 欧美日韩一卡二卡三卡 | 久久se这里有精品| 国产精品区一区二区三| 91久久久免费一区二区| 美日韩一区二区| 亚洲欧洲av色图| 91精品国产欧美日韩| 国产91精品精华液一区二区三区 | 成a人片国产精品| 亚洲国产一区视频| 久久欧美中文字幕| 欧洲日韩一区二区三区| 午夜视频在线观看一区二区三区| 日韩免费视频一区| 欧美婷婷六月丁香综合色| 国产乱人伦偷精品视频免下载| 亚洲一区二区三区四区不卡| 久久久九九九九| 在线不卡免费欧美| 色系网站成人免费| 日韩福利视频导航| 国产日韩精品一区二区三区在线| 欧美在线综合视频| 福利电影一区二区| 免费高清在线视频一区·| 亚洲精品乱码久久久久久黑人| 欧美三级中文字幕在线观看| 美女网站色91| 丝瓜av网站精品一区二区| 亚洲视频 欧洲视频| 国产亚洲一区二区三区四区| 日韩欧美一区电影| 欧美日本一区二区三区四区| 97se亚洲国产综合自在线不卡 | 国产欧美一区二区在线观看| 制服丝袜激情欧洲亚洲| 欧美性大战久久久久久久蜜臀 | 中文字幕 久热精品 视频在线| 久久精品国产精品亚洲精品| 亚洲国产成人va在线观看天堂| 亚洲伦在线观看| 亚洲国产精品天堂| 青青青伊人色综合久久| 久久成人免费网| 国产成人精品一区二区三区网站观看| 国产精品一卡二卡在线观看| 国产.精品.日韩.另类.中文.在线.播放| 国产在线视视频有精品| 成人三级伦理片| 色哟哟一区二区| 欧美日韩在线一区二区| 日韩精品一区二区在线观看| 国产日产亚洲精品系列| 亚洲欧美另类久久久精品2019| 亚洲午夜久久久久久久久久久| 青青草精品视频| 国产不卡免费视频| 色综合久久天天综合网| 欧美一卡在线观看| 中文字幕一区在线观看| 日韩电影免费在线看| 狠狠色2019综合网| 欧美亚洲精品一区| 国产欧美一区二区在线观看| 亚洲图片欧美色图| 国产一区二区三区四区五区美女| 99精品国产91久久久久久| 制服丝袜成人动漫| 18成人在线视频| 久草在线在线精品观看| 91浏览器打开| 久久久精品中文字幕麻豆发布| 亚洲精品成人精品456| 狠狠色丁香久久婷婷综合丁香| 在线观看亚洲一区| 国产女主播一区|