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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mac.lst

?? adhoc匯聚節(jié)點(diǎn)程序源代碼(點(diǎn)對(duì)多點(diǎn))——for atmega128
?? LST
?? 第 1 頁 / 共 4 頁
字號(hào):
   1               		.file	"mac.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:
  80               	.global	OS_BCAST_ADDR
  81               		.data
  84               	OS_BCAST_ADDR:
  85 0000 FF        		.byte	-1
  86               	.global	OS_LOCAL_ADDRESS
  89               	OS_LOCAL_ADDRESS:
  90 0001 01        		.byte	1
  91               		.text
  93               	.global	MACInit
  95               	MACInit:
   1:mac.c         **** /*
   2:mac.c         **** ****************************************************************************  
   3:mac.c         **** *                        
   4:mac.c         **** *              寧波中科集成電路設(shè)計(jì)中心  版權(quán)所有 Copyright 2005
   5:mac.c         **** *
   6:mac.c         **** *文件名:  mac.c
   7:mac.c         **** *程序員:  xp
   8:mac.c         **** *主要內(nèi)容:mac通信協(xié)議棧MAC層
   9:mac.c         **** *完成日期:2005.8.28
  10:mac.c         **** ****************************************************************************
  11:mac.c         **** */
  12:mac.c         **** 
  13:mac.c         **** #include "os.h"
  14:mac.c         **** #include "mac.h"
  15:mac.c         **** #include "message.h"
  16:mac.c         **** #include "testBase.h"
  17:mac.c         **** #include "led.h"
  18:mac.c         **** #include "physical.h"
  19:mac.c         **** #include "uartPacket.h"
  20:mac.c         **** #include "fun.h"
  21:mac.c         **** #include "macClock.h"
  22:mac.c         **** #include "radiocontrol.h" // 載波監(jiān)聽
  23:mac.c         **** #include <avr/io.h>
  24:mac.c         **** #include <avr/interrupt.h>
  25:mac.c         **** 
  26:mac.c         **** uint8_t  OS_LOCAL_ADDRESS = 0x01;
  27:mac.c         **** uint8_t  OS_BCAST_ADDR = 0xFF;
  28:mac.c         **** 
  29:mac.c         **** 
  30:mac.c         **** #define MAC_RETRY_LIMIT 2							// RTS重傳最大次數(shù)
  31:mac.c         **** #define DIFS 10										// 空閑監(jiān)聽間隔
  32:mac.c         **** #define SIFS 1										// CTS,DATA,ACK包之前
  33:mac.c         **** #define EIFS 10										// 802.11在接收到錯(cuò)誤幀后的重新監(jiān)聽間隔
  34:mac.c         **** #define TX_PKT_DONE_TIME 2000
  35:mac.c         **** #define SLOTTIME 1									// MAC層競爭窗口時(shí)隙長度
  36:mac.c         **** #define DATA_CW 31									// 數(shù)據(jù)幀退避窗口最大值
  37:mac.c         **** #define GUARDTIME 5
  38:mac.c         **** 
  39:mac.c         **** // MAC層狀態(tài)
  40:mac.c         **** enum {
  41:mac.c         **** 	SLEEP,
  42:mac.c         **** 	IDLE,
  43:mac.c         **** 	CARR_SENSE,
  44:mac.c         **** 	TX_PKT,
  45:mac.c         **** 	BACKOFF,
  46:mac.c         **** 	WAIT_CTS,
  47:mac.c         **** 	WAIT_DATA,
  48:mac.c         **** 	WAIT_ACK
  49:mac.c         **** };
  50:mac.c         **** 
  51:mac.c         **** // 射頻狀態(tài)
  52:mac.c         **** enum { RADIO_SLEEP, RADIO_IDLE, RADIO_RX, RADIO_TX };
  53:mac.c         **** 
  54:mac.c         **** // 發(fā)送方式
  55:mac.c         **** enum { BCAST_DATA, SEND_SYNC, SEND_RTS, SEND_CTS, SEND_DATA, SEND_ACK };
  56:mac.c         **** 
  57:mac.c         **** // MAC 數(shù)據(jù)包類型
  58:mac.c         **** enum { RTS_PKT, CTS_PKT, DATA_PKT, ACK_PKT };
  59:mac.c         **** 
  60:mac.c         **** 
  61:mac.c         **** // 狀態(tài)變量
  62:mac.c         **** static char state;		// MAC 狀態(tài)變量
  63:mac.c         **** static char radioState;	// 
  64:mac.c         **** 
  65:mac.c         **** // 計(jì)時(shí)變量
  66:mac.c         **** uint32_t clockTime;		// 微秒為單位的MAC層時(shí)鐘計(jì)數(shù)變量
  67:mac.c         **** uint16_t durCtrlPkt;	// 發(fā)送控制幀需要的時(shí)間
  68:mac.c         **** uint16_t timeWaitCtrl;	// 等待控制幀CTS、ACK的時(shí)間
  69:mac.c         **** uint16_t durDataPkt;
  70:mac.c         **** uint16_t timeWaitData;	// 等待DATA的時(shí)間
  71:mac.c         **** uint16_t geneTime;		// 
  72:mac.c         **** uint8_t txDelay;		// 短幀間隔到達(dá)定時(shí),發(fā)送CTS、DATA、ACK之前等待的時(shí)間
  73:mac.c         **** uint8_t retryTime;		// 
  74:mac.c         **** 
  75:mac.c         **** // 發(fā)送相關(guān)變量
  76:mac.c         **** char txRequest;			// 是否接受了一個(gè)發(fā)送請(qǐng)求,且未發(fā)送
  77:mac.c         **** char howToSend;			// 發(fā)送包方式
  78:mac.c         **** uint16_t sendAddr;		// 目的節(jié)點(diǎn)地址
  79:mac.c         **** uint8_t numRetry;		// RTS重傳次數(shù)
  80:mac.c         **** uint8_t numExtend;		// ACK超時(shí)時(shí)發(fā)送時(shí)間的擴(kuò)展次數(shù)
  81:mac.c         **** uint8_t txPktLen;		// 傳輸?shù)陌L度
  82:mac.c         **** static OSMACMsgPtr dataPkt;// MAC包頭指針
  83:mac.c         **** OSMACCtrlMsg ctrlPkt;	// 控制包
  84:mac.c         **** 
  85:mac.c         **** // 接收相關(guān)變量
  86:mac.c         **** uint16_t recvAddr;		// 數(shù)據(jù)包源地址
  87:mac.c         **** 
  88:mac.c         **** 
  89:mac.c         **** static void handleRTS(void* packet);
  90:mac.c         **** static void handleCTS(void* packet);
  91:mac.c         **** static void* handleDATA(void* packet);
  92:mac.c         **** static void handleACK(void* packet);
  93:mac.c         **** static void startBcast(void);
  94:mac.c         **** static void sendRTS(void);
  95:mac.c         **** static void sendCTS(void);
  96:mac.c         **** static void sendDATA(void);
  97:mac.c         **** static void sendACK(void);
  98:mac.c         **** static void tryToSend(void);
  99:mac.c         **** static void tryToResend(uint8_t delay);
 100:mac.c         **** static void txMsgDone(void);
 101:mac.c         **** 
 102:mac.c         **** /**********************************************************************************
 103:mac.c         ****   初始化:
 104:mac.c         ****   等待控制包的時(shí)間:timeWaitCtrl
 105:mac.c         **** **********************************************************************************/
 106:mac.c         **** result_t MACInit()									
 107:mac.c         **** {
  97               	.LM1:
  98               	/* prologue: frame size=0 */
  99               	/* prologue end (size=0) */
 108:mac.c         **** 
 109:mac.c         **** 	// 初始化狀態(tài)變量
 110:mac.c         **** 	state = IDLE;
 101               	.LM2:
 102 0000 81E0      		ldi r24,lo8(1)
 103 0002 8093 0000 		sts state,r24
 111:mac.c         **** 	radioState = RADIO_IDLE;
 105               	.LM3:
 106 0006 8093 0000 		sts radioState,r24
 112:mac.c         **** 	
 113:mac.c         **** 
 114:mac.c         **** 	// 初始化計(jì)時(shí)變量
 115:mac.c         **** 	clockTime = 0;
 108               	.LM4:
 109 000a 1092 0000 		sts clockTime,__zero_reg__
 110 000e 1092 0000 		sts (clockTime)+1,__zero_reg__
 111 0012 1092 0000 		sts (clockTime)+2,__zero_reg__
 112 0016 1092 0000 		sts (clockTime)+3,__zero_reg__
 116:mac.c         **** 	txDelay = 0;
 114               	.LM5:
 115 001a 1092 0000 		sts txDelay,__zero_reg__
 117:mac.c         **** 	
 118:mac.c         **** 	// 初始化發(fā)送相關(guān)變量
 119:mac.c         **** 	txRequest = 0;
 117               	.LM6:
 118 001e 1092 0000 		sts txRequest,__zero_reg__
 120:mac.c         **** 
 121:mac.c         **** 	retryTime = 0;
 120               	.LM7:
 121 0022 1092 0000 		sts retryTime,__zero_reg__
 122:mac.c         **** 	
 123:mac.c         **** 	// 初始化UART debugging
 124:mac.c         **** 	uartDebug_init();
 123               	.LM8:
 124 0026 0E94 0000 		call uartDebug_init
 125:mac.c         **** 	
 126:mac.c         **** 	// 初始化隨機(jī)數(shù)生成器
 127:mac.c         **** 	RandomInit();
 126               	.LM9:
 127 002a 0E94 0000 		call RandomInit
 128:mac.c         **** 
 129:mac.c         **** 	// 初始化并啟動(dòng)MAC層定時(shí)器
 130:mac.c         **** 	ClockStart();					
 129               	.LM10:
 130 002e 0E94 0000 		call ClockStart
 131:mac.c         **** 	
 132:mac.c         **** 	// 初始化物理層
 133:mac.c         **** 	PhysicalInit();
 132               	.LM11:
 133 0032 0E94 0000 		call PhysicalInit
 134:mac.c         **** 	
 135:mac.c         **** 	return SUCCESS;
 136:mac.c         **** } 
 135               	.LM12:
 136 0036 81E0      		ldi r24,lo8(1)
 137 0038 90E0      		ldi r25,hi8(1)
 138               	/* epilogue: frame size=0 */
 139 003a 0895      		ret
 140               	/* epilogue end (size=1) */
 141               	/* function MACInit size 30 (29) */
 145               	tryToSend:
 137:mac.c         **** 
 138:mac.c         **** /*************************************************************************
 139:mac.c         **** *功能描述:發(fā)送數(shù)據(jù)包的開始,開始空閑監(jiān)聽,準(zhǔn)備發(fā)送廣播或者RTS數(shù)據(jù)包
 140:mac.c         **** *參數(shù)說明:
 141:mac.c         **** *返回值:  
 142:mac.c         **** **************************************************************************/
 143:mac.c         **** static void tryToSend()														// 判斷是否允許發(fā)送,如果是,則進(jìn)行監(jiān)聽
 144:mac.c         **** {
 147               	.LM13:
 148               	/* prologue: frame size=0 */
 149 003c CF93      		push r28
 150               	/* prologue end (size=1) */
 145:mac.c         **** 	uint16_t backoffSlots, listenBits;
 146:mac.c         **** 	char intEnabled;
 147:mac.c         **** 	if (state == IDLE) {													// 空閑時(shí)
 152               	.LM14:
 153 003e 8091 0000 		lds r24,state
 154 0042 8130      		cpi r24,lo8(1)
 155 0044 F9F4      		brne .L2
 148:mac.c         ****         howToSend = BCAST_DATA;
 157               	.LM15:
 158 0046 1092 0000 		sts howToSend,__zero_reg__
 149:mac.c         **** 		backoffSlots = RandomLFSRGen() & (uint16_t)DATA_CW;					// 退避時(shí)間<=DATA_CW
 160               	.LM16:
 161 004a 0E94 0000 		call RandomLFSRGen
 162 004e 8F71      		andi r24,lo8(31)
 163 0050 9070      		andi r25,hi8(31)
 150:mac.c         **** 		listenBits = (DIFS + SLOTTIME * backoffSlots) * LISTEN_RATE;		// 監(jiān)聽數(shù) =  kbps * ms = bits
 165               	.LM17:
 166 0052 23E1      		ldi r18,lo8(19)
 167 0054 30E0      		ldi r19,hi8(19)
 168 0056 829F      		mul r24,r18
 169 0058 A001      		movw r20,r0
 170 005a 839F      		mul r24,r19
 171 005c 500D      		add r21,r0
 172 005e 929F      		mul r25,r18
 173 0060 500D      		add r21,r0
 174 0062 1124      		clr r1
 175 0064 CA01      		movw r24,r20
 176 0066 8254      		subi r24,lo8(-(190))
 177 0068 9F4F      		sbci r25,hi8(-(190))
 151:mac.c         **** 		// 開始載波監(jiān)聽,采用原子操作,防止起始字符檢測(cè)到調(diào)用
 152:mac.c         **** 		intEnabled = inp(SREG) & 0x80;
 179               	.LM18:
 180 006a CFB7      		in r28,95-0x20
 181 006c C078      		andi r28,lo8(-128)
 153:mac.c         **** 		cli();
 183               	.LM19:
 184               	/* #APP */
 185 006e F894      		cli
 154:mac.c         **** 		if (RadiocontrolCarrierSenseStart(listenBits) == SUCCESS) {			// 調(diào)用監(jiān)聽函數(shù)
 187               	.LM20:
 188               	/* #NOAPP */
 189 0070 0E94 0000 		call RadiocontrolCarrierSenseStart
 190 0074 8130      		cpi r24,lo8(1)
 191 0076 19F4      		brne .L4
 155:mac.c         ****             state = CARR_SENSE;
 193               	.LM21:
 194 0078 82E0      		ldi r24,lo8(2)
 195 007a 8093 0000 		sts state,r24
 196               	.L4:
 156:mac.c         **** 		}
 157:mac.c         **** 		if(intEnabled)
 198               	.LM22:
 199 007e CC23      		tst r28
 200 0080 09F0      		breq .L2
 158:mac.c         **** 			sei();
 202               	.LM23:
 203               	/* #APP */
 204 0082 7894      		sei
 205               	/* #NOAPP */
 206               	.L2:
 207               	/* epilogue: frame size=0 */
 208 0084 CF91      		pop r28
 209 0086 0895      		ret
 210               	/* epilogue end (size=2) */
 211               	/* function tryToSend size 40 (37) */
 218               	.global	MACBroadcastMsg
 220               	MACBroadcastMsg:
 159:mac.c         **** 	} 
 160:mac.c         **** 	return;
 161:mac.c         **** }
 162:mac.c         **** 
 163:mac.c         **** /*************************************************************************
 164:mac.c         **** *功能描述:發(fā)送廣播數(shù)據(jù)包的接口函數(shù)
 165:mac.c         **** *參數(shù)說明:包地址,包長度(MAC包數(shù)據(jù)部分的長度)
 166:mac.c         **** *返回值:  
 167:mac.c         **** **************************************************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产普通话三级 | 国产精品一线二线三线| 亚洲6080在线| 亚洲大片免费看| 亚洲h在线观看| 图片区小说区区亚洲影院| 亚洲va欧美va国产va天堂影院| 一区二区三区丝袜| 亚洲午夜影视影院在线观看| 亚洲成a人片在线不卡一二三区| 一区二区免费看| 亚洲成人激情av| 青草av.久久免费一区| 欧美a级理论片| 久久99精品久久久久久动态图| 麻豆国产一区二区| 精品亚洲成av人在线观看| 国产电影一区二区三区| 国产69精品久久久久777| 99久久99久久精品国产片果冻| 99久久精品免费看国产免费软件| 色偷偷成人一区二区三区91| 欧美三级三级三级| 欧美一级日韩免费不卡| 精品成人一区二区三区四区| 偷窥少妇高潮呻吟av久久免费| 亚洲成人av免费| 精品一区二区三区在线视频| 成人精品视频一区二区三区 | 国产成人精品免费在线| av资源站一区| 欧美日韩一区二区三区四区五区| 91精品国产高清一区二区三区 | 国产精品热久久久久夜色精品三区| 亚洲欧美自拍偷拍| 亚洲午夜电影网| 另类的小说在线视频另类成人小视频在线 | 91.麻豆视频| 久久综合精品国产一区二区三区| 欧美激情在线一区二区三区| 亚洲欧美国产三级| 青青草97国产精品免费观看无弹窗版| 韩国v欧美v日本v亚洲v| 99视频一区二区三区| 欧美在线观看视频一区二区| 精品国产区一区| 综合久久久久久| 美女视频网站黄色亚洲| 99re这里都是精品| 日韩网站在线看片你懂的| 国产精品美女一区二区三区| 色综合久久中文字幕综合网| 欧美精品色综合| 久久蜜桃av一区精品变态类天堂| 亚洲欧美日韩中文字幕一区二区三区 | 五月开心婷婷久久| 国产成人一区在线| 91精品一区二区三区在线观看| 国产欧美一区视频| 日av在线不卡| 日本韩国精品一区二区在线观看| 精品福利二区三区| 亚洲不卡在线观看| 91一区二区三区在线观看| 欧美r级在线观看| 亚洲综合色噜噜狠狠| 成人一区二区三区在线观看| 日韩午夜电影在线观看| 亚洲国产成人porn| 91蜜桃免费观看视频| 久久精品在这里| 奇米精品一区二区三区四区| 91久久免费观看| 国产精品视频一二三| 精品亚洲欧美一区| 欧美一区二区三区成人| 亚洲国产视频直播| 色综合av在线| 国产精品麻豆欧美日韩ww| 国产在线不卡一区| 日韩免费高清av| 日韩成人一级片| 欧美日本高清视频在线观看| 亚洲欧美日韩久久| 暴力调教一区二区三区| 久久理论电影网| 久久 天天综合| 欧美变态tickle挠乳网站| 91网址在线看| 国产精品久久久久久久久果冻传媒 | 麻豆成人综合网| 91精品国产免费| 亚洲成a人v欧美综合天堂下载| 日本道在线观看一区二区| 国产精品乱码人人做人人爱| 国产高清不卡二三区| 国产亚洲一区二区三区在线观看| 久久99精品国产.久久久久 | 亚洲成人先锋电影| 欧美在线不卡视频| 亚洲一级电影视频| 欧美日韩精品一区二区在线播放| 亚洲国产日韩综合久久精品| 欧美色图激情小说| 午夜精品爽啪视频| 日韩一二在线观看| 久久激情五月激情| 337p粉嫩大胆色噜噜噜噜亚洲| 精品一区二区三区的国产在线播放 | 欧美一区二区三区四区久久| 欧美aⅴ一区二区三区视频| 91精品久久久久久久99蜜桃| 美女在线观看视频一区二区| 日韩你懂的在线观看| 国产精品一区在线观看乱码| 中文av字幕一区| 一本色道久久加勒比精品| 一区二区高清在线| 91麻豆精品国产91久久久久 | 日本道色综合久久| 日韩精品一区第一页| 精品国产伦理网| 丁香亚洲综合激情啪啪综合| 日韩毛片高清在线播放| 日本精品一区二区三区四区的功能| 亚洲国产毛片aaaaa无费看| 欧美一区二区免费| 国产精品1024| 亚洲精品乱码久久久久久日本蜜臀| 欧美亚洲动漫精品| 免费观看成人av| 欧美国产一区在线| 色综合天天综合狠狠| 日本午夜一本久久久综合| 久久亚洲一区二区三区明星换脸| 懂色av噜噜一区二区三区av| 亚洲黄一区二区三区| 欧美成人福利视频| www.亚洲免费av| 午夜欧美在线一二页| www久久久久| 在线观看视频91| 国产一区二区在线看| 亚洲免费观看高清完整版在线观看 | 国产伦精品一区二区三区视频青涩| 日本一区二区动态图| 欧美曰成人黄网| 狠狠色综合日日| 亚洲综合视频网| 久久九九国产精品| 欧美日韩国产另类一区| 国产sm精品调教视频网站| 亚洲成av人片| 国产精品久久久久久亚洲毛片| 精品视频在线免费观看| 国产高清无密码一区二区三区| 亚洲一区二区三区在线看| 久久久精品黄色| 欧美视频精品在线观看| 国产成人精品影院| 日本vs亚洲vs韩国一区三区二区 | 天天操天天综合网| 中文字幕日韩av资源站| 日韩欧美中文一区二区| 色婷婷久久综合| 国产成人免费在线视频| 日韩精品视频网站| 亚洲你懂的在线视频| 国产亚洲欧美一级| 91精品国产aⅴ一区二区| 99精品国产99久久久久久白柏| 久久99久久99小草精品免视看| 亚洲激情中文1区| 中文字幕av一区二区三区免费看 | 亚洲一区二区三区中文字幕 | 日本少妇一区二区| 夜夜嗨av一区二区三区四季av| 国产色产综合色产在线视频| 欧美一级黄色片| 欧美日本视频在线| 91日韩一区二区三区| 成人福利电影精品一区二区在线观看| 裸体一区二区三区| 午夜影院久久久| 亚洲精品老司机| 国产精品久久看| 国产视频一区在线观看| 日韩视频免费观看高清完整版 | 色综合天天狠狠| 波多野结衣中文一区| 国产精品一二三区在线| 美国毛片一区二区| 日韩精品国产欧美| 亚洲二区在线视频| 亚洲一区二区免费视频| 亚洲最大成人综合| 一区二区三区四区乱视频| 国产精品福利一区| 中文字幕一区二区三区精华液| 国产精品国产a级|