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

📄 app.lst

📁 adhoc信息节点程序源代码(点对多点)——for atmega128
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"app.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:
  73               	.global	OS_GROUP
  74               		.data
  77               	OS_GROUP:
  78 0000 01        		.byte	1
  79               		.text
  81               	.global	LLCStdControlInit
  83               	LLCStdControlInit:
   1:app.c         **** /*
   2:app.c         **** ****************************************************************************   
   3:app.c         **** *                        宁波市科技园区创业大厦六楼
   4:app.c         **** *              宁波中科集成电路设计中心  版权所有 Copyright 2005
   5:app.c         **** *
   6:app.c         **** *文件名:  llc.c
   7:app.c         **** *程序员:
   8:app.c         **** *主要内容:定时采集数据,并通过CC1000发送
   9:app.c         **** *完成日期:2005.3.28
  10:app.c         **** ****************************************************************************
  11:app.c         **** */
  12:app.c         **** 
  13:app.c         **** #include "os.h"
  14:app.c         **** #include "sensor.h"
  15:app.c         **** #include "message.h"
  16:app.c         **** #include "led.h"
  17:app.c         **** #include "macClock.h"
  18:app.c         **** #include "mac.h"
  19:app.c         **** 
  20:app.c         **** extern uint8_t OS_LOCAL_ADDRESS;
  21:app.c         **** extern uint8_t  OS_BCAST_ADDR;
  22:app.c         **** uint8_t OS_GROUP = OS_DEFAULT_GROUP;
  23:app.c         **** 
  24:app.c         **** uint8_t  LLCpacketReadingNumber;
  25:app.c         **** uint8_t  LLCPacketNumber;
  26:app.c         **** OSMACMsg LLCmsg[2];
  27:app.c         **** uint8_t  LLCcurrentMsg;
  28:app.c         **** 
  29:app.c         **** /*************************************************************************
  30:app.c         **** *功能描述:初始化
  31:app.c         **** *参数说明:无
  32:app.c         **** *返回值:  无
  33:app.c         **** **************************************************************************/
  34:app.c         **** result_t LLCStdControlInit(void)
  35:app.c         **** {
  85               	.LM1:
  86               	/* prologue: frame size=0 */
  87               	/* prologue end (size=0) */
  36:app.c         **** 	LedInit();
  89               	.LM2:
  90 0000 0E94 0000 		call LedInit
  37:app.c         **** 	LedRedOff();
  92               	.LM3:
  93 0004 0E94 0000 		call LedRedOff
  38:app.c         **** 	LedGreenOff();
  95               	.LM4:
  96 0008 0E94 0000 		call LedGreenOff
  39:app.c         **** 	LedYellowOff();
  98               	.LM5:
  99 000c 0E94 0000 		call LedYellowOff
  40:app.c         **** 	
  41:app.c         **** 	SensorPhoOStdControlInit();
 101               	.LM6:
 102 0010 0E94 0000 		call SensorPhoOStdControlInit
  42:app.c         **** 	
  43:app.c         **** 	MACInit();
 104               	.LM7:
 105 0014 0E94 0000 		call MACInit
 106               	.LBB2:
  44:app.c         **** 	
  45:app.c         **** 	{ uint8_t atomicState = AtomicStart();
 108               	.LM8:
 109 0018 0E94 0000 		call AtomicStart
  46:app.c         ****     {
  47:app.c         **** 		LLCcurrentMsg = 0;
 111               	.LM9:
 112 001c 1092 0000 		sts LLCcurrentMsg,__zero_reg__
  48:app.c         **** 		LLCpacketReadingNumber = 0;
 114               	.LM10:
 115 0020 1092 0000 		sts LLCpacketReadingNumber,__zero_reg__
  49:app.c         **** 		LLCPacketNumber = 0;
 117               	.LM11:
 118 0024 1092 0000 		sts LLCPacketNumber,__zero_reg__
  50:app.c         ****     }
  51:app.c         ****     AtomicEnd(atomicState); }
 120               	.LM12:
 121 0028 0E94 0000 		call AtomicEnd
 122               	.LBE2:
  52:app.c         **** 	
  53:app.c         **** 	return SUCCESS;
  54:app.c         **** }
 124               	.LM13:
 125 002c 81E0      		ldi r24,lo8(1)
 126 002e 90E0      		ldi r25,hi8(1)
 127               	/* epilogue: frame size=0 */
 128 0030 0895      		ret
 129               	/* epilogue end (size=1) */
 130               	/* function LLCStdControlInit size 25 (24) */
 134               	.global	LLCTimerStart
 136               	LLCTimerStart:
  55:app.c         **** 
  56:app.c         **** /*************************************************************************
  57:app.c         **** *功能描述:设置1号定时器的定时类型和间隔,并启动
  58:app.c         **** *参数说明:定时器类型,时间间隔(ms)
  59:app.c         **** *返回值:  执行结果
  60:app.c         **** **************************************************************************/
  61:app.c         **** result_t LLCTimerStart(uint8_t interval)
  62:app.c         **** {
 138               	.LM14:
 139               	/* prologue: frame size=0 */
 140               	/* prologue end (size=0) */
  63:app.c         **** 	ClockSet(interval);
 142               	.LM15:
 143 0032 0E94 0000 		call ClockSet
  64:app.c         **** 	return SUCCESS;
  65:app.c         **** }
 145               	.LM16:
 146 0036 81E0      		ldi r24,lo8(1)
 147 0038 90E0      		ldi r25,hi8(1)
 148               	/* epilogue: frame size=0 */
 149 003a 0895      		ret
 150               	/* epilogue end (size=1) */
 151               	/* function LLCTimerStart size 5 (4) */
 154               	.global	LLCStdControlStart
 156               	LLCStdControlStart:
  66:app.c         **** 
  67:app.c         **** /*************************************************************************
  68:app.c         **** *功能描述:启动底层
  69:app.c         **** *参数说明:
  70:app.c         **** *返回值:  
  71:app.c         **** **************************************************************************/
  72:app.c         **** result_t LLCStdControlStart(void)
  73:app.c         **** {
 158               	.LM17:
 159               	/* prologue: frame size=0 */
 160               	/* prologue end (size=0) */
  74:app.c         **** 	SensorPhoOStdControlStart();
 162               	.LM18:
 163 003c 0E94 0000 		call SensorPhoOStdControlStart
  75:app.c         **** 	LLCTimerStart(125);
 165               	.LM19:
 166 0040 8DE7      		ldi r24,lo8(125)
 167 0042 0E94 0000 		call LLCTimerStart
  76:app.c         **** 	
  77:app.c         **** 	return SUCCESS;
  78:app.c         **** }
 169               	.LM20:
 170 0046 81E0      		ldi r24,lo8(1)
 171 0048 90E0      		ldi r25,hi8(1)
 172               	/* epilogue: frame size=0 */
 173 004a 0895      		ret
 174               	/* epilogue end (size=1) */
 175               	/* function LLCStdControlStart size 8 (7) */
 178               	.global	LLCADCGetData
 180               	LLCADCGetData:
  79:app.c         **** 
  80:app.c         **** result_t LLCADCGetData(void)
  81:app.c         **** {
 182               	.LM21:
 183               	/* prologue: frame size=0 */
 184               	/* prologue end (size=0) */
  82:app.c         **** 	unsigned char result;
  83:app.c         **** 	result = SensorExternalPhotoADCGetData();
 186               	.LM22:
 187 004c 0E94 0000 		call SensorExternalPhotoADCGetData
  84:app.c         **** 	return result;
  85:app.c         **** }
 189               	.LM23:
 190 0050 9927      		clr r25
 191               	/* epilogue: frame size=0 */
 192 0052 0895      		ret
 193               	/* epilogue end (size=1) */
 194               	/* function LLCADCGetData size 4 (3) */
 197               	.global	LLCTimerFired
 199               	LLCTimerFired:
  86:app.c         **** 
  87:app.c         **** /*************************************************************************
  88:app.c         **** *功能描述:由设定的定时器时钟到达触发,调用采集函数
  89:app.c         **** *参数说明:无
  90:app.c         **** *返回值:  
  91:app.c         **** **************************************************************************/
  92:app.c         **** result_t LLCTimerFired(void)
  93:app.c         **** {
 201               	.LM24:
 202               	/* prologue: frame size=0 */
 203               	/* prologue end (size=0) */
  94:app.c         **** 	return LLCADCGetData();
 205               	.LM25:
 206 0054 0E94 0000 		call LLCADCGetData
  95:app.c         **** }
 208               	.LM26:
 209 0058 9927      		clr r25
 210               	/* epilogue: frame size=0 */
 211 005a 0895      		ret
 212               	/* epilogue end (size=1) */
 213               	/* function LLCTimerFired size 4 (3) */
 219               	.global	LLCDataMsgSend
 221               	LLCDataMsgSend:
  96:app.c         **** 
  97:app.c         **** /*************************************************************************
  98:app.c         **** *功能描述:打包数据,并调用MAC进行广播发送
  99:app.c         **** *参数说明:目的节点号,数据长度,数据包地址
 100:app.c         **** *返回值:  
 101:app.c         **** **************************************************************************/
 102:app.c         **** result_t LLCDataMsgSend(uint8_t addr, uint8_t length, OSMACMsgPtr data)
 103:app.c         **** {
 223               	.LM27:
 224               	/* prologue: frame size=0 */
 225               	/* prologue end (size=0) */
 226 005c 982F      		mov r25,r24
 104:app.c         **** 	unsigned char result;
 105:app.c         **** 
 106:app.c         **** 	if (length > APP_PKT_LEN)
 228               	.LM28:
 229 005e 6631      		cpi r22,lo8(22)
 230 0060 18F0      		brlo .L7
 107:app.c         **** 	{
 108:app.c         **** 		return FALSE;
 232               	.LM29:
 233 0062 80E0      		ldi r24,lo8(0)
 234 0064 90E0      		ldi r25,hi8(0)
 235 0066 0895      		ret
 236               	.L7:
 109:app.c         **** 	}
 110:app.c         **** 	
 111:app.c         **** 	if (addr == OS_BCAST_ADDR)
 238               	.LM30:
 239 0068 8091 0000 		lds r24,OS_BCAST_ADDR
 240 006c 9817      		cp r25,r24
 241 006e 21F4      		brne .L8
 112:app.c         **** 	{
 113:app.c         **** 		result = MACBroadcastMsg(data, length);
 243               	.LM31:
 244 0070 CA01      		movw r24,r20
 245 0072 0E94 0000 		call MACBroadcastMsg
 246 0076 01C0      		rjmp .L9
 247               	.L8:
 114:app.c         **** 	}
 115:app.c         **** 	else
 116:app.c         **** 		result = 1;
 249               	.LM32:
 250 0078 81E0      		ldi r24,lo8(1)
 251               	.L9:
 117:app.c         **** 	return result;
 253               	.LM33:
 254 007a 9927      		clr r25
 118:app.c         **** }
 256               	.LM34:
 257 007c 0895      		ret
 258               	/* epilogue: frame size=0 */
 259 007e 0895      		ret
 260               	/* epilogue end (size=1) */
 261               	/* function LLCDataMsgSend size 18 (17) */
 265               	.global	LLCdataTask
 267               	LLCdataTask:
 119:app.c         **** 
 120:app.c         **** /*************************************************************************
 121:app.c         **** *功能描述:发送任务处理
 122:app.c         **** *参数说明:
 123:app.c         **** *返回值:  
 124:app.c         **** **************************************************************************/
 125:app.c         **** void LLCdataTask(void)
 126:app.c         **** {
 269               	.LM35:
 270               	/* prologue: frame size=0 */
 271 0080 1F93      		push r17
 272               	/* prologue end (size=1) */
 273               	.LBB3:
 127:app.c         **** 	SensorMsg *pack;
 128:app.c         **** 	
 129:app.c         **** 	{ uint8_t atomicState = AtomicStart();
 275               	.LM36:
 276 0082 0E94 0000 		call AtomicStart
 130:app.c         ****     {

⌨️ 快捷键说明

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