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

📄 macclock.lst

📁 adhoc汇聚节点程序源代码(点对多点)——for atmega128
💻 LST
字号:
   1               		.file	"macClock.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:
  66               	.global	ClockStart
  68               	ClockStart:
   1:macClock.c    **** /*
   2:macClock.c    **** ****************************************************************************  
   3:macClock.c    **** *                        
   4:macClock.c    **** *              宁波中科集成电路设计中心  版权所有 Copyright 2005
   5:macClock.c    **** *
   6:macClock.c    **** *文件名:  macClock.c
   7:macClock.c    **** *程序员:  xp
   8:macClock.c    **** *主要内容:mac时钟源
   9:macClock.c    **** *完成日期:2005.6.10
  10:macClock.c    **** ****************************************************************************
  11:macClock.c    **** */
  12:macClock.c    **** 
  13:macClock.c    **** #include "macClock.h"
  14:macClock.c    **** #include "os.h"
  15:macClock.c    **** #include "led.h"
  16:macClock.c    **** #include "mac.h"
  17:macClock.c    **** #include <inttypes.h>
  18:macClock.c    **** #include <avr/io.h>
  19:macClock.c    **** #include <avr/interrupt.h>
  20:macClock.c    **** #include <avr/signal.h>
  21:macClock.c    **** 
  22:macClock.c    **** 
  23:macClock.c    **** #define SCALE_1ms 1
  24:macClock.c    **** #define INTERVAL_1ms 7650  // 7650
  25:macClock.c    **** 
  26:macClock.c    **** void ClockStart(void)
  27:macClock.c    **** {
  70               	.LM1:
  71               	/* prologue: frame size=0 */
  72               	/* prologue end (size=0) */
  28:macClock.c    ****     uint8_t intEnabled, scale = SCALE_1ms;
  29:macClock.c    **** 	uint16_t interval = INTERVAL_1ms;
  30:macClock.c    **** 	scale |= 0x8;
  31:macClock.c    **** 	cbi(TIMSK, OCIE1A);						// 关比较器A的输出中断
  74               	.LM2:
  75 0000 87B7      		in r24,87-0x20
  76 0002 8F7E      		andi r24,lo8(-17)
  77 0004 87BF      		out 87-0x20,r24
  32:macClock.c    **** 	intEnabled = bit_is_set(SREG, 7);
  79               	.LM3:
  80 0006 2FB7      		in r18,95-0x20
  81 0008 2078      		andi r18,lo8(-128)
  33:macClock.c    **** 	cli();									// 访问寄存器前先关中断
  83               	.LM4:
  84               	/* #APP */
  85 000a F894      		cli
  34:macClock.c    **** 	outw(TCNT1L, 0);						// 清空寄存器
  87               	.LM5:
  88               	/* #NOAPP */
  89 000c 1DBC      		out (76)+1-0x20,__zero_reg__
  90 000e 1CBC      		out 76-0x20,__zero_reg__
  35:macClock.c    **** 	outw(OCR1AL, interval);					// 设置比较匹配寄存器
  92               	.LM6:
  93 0010 82EE      		ldi r24,lo8(7650)
  94 0012 9DE1      		ldi r25,hi8(7650)
  95 0014 9BBD      		out (74)+1-0x20,r25
  96 0016 8ABD      		out 74-0x20,r24
  36:macClock.c    **** 	if (intEnabled) 
  98               	.LM7:
  99 0018 2223      		tst r18
 100 001a 09F0      		breq .L2
  37:macClock.c    **** 		sei();
 102               	.LM8:
 103               	/* #APP */
 104 001c 7894      		sei
 105               	/* #NOAPP */
 106               	.L2:
  38:macClock.c    **** 	outp(scale, TCCR1B);					// 设置为8分频
 108               	.LM9:
 109 001e 89E0      		ldi r24,lo8(9)
 110 0020 8EBD      		out 78-0x20,r24
  39:macClock.c    **** 	sbi(TIMSK, OCIE1A);						// 开中断
 112               	.LM10:
 113 0022 87B7      		in r24,87-0x20
 114 0024 8061      		ori r24,lo8(16)
 115 0026 87BF      		out 87-0x20,r24
 116               	/* epilogue: frame size=0 */
 117 0028 0895      		ret
 118               	/* epilogue end (size=1) */
 119               	/* function ClockStart size 23 (22) */
 124               	.global	__vector_12
 126               	__vector_12:
  40:macClock.c    **** }
  41:macClock.c    **** 
  42:macClock.c    **** INTERRUPT(SIG_OUTPUT_COMPARE1A)				// 中断服务程序
  43:macClock.c    **** {
 128               	.LM11:
 129               	/* prologue: frame size=0 */
 130 002a 7894      		sei
 131 002c 1F92      		push __zero_reg__
 132 002e 0F92      		push __tmp_reg__
 133 0030 0FB6      		in __tmp_reg__,__SREG__
 134 0032 0F92      		push __tmp_reg__
 135 0034 1124      		clr __zero_reg__
 136 0036 2F93      		push r18
 137 0038 3F93      		push r19
 138 003a 4F93      		push r20
 139 003c 5F93      		push r21
 140 003e 6F93      		push r22
 141 0040 7F93      		push r23
 142 0042 8F93      		push r24
 143 0044 9F93      		push r25
 144 0046 AF93      		push r26
 145 0048 BF93      		push r27
 146 004a EF93      		push r30
 147 004c FF93      		push r31
 148               	/* prologue end (size=18) */
  44:macClock.c    ****     MACClockFire();
 150               	.LM12:
 151 004e 0E94 0000 		call MACClockFire
 152               	/* epilogue: frame size=0 */
 153 0052 FF91      		pop r31
 154 0054 EF91      		pop r30
 155 0056 BF91      		pop r27
 156 0058 AF91      		pop r26
 157 005a 9F91      		pop r25
 158 005c 8F91      		pop r24
 159 005e 7F91      		pop r23
 160 0060 6F91      		pop r22
 161 0062 5F91      		pop r21
 162 0064 4F91      		pop r20
 163 0066 3F91      		pop r19
 164 0068 2F91      		pop r18
 165 006a 0F90      		pop __tmp_reg__
 166 006c 0FBE      		out __SREG__,__tmp_reg__
 167 006e 0F90      		pop __tmp_reg__
 168 0070 1F90      		pop __zero_reg__
 169 0072 1895      		reti
 170               	/* epilogue end (size=17) */
 171               	/* function __vector_12 size 37 (2) */
 175               	.global	TimeStampGetTime32
 177               	TimeStampGetTime32:
  45:macClock.c    **** }
  46:macClock.c    **** 
  47:macClock.c    **** void TimeStampGetTime32(uint32_t *timePtr)	// 得到当前时钟计数器中的值,用于时间戳
  48:macClock.c    **** {
 179               	.LM13:
 180               	/* prologue: frame size=0 */
 181               	/* prologue end (size=0) */
 182 0074 FC01      		movw r30,r24
  49:macClock.c    **** 	uint8_t intEnabled = bit_is_set(SREG, 7);
 184               	.LM14:
 185 0076 2FB7      		in r18,95-0x20
 186 0078 2078      		andi r18,lo8(-128)
  50:macClock.c    **** 	cli();     
 188               	.LM15:
 189               	/* #APP */
 190 007a F894      		cli
  51:macClock.c    **** 	*timePtr = (uint32_t)inw(TCNT1L);		// 读TCNT1
 192               	.LM16:
 193               	/* #NOAPP */
 194 007c 8CB5      		in r24,76-0x20
 195 007e 9DB5      		in r25,(76)+1-0x20
 196 0080 AA27      		clr r26
 197 0082 BB27      		clr r27
 198 0084 8083      		st Z,r24
 199 0086 9183      		std Z+1,r25
 200 0088 A283      		std Z+2,r26
 201 008a B383      		std Z+3,r27
  52:macClock.c    **** 	if (intEnabled) sei();
 203               	.LM17:
 204 008c 2223      		tst r18
 205 008e 09F0      		breq .L4
 207               	.LM18:
 208               	/* #APP */
 209 0090 7894      		sei
 210               	/* #NOAPP */
 211               	.L4:
 212 0092 0895      		ret
 213               	/* epilogue: frame size=0 */
 214 0094 0895      		ret
 215               	/* epilogue end (size=1) */
 216               	/* function TimeStampGetTime32 size 19 (18) */
 218               		.text
 220               	Letext:
 221               	/* File "macClock.c": code   79 = 0x004f (  42), prologues  18, epilogues  19 */
DEFINED SYMBOLS
                            *ABS*:00000000 macClock.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\xiapeng\LOCALS~1\Temp/cciobaaa.s:68     .text:00000000 ClockStart
C:\DOCUME~1\xiapeng\LOCALS~1\Temp/cciobaaa.s:126    .text:0000002a __vector_12
C:\DOCUME~1\xiapeng\LOCALS~1\Temp/cciobaaa.s:177    .text:00000074 TimeStampGetTime32
C:\DOCUME~1\xiapeng\LOCALS~1\Temp/cciobaaa.s:220    .text:00000096 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
MACClockFire

⌨️ 快捷键说明

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