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

📄 os.lst

📁 adhoc信息节点程序源代码(点对多点)——for atmega128
💻 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:
  85               	.global	OSH_SET_PIN_DIRECTIONS
  87               	OSH_SET_PIN_DIRECTIONS:
   1:os.c          **** /*
   2:os.c          **** ****************************************************************************                       
   3:os.c          **** *                        宁波市科技园区创业大厦六楼
   4:os.c          **** *              宁波中科集成电路设计中心  版权所有 Copyright 2005
   5:os.c          **** *
   6:os.c          **** *文件名:  os.c
   7:os.c          **** *程序员:
   8:os.c          **** *主要内容:内核调度
   9:os.c          **** *完成日期:2005.3.25
  10:os.c          **** ****************************************************************************
  11:os.c          **** */
  12:os.c          **** 
  13:os.c          **** #include "os.h"
  14:os.c          **** #include "fun.h"
  15:os.c          **** #include "adc.h"
  16:os.c          **** #include "app.h"
  17:os.c          **** 
  18:os.c          **** 
  19:os.c          **** typedef struct SchedUnit{
  20:os.c          **** 	void (*tp)(void);
  21:os.c          **** } OSSchedUnit;
  22:os.c          **** 
  23:os.c          **** enum  {
  24:os.c          **** 	OSH_MAX_TASKS = 8, 
  25:os.c          **** 	OSH_TASK_BITMASK = OSH_MAX_TASKS - 1
  26:os.c          **** };
  27:os.c          **** 
  28:os.c          **** OSSchedUnit OSH_queue[OSH_MAX_TASKS];
  29:os.c          **** volatile uint8_t OSH_sched_full;
  30:os.c          **** volatile uint8_t OSH_sched_free;
  31:os.c          **** 
  32:os.c          **** void OSH_SET_PIN_DIRECTIONS(void )
  33:os.c          **** {
  89               	.LM1:
  90               	/* prologue: frame size=0 */
  91               	/* prologue end (size=0) */
  34:os.c          **** 	OSH_MAKE_RED_LED_OUTPUT();
  93               	.LM2:
  94 0000 0E94 0000 		call OSH_MAKE_RED_LED_OUTPUT
  35:os.c          **** 	OSH_MAKE_YELLOW_LED_OUTPUT();
  96               	.LM3:
  97 0004 0E94 0000 		call OSH_MAKE_YELLOW_LED_OUTPUT
  36:os.c          **** 	OSH_MAKE_GREEN_LED_OUTPUT();
  99               	.LM4:
 100 0008 0E94 0000 		call OSH_MAKE_GREEN_LED_OUTPUT
  37:os.c          **** 	
  38:os.c          **** 	OSH_MAKE_CC_CHP_OUT_INPUT();
 102               	.LM5:
 103 000c 0E94 0000 		call OSH_MAKE_CC_CHP_OUT_INPUT
  39:os.c          **** 	
  40:os.c          **** 	OSH_MAKE_PW7_OUTPUT();
 105               	.LM6:
 106 0010 0E94 0000 		call OSH_MAKE_PW7_OUTPUT
  41:os.c          **** 	OSH_MAKE_PW6_OUTPUT();
 108               	.LM7:
 109 0014 0E94 0000 		call OSH_MAKE_PW6_OUTPUT
  42:os.c          **** 	OSH_MAKE_PW5_OUTPUT();
 111               	.LM8:
 112 0018 0E94 0000 		call OSH_MAKE_PW5_OUTPUT
  43:os.c          **** 	OSH_MAKE_PW4_OUTPUT();
 114               	.LM9:
 115 001c 0E94 0000 		call OSH_MAKE_PW4_OUTPUT
  44:os.c          **** 	OSH_MAKE_PW3_OUTPUT();
 117               	.LM10:
 118 0020 0E94 0000 		call OSH_MAKE_PW3_OUTPUT
  45:os.c          **** 	OSH_MAKE_PW2_OUTPUT();
 120               	.LM11:
 121 0024 0E94 0000 		call OSH_MAKE_PW2_OUTPUT
  46:os.c          **** 	OSH_MAKE_PW1_OUTPUT();
 123               	.LM12:
 124 0028 0E94 0000 		call OSH_MAKE_PW1_OUTPUT
  47:os.c          **** 	OSH_MAKE_PW0_OUTPUT();
 126               	.LM13:
 127 002c 0E94 0000 		call OSH_MAKE_PW0_OUTPUT
  48:os.c          **** 	
  49:os.c          **** 	OSH_MAKE_CC_PALE_OUTPUT();
 129               	.LM14:
 130 0030 0E94 0000 		call OSH_MAKE_CC_PALE_OUTPUT
  50:os.c          **** 	OSH_MAKE_CC_PDATA_OUTPUT();
 132               	.LM15:
 133 0034 0E94 0000 		call OSH_MAKE_CC_PDATA_OUTPUT
  51:os.c          **** 	OSH_MAKE_CC_PCLK_OUTPUT();
 135               	.LM16:
 136 0038 0E94 0000 		call OSH_MAKE_CC_PCLK_OUTPUT
  52:os.c          **** 	OSH_MAKE_MISO_INPUT();
 138               	.LM17:
 139 003c 0E94 0000 		call OSH_MAKE_MISO_INPUT
  53:os.c          **** 	OSH_MAKE_SPI_OC1C_INPUT();
 141               	.LM18:
 142 0040 0E94 0000 		call OSH_MAKE_SPI_OC1C_INPUT
  54:os.c          **** 	
  55:os.c          **** 	OSH_MAKE_SERIAL_ID_INPUT();
 144               	.LM19:
 145 0044 0E94 0000 		call OSH_MAKE_SERIAL_ID_INPUT
  56:os.c          **** 	OSH_CLR_SERIAL_ID_PIN();
 147               	.LM20:
 148 0048 0E94 0000 		call OSH_CLR_SERIAL_ID_PIN
  57:os.c          **** 	
  58:os.c          **** 	OSH_MAKE_FLASH_SELECT_OUTPUT();
 150               	.LM21:
 151 004c 0E94 0000 		call OSH_MAKE_FLASH_SELECT_OUTPUT
  59:os.c          **** 	OSH_MAKE_FLASH_OUT_OUTPUT();
 153               	.LM22:
 154 0050 0E94 0000 		call OSH_MAKE_FLASH_OUT_OUTPUT
  60:os.c          **** 	OSH_MAKE_FLASH_CLK_OUTPUT();
 156               	.LM23:
 157 0054 0E94 0000 		call OSH_MAKE_FLASH_CLK_OUTPUT
  61:os.c          **** 	OSH_SET_FLASH_SELECT_PIN();
 159               	.LM24:
 160 0058 0E94 0000 		call OSH_SET_FLASH_SELECT_PIN
  62:os.c          **** 	
  63:os.c          **** 	OSH_SET_RED_LED_PIN();
 162               	.LM25:
 163 005c 0E94 0000 		call OSH_SET_RED_LED_PIN
  64:os.c          **** 	OSH_SET_YELLOW_LED_PIN();
 165               	.LM26:
 166 0060 0E94 0000 		call OSH_SET_YELLOW_LED_PIN
  65:os.c          **** 	OSH_SET_GREEN_LED_PIN();
 168               	.LM27:
 169 0064 0E94 0000 		call OSH_SET_GREEN_LED_PIN
 170               	/* epilogue: frame size=0 */
 171 0068 0895      		ret
 172               	/* epilogue end (size=1) */
 173               	/* function OSH_SET_PIN_DIRECTIONS size 53 (52) */
 176               	.global	MainHardwareInit
 178               	MainHardwareInit:
  66:os.c          **** }
  67:os.c          **** 
  68:os.c          **** result_t MainHardwareInit(void)
  69:os.c          **** {
 180               	.LM28:
 181               	/* prologue: frame size=0 */
 182               	/* prologue end (size=0) */
  70:os.c          **** 	
  71:os.c          **** 	OSH_SET_PIN_DIRECTIONS();
 184               	.LM29:
 185 006a 0E94 0000 		call OSH_SET_PIN_DIRECTIONS
  72:os.c          **** 	return SUCCESS;
  73:os.c          **** }
 187               	.LM30:
 188 006e 81E0      		ldi r24,lo8(1)
 189 0070 90E0      		ldi r25,hi8(1)
 190               	/* epilogue: frame size=0 */
 191 0072 0895      		ret
 192               	/* epilogue end (size=1) */
 193               	/* function MainHardwareInit size 5 (4) */
 196               	.global	OSSchedInit
 198               	OSSchedInit:
  74:os.c          **** 
  75:os.c          **** void OSSchedInit(void )
  76:os.c          **** {
 200               	.LM31:
 201               	/* prologue: frame size=0 */
 202               	/* prologue end (size=0) */
  77:os.c          **** 	OSH_sched_free = 0;
 204               	.LM32:
 205 0074 1092 0000 		sts OSH_sched_free,__zero_reg__
  78:os.c          **** 	OSH_sched_full = 0;
 207               	.LM33:
 208 0078 1092 0000 		sts OSH_sched_full,__zero_reg__
 209               	/* epilogue: frame size=0 */
 210 007c 0895      		ret
 211               	/* epilogue end (size=1) */
 212               	/* function OSSchedInit size 5 (4) */
 216               	.global	OSH_uwait
 218               	OSH_uwait:
  79:os.c          **** }
  80:os.c          **** 
  81:os.c          **** void OSH_uwait(int u_sec)
  82:os.c          **** {
 220               	.LM34:
 221               	/* prologue: frame size=0 */
 222               	/* prologue end (size=0) */
 223               	.L10:
  83:os.c          **** 	while (u_sec > 0) {
  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          **** 		__asm volatile ("nop");
  92:os.c          **** 		u_sec--;
 225               	.LM35:
 226 007e 1816      		cp __zero_reg__,r24
 227 0080 1906      		cpc __zero_reg__,r25
 228 0082 54F4      		brge .L9
 230               	.LM36:
 231               	/* #APP */
 232 0084 0000      		nop
 234               	.LM37:
 235 0086 0000      		nop
 237               	.LM38:
 238 0088 0000      		nop
 240               	.LM39:
 241 008a 0000      		nop
 243               	.LM40:
 244 008c 0000      		nop
 246               	.LM41:
 247 008e 0000      		nop
 249               	.LM42:
 250 0090 0000      		nop
 252               	.LM43:
 253 0092 0000      		nop
 255               	.LM44:
 256               	/* #NOAPP */
 257 0094 0197      		sbiw r24,1
 258 0096 F3CF      		rjmp .L10
 259               	.L9:
 260 0098 0895      		ret
 261               	/* epilogue: frame size=0 */
 262               	/* epilogue: noreturn */
 263               	/* epilogue end (size=0) */
 264               	/* function OSH_uwait size 22 (22) */
 267               	.global	MainStdControlInit
 269               	MainStdControlInit:
  93:os.c          ****     }
  94:os.c          **** }
  95:os.c          **** 
  96:os.c          **** result_t MainStdControlInit(void)
  97:os.c          **** {
 271               	.LM45:
 272               	/* prologue: frame size=0 */
 273               	/* prologue end (size=0) */
  98:os.c          **** 	unsigned char result;
  99:os.c          **** 	result = LLCStdControlInit();
 275               	.LM46:
 276 009a 0E94 0000 		call LLCStdControlInit
 100:os.c          **** 	return result;
 101:os.c          **** }
 278               	.LM47:
 279 009e 9927      		clr r25
 280               	/* epilogue: frame size=0 */
 281 00a0 0895      		ret
 282               	/* epilogue end (size=1) */
 283               	/* function MainStdControlInit size 4 (3) */
 286               	.global	MainStdControlStart
 288               	MainStdControlStart:
 102:os.c          **** 
 103:os.c          **** result_t MainStdControlStart(void)
 104:os.c          **** {
 290               	.LM48:
 291               	/* prologue: frame size=0 */
 292               	/* prologue end (size=0) */
 105:os.c          **** 	unsigned char result;
 106:os.c          **** 	
 107:os.c          **** 	result = LLCStdControlStart();
 294               	.LM49:
 295 00a2 0E94 0000 		call LLCStdControlStart
 108:os.c          **** 	
 109:os.c          **** 	return result;
 110:os.c          **** }
 297               	.LM50:
 298 00a6 9927      		clr r25
 299               	/* epilogue: frame size=0 */
 300 00a8 0895      		ret
 301               	/* epilogue end (size=1) */
 302               	/* function MainStdControlStart size 4 (3) */
 305               	.global	EnableInterrupt
 307               	EnableInterrupt:
 111:os.c          **** 
 112:os.c          **** void EnableInterrupt(void)
 113:os.c          **** {
 309               	.LM51:
 310               	/* prologue: frame size=0 */
 311               	/* prologue end (size=0) */
 114:os.c          **** 	__asm volatile ("sei");}
 313               	.LM52:
 314               	/* #APP */
 315 00aa 7894      		sei
 316               	/* #NOAPP */
 317               	/* epilogue: frame size=0 */
 318 00ac 0895      		ret
 319               	/* epilogue end (size=1) */
 320               	/* function EnableInterrupt size 3 (2) */
 323               	.global	OSH_wait
 325               	OSH_wait:
 115:os.c          **** 
 116:os.c          **** void OSH_wait(void)
 117:os.c          **** {
 327               	.LM53:
 328               	/* prologue: frame size=0 */
 329               	/* prologue end (size=0) */
 118:os.c          **** 	__asm volatile ("nop");
 331               	.LM54:
 332               	/* #APP */
 333 00ae 0000      		nop
 119:os.c          **** 	__asm volatile ("nop");}
 335               	.LM55:
 336 00b0 0000      		nop
 337               	/* #NOAPP */
 338               	/* epilogue: frame size=0 */
 339 00b2 0895      		ret
 340               	/* epilogue end (size=1) */
 341               	/* function OSH_wait size 5 (4) */
 344               	.global	OSH_sleep
 346               	OSH_sleep:
 120:os.c          **** 

⌨️ 快捷键说明

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