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

📄 os.lst

📁 一个WSN的树状路由,对于那些学WSN路由方面的朋友应该有说帮助.
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"os.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:
  84               	.global	OSH_SET_PIN_DIRECTIONS
  86               	OSH_SET_PIN_DIRECTIONS:
   1:os.c          **** /*
   2:os.c          **** ****************************************************************************
   3:os.c          **** *              宁波中科集成电路设计中心  版权所有 Copyright 2005
   4:os.c          **** *						http:\\www.nbicc.com
   5:os.c          **** *文件名:  os.c
   6:os.c          **** *程序员:  夏鹏		xpsonny@nbicc.com
   7:os.c          **** *主要内容  内核调度
   8:os.c          **** 
   9:os.c          **** *如有问题或BUG,请登录www.wsn.net.cn 提问或用邮件和作者联系
  10:os.c          **** ****************************************************************************
  11:os.c          **** */
  12:os.c          **** 
  13:os.c          **** #include "os.h"
  14:os.c          **** #include "fun.h"
  15:os.c          **** 
  16:os.c          **** 
  17:os.c          **** 
  18:os.c          **** typedef struct SchedUnit{
  19:os.c          **** 	void (*tp)(void);
  20:os.c          **** } OSSchedUnit;
  21:os.c          **** 
  22:os.c          **** enum  {
  23:os.c          **** 	OSH_MAX_TASKS = 16, 
  24:os.c          **** 	OSH_TASK_BITMASK = OSH_MAX_TASKS - 1
  25:os.c          **** };
  26:os.c          **** 
  27:os.c          **** OSSchedUnit OSH_queue[OSH_MAX_TASKS];
  28:os.c          **** static uint8_t OSH_sched_full;
  29:os.c          **** static uint8_t OSH_sched_free;
  30:os.c          **** 
  31:os.c          **** void OSH_SET_PIN_DIRECTIONS(void )
  32:os.c          **** {
  88               	.LM1:
  89               	/* prologue: frame size=0 */
  90               	/* prologue end (size=0) */
  33:os.c          **** 	OSH_MAKE_RED_LED_OUTPUT();
  92               	.LM2:
  93 0000 0E94 0000 		call OSH_MAKE_RED_LED_OUTPUT
  34:os.c          **** 	OSH_MAKE_YELLOW_LED_OUTPUT();
  95               	.LM3:
  96 0004 0E94 0000 		call OSH_MAKE_YELLOW_LED_OUTPUT
  35:os.c          **** 	OSH_MAKE_GREEN_LED_OUTPUT();
  98               	.LM4:
  99 0008 0E94 0000 		call OSH_MAKE_GREEN_LED_OUTPUT
  36:os.c          **** 	
  37:os.c          **** 	OSH_MAKE_CC_CHP_OUT_INPUT();
 101               	.LM5:
 102 000c 0E94 0000 		call OSH_MAKE_CC_CHP_OUT_INPUT
  38:os.c          **** 	
  39:os.c          **** 	OSH_MAKE_PW7_OUTPUT();
 104               	.LM6:
 105 0010 0E94 0000 		call OSH_MAKE_PW7_OUTPUT
  40:os.c          **** 	OSH_MAKE_PW6_OUTPUT();
 107               	.LM7:
 108 0014 0E94 0000 		call OSH_MAKE_PW6_OUTPUT
  41:os.c          **** 	OSH_MAKE_PW5_OUTPUT();
 110               	.LM8:
 111 0018 0E94 0000 		call OSH_MAKE_PW5_OUTPUT
  42:os.c          **** 	OSH_MAKE_PW4_OUTPUT();
 113               	.LM9:
 114 001c 0E94 0000 		call OSH_MAKE_PW4_OUTPUT
  43:os.c          **** 	OSH_MAKE_PW3_OUTPUT();
 116               	.LM10:
 117 0020 0E94 0000 		call OSH_MAKE_PW3_OUTPUT
  44:os.c          **** 	OSH_MAKE_PW2_OUTPUT();
 119               	.LM11:
 120 0024 0E94 0000 		call OSH_MAKE_PW2_OUTPUT
  45:os.c          **** 	OSH_MAKE_PW1_OUTPUT();
 122               	.LM12:
 123 0028 0E94 0000 		call OSH_MAKE_PW1_OUTPUT
  46:os.c          **** 	OSH_MAKE_PW0_OUTPUT();
 125               	.LM13:
 126 002c 0E94 0000 		call OSH_MAKE_PW0_OUTPUT
  47:os.c          **** 	
  48:os.c          **** 	OSH_MAKE_CC_PALE_OUTPUT();
 128               	.LM14:
 129 0030 0E94 0000 		call OSH_MAKE_CC_PALE_OUTPUT
  49:os.c          **** 	OSH_MAKE_CC_PDATA_OUTPUT();
 131               	.LM15:
 132 0034 0E94 0000 		call OSH_MAKE_CC_PDATA_OUTPUT
  50:os.c          **** 	OSH_MAKE_CC_PCLK_OUTPUT();
 134               	.LM16:
 135 0038 0E94 0000 		call OSH_MAKE_CC_PCLK_OUTPUT
  51:os.c          **** 	OSH_MAKE_MISO_INPUT();
 137               	.LM17:
 138 003c 0E94 0000 		call OSH_MAKE_MISO_INPUT
  52:os.c          **** 	OSH_MAKE_SPI_OC1C_INPUT();
 140               	.LM18:
 141 0040 0E94 0000 		call OSH_MAKE_SPI_OC1C_INPUT
  53:os.c          **** 	
  54:os.c          **** 	OSH_MAKE_SERIAL_ID_INPUT();
 143               	.LM19:
 144 0044 0E94 0000 		call OSH_MAKE_SERIAL_ID_INPUT
  55:os.c          **** 	OSH_CLR_SERIAL_ID_PIN();
 146               	.LM20:
 147 0048 0E94 0000 		call OSH_CLR_SERIAL_ID_PIN
  56:os.c          **** 	
  57:os.c          **** 	OSH_MAKE_FLASH_SELECT_OUTPUT();
 149               	.LM21:
 150 004c 0E94 0000 		call OSH_MAKE_FLASH_SELECT_OUTPUT
  58:os.c          **** 	OSH_MAKE_FLASH_OUT_OUTPUT();
 152               	.LM22:
 153 0050 0E94 0000 		call OSH_MAKE_FLASH_OUT_OUTPUT
  59:os.c          **** 	OSH_MAKE_FLASH_CLK_OUTPUT();
 155               	.LM23:
 156 0054 0E94 0000 		call OSH_MAKE_FLASH_CLK_OUTPUT
  60:os.c          **** 	OSH_SET_FLASH_SELECT_PIN();
 158               	.LM24:
 159 0058 0E94 0000 		call OSH_SET_FLASH_SELECT_PIN
  61:os.c          **** 	
  62:os.c          **** 	OSH_SET_RED_LED_PIN();
 161               	.LM25:
 162 005c 0E94 0000 		call OSH_SET_RED_LED_PIN
  63:os.c          **** 	OSH_SET_YELLOW_LED_PIN();
 164               	.LM26:
 165 0060 0E94 0000 		call OSH_SET_YELLOW_LED_PIN
  64:os.c          **** 	OSH_SET_GREEN_LED_PIN();
 167               	.LM27:
 168 0064 0E94 0000 		call OSH_SET_GREEN_LED_PIN
 169               	/* epilogue: frame size=0 */
 170 0068 0895      		ret
 171               	/* epilogue end (size=1) */
 172               	/* function OSH_SET_PIN_DIRECTIONS size 53 (52) */
 175               	.global	MainHardwareInit
 177               	MainHardwareInit:
  65:os.c          **** }
  66:os.c          **** 
  67:os.c          **** result_t MainHardwareInit(void)
  68:os.c          **** {
 179               	.LM28:
 180               	/* prologue: frame size=0 */
 181               	/* prologue end (size=0) */
  69:os.c          **** 	
  70:os.c          **** 	OSH_SET_PIN_DIRECTIONS();
 183               	.LM29:
 184 006a 0E94 0000 		call OSH_SET_PIN_DIRECTIONS
  71:os.c          **** 	return SUCCESS;
  72:os.c          **** }
 186               	.LM30:
 187 006e 81E0      		ldi r24,lo8(1)
 188 0070 90E0      		ldi r25,hi8(1)
 189               	/* epilogue: frame size=0 */
 190 0072 0895      		ret
 191               	/* epilogue end (size=1) */
 192               	/* function MainHardwareInit size 5 (4) */
 195               	.global	OSSchedInit
 197               	OSSchedInit:
  73:os.c          **** 
  74:os.c          **** void OSSchedInit(void )
  75:os.c          **** {
 199               	.LM31:
 200               	/* prologue: frame size=0 */
 201               	/* prologue end (size=0) */
  76:os.c          **** 	OSH_sched_free = 0;
 203               	.LM32:
 204 0074 1092 0000 		sts OSH_sched_free,__zero_reg__
  77:os.c          **** 	OSH_sched_full = 0;
 206               	.LM33:
 207 0078 1092 0000 		sts OSH_sched_full,__zero_reg__
 208               	/* epilogue: frame size=0 */
 209 007c 0895      		ret
 210               	/* epilogue end (size=1) */
 211               	/* function OSSchedInit size 5 (4) */
 215               	.global	OSH_uwait
 217               	OSH_uwait:
  78:os.c          **** }
  79:os.c          **** 
  80:os.c          **** void OSH_uwait(int u_sec)
  81:os.c          **** {
 219               	.LM34:
 220               	/* prologue: frame size=0 */
 221               	/* prologue end (size=0) */
 222               	.L10:
  82:os.c          **** 	while (u_sec > 0) {
  83:os.c          **** 		__asm volatile ("nop");
  84:os.c          **** 		__asm volatile ("nop");
  85:os.c          **** 		__asm volatile ("nop");
  86:os.c          **** 		__asm volatile ("nop");
  87:os.c          **** 		__asm volatile ("nop");
  88:os.c          **** 		__asm volatile ("nop");
  89:os.c          **** 		__asm volatile ("nop");
  90:os.c          **** 		__asm volatile ("nop");
  91:os.c          **** 		u_sec--;
 224               	.LM35:
 225 007e 1816      		cp __zero_reg__,r24
 226 0080 1906      		cpc __zero_reg__,r25
 227 0082 54F4      		brge .L9
 229               	.LM36:
 230               	/* #APP */
 231 0084 0000      		nop
 233               	.LM37:
 234 0086 0000      		nop
 236               	.LM38:
 237 0088 0000      		nop
 239               	.LM39:
 240 008a 0000      		nop
 242               	.LM40:
 243 008c 0000      		nop
 245               	.LM41:
 246 008e 0000      		nop
 248               	.LM42:
 249 0090 0000      		nop
 251               	.LM43:
 252 0092 0000      		nop
 254               	.LM44:
 255               	/* #NOAPP */
 256 0094 0197      		sbiw r24,1
 257 0096 F3CF      		rjmp .L10
 258               	.L9:
 259 0098 0895      		ret
 260               	/* epilogue: frame size=0 */
 261               	/* epilogue: noreturn */
 262               	/* epilogue end (size=0) */
 263               	/* function OSH_uwait size 22 (22) */
 266               	.global	MainStdControlInit
 268               	MainStdControlInit:
  92:os.c          ****     }
  93:os.c          **** }
  94:os.c          **** 
  95:os.c          **** result_t MainStdControlInit(void)
  96:os.c          **** {
 270               	.LM45:
 271               	/* prologue: frame size=0 */
 272               	/* prologue end (size=0) */
  97:os.c          **** 	unsigned char result;
  98:os.c          **** 	result = Init();
 274               	.LM46:
 275 009a 0E94 0000 		call Init
  99:os.c          **** 	return result;
 100:os.c          **** }
 277               	.LM47:
 278 009e 9927      		clr r25
 279               	/* epilogue: frame size=0 */
 280 00a0 0895      		ret
 281               	/* epilogue end (size=1) */
 282               	/* function MainStdControlInit size 4 (3) */
 285               	.global	MainStdControlStart
 287               	MainStdControlStart:
 101:os.c          **** 
 102:os.c          **** result_t MainStdControlStart(void)
 103:os.c          **** {
 289               	.LM48:
 290               	/* prologue: frame size=0 */
 291               	/* prologue end (size=0) */
 104:os.c          **** 	unsigned char result;
 105:os.c          **** 	
 106:os.c          **** 	result = Start(); 
 293               	.LM49:
 294 00a2 0E94 0000 		call Start
 107:os.c          **** 
 108:os.c          **** 	return result;
 109:os.c          **** }
 296               	.LM50:
 297 00a6 9927      		clr r25
 298               	/* epilogue: frame size=0 */
 299 00a8 0895      		ret
 300               	/* epilogue end (size=1) */
 301               	/* function MainStdControlStart size 4 (3) */
 304               	.global	EnableInterrupt
 306               	EnableInterrupt:
 110:os.c          **** 
 111:os.c          **** void EnableInterrupt(void)
 112:os.c          **** {
 308               	.LM51:
 309               	/* prologue: frame size=0 */
 310               	/* prologue end (size=0) */
 113:os.c          **** 	__asm volatile ("sei");}
 312               	.LM52:
 313               	/* #APP */
 314 00aa 7894      		sei
 315               	/* #NOAPP */
 316               	/* epilogue: frame size=0 */
 317 00ac 0895      		ret
 318               	/* epilogue end (size=1) */
 319               	/* function EnableInterrupt size 3 (2) */
 322               	.global	OSH_wait
 324               	OSH_wait:
 114:os.c          **** 
 115:os.c          **** void OSH_wait(void)
 116:os.c          **** {
 326               	.LM53:
 327               	/* prologue: frame size=0 */
 328               	/* prologue end (size=0) */
 117:os.c          **** 	__asm volatile ("nop");
 330               	.LM54:
 331               	/* #APP */
 332 00ae 0000      		nop
 118:os.c          **** 	__asm volatile ("nop");}
 334               	.LM55:
 335 00b0 0000      		nop
 336               	/* #NOAPP */
 337               	/* epilogue: frame size=0 */
 338 00b2 0895      		ret
 339               	/* epilogue end (size=1) */
 340               	/* function OSH_wait size 5 (4) */
 343               	.global	OSH_sleep
 345               	OSH_sleep:
 119:os.c          **** 

⌨️ 快捷键说明

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