📄 logger.lst
字号:
45:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #ifndef __ATTR_PURE__
46:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # ifdef __DOXYGEN__
47:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define __ATTR_PURE__
48:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # else
49:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define __ATTR_PURE__ __attribute__((__pure__))
50:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # endif
51:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #endif
52:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
53:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #if (! (defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)) )
54:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** uint16_t __eerd_word (const uint16_t *, uint8_t (*)(const uint8_t *))
55:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** __ATTR_PURE__;
56:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** uint32_t __eerd_dword (const uint32_t *, uint8_t (*)(const uint8_t *))
57:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** __ATTR_PURE__;
58:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** void __eerd_block (void *, const void *, size_t, uint8_t (*)(const uint8_t *));
59:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
60:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** void __eewr_word (uint16_t *, uint16_t, void (*)(uint8_t *, uint8_t));
61:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** void __eewr_dword (uint32_t *, uint32_t, void (*)(uint8_t *, uint8_t));
62:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** void __eewr_block (void *, const void *, size_t, void (*)(uint8_t *, uint8_t));
63:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #endif /* (! (defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)) ) */
64:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
65:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #if !E2END && !defined(__DOXYGEN__)
66:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # ifndef __COMPILING_AVR_LIBC__
67:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # warning "Device does not have EEPROM available."
68:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # endif
69:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /* Omit below for chips without EEPROM. */
70:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
71:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #else
72:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
73:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /** \defgroup avr_eeprom <avr/eeprom.h>: EEPROM handling
74:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** \code #include <avr/eeprom.h> \endcode
75:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
76:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** This header file declares the interface to some simple library
77:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** routines suitable for handling the data EEPROM contained in the
78:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** AVR microcontrollers. The implementation uses a simple polled
79:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** mode interface. Applications that require interrupt-controlled
80:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** EEPROM access to ensure that no time will be wasted in spinloops
81:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** will have to deploy their own implementation.
82:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
83:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** \note All of the read/write functions first make sure the EEPROM
84:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** is ready to be accessed. Since this may cause long delays if a
85:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** write operation is still pending, time-critical applications
86:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** should first poll the EEPROM e. g. using eeprom_is_ready() before
87:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** attempting any actual I/O. But this functions are not wait until
88:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** SELFPRGEN in SPMCSR becomes zero. Do this manually, if your
89:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** softwate contains the Flash burning.
90:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
91:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** \note As these functions modify IO registers, they are known to be
92:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** non-reentrant. If any of these functions are used from both,
93:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** standard and interrupt context, the applications must ensure
94:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** proper protection (e.g. by disabling interrupts before accessing
95:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** them).
96:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
97:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** \note All write functions force erase_and_write programming mode.
98:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** */
99:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
100:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /** \def EEMEM
101:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
102:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** Attribute expression causing a variable to be allocated within the
103:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** .eeprom section. */
104:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #define EEMEM __attribute__((section(".eeprom")))
105:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
106:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
107:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /* Register definitions */
108:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
109:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /* Check for aliases. */
110:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #if !defined(EEWE) && defined(EEPE)
111:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EEWE EEPE
112:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #endif
113:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
114:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #if !defined(EEMWE) && defined(EEMPE)
115:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EEMWE EEMPE
116:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #endif
117:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
118:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #if !defined(EECR) && defined(DEECR)
119:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /* AT86RF401 */
120:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EECR DEECR
121:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EEAR DEEAR
122:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EEARL DEEAR
123:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EEDR DEEDR
124:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EERE EER
125:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EEWE EEL
126:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EEMWE EEU
127:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #endif
128:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
129:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
130:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #if !defined(EECR) || !defined(EEDR) || !defined(EEARL)
131:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
132:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # if !defined(__EEPROM_REG_LOCATIONS__) \
133:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** && !defined(EEPROM_REG_LOCATIONS_OVERRIDE)
134:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /* 6-byte string denoting where to find the EEPROM registers in memory
135:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** space. Adresses denoted in hex syntax with uppercase letters. Used
136:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** by the EEPROM subroutines.
137:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** First two letters: EECR address.
138:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** Second two letters: EEDR address.
139:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** Last two letters: EEAR address.
140:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** */
141:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # error "Unknown EEPROM register(s) location."
142:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # endif
143:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
144:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /* If needed, override the locations defined in the IO headers. */
145:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # ifdef EEPROM_REG_LOCATIONS_OVERRIDE
146:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # undef __EEPROM_REG_LOCATIONS__
147:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define __EEPROM_REG_LOCATIONS__ EEPROM_REG_LOCATIONS_OVERRIDE
148:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # endif
149:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
150:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define CONCAT1(a, b) CONCAT2(a, b)
151:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define CONCAT2(a, b) a ## b
152:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define HEXNR CONCAT1(0x, __EEPROM_REG_LOCATIONS__)
153:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
154:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # undef EECR
155:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EECR _SFR_IO8((HEXNR >> 16) & 0xFF)
156:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
157:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # undef EEDR
158:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EEDR _SFR_IO8((HEXNR >> 8) & 0xFF)
159:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
160:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # undef EEAR
161:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EEAR _SFR_IO8(HEXNR & 0xFF)
162:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
163:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # undef EEARH
164:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
165:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # undef EEARL
166:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define EEARL EEAR
167:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
168:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #endif
169:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
170:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
171:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /** \def eeprom_is_ready
172:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
173:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** \returns 1 if EEPROM is ready for a new read/write operation, 0 if not.
174:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** */
175:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #if defined(__DOXYGEN__)
176:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define eeprom_is_ready()
177:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #elif defined(DEECR)
178:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(DEECR, BSY)
179:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #else
180:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEWE)
181:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #endif
182:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
183:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
184:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /** \def eeprom_busy_wait
185:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
186:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** Loops until the eeprom is no longer busy.
187:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** \returns Nothing.
188:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** */
189:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
190:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
191:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h ****
192:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
193:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** Read one byte from EEPROM address \a __p.
194:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** */
195:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** __ATTR_PURE__ static __inline__ uint8_t eeprom_read_byte (const uint8_t *__p)
196:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** {
197:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** do {} while (!eeprom_is_ready ());
145 B1
146 .LM2:
147 0032 E199 sbic 60-32,1
148 0034 00C0 rjmp .L16
198:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #if E2END <= 0xFF
199:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** EEARL = (uint8_t)__p;
200:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #else
201:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** EEAR = (uint16_t)__p;
149 abn 68,0,201,.LM3-.LFBB1
150 .LM3:
151 0036 822F mov r24,r18
152 0038 90E0 ldi r25,lo8(0)
153 003a 8050 subi r24,lo8(-(logger_temp_today))
154 003c 9040 sbci r25,hi8(-(logger_temp_today))
155 003e 9FBB out (62)+1-32,r25
156 0040 8EBB out 62-32,r24
202:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** #endif
203:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** /* Use inline assembly below as some AVRs have problems with accessing
204:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** EECR with STS instructions. For example, see errata for ATmega64.
205:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** The code below also assumes that EECR and EEDR are in the I/O space.
206:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** */
207:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** uint8_t __result;
208:c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h **** __asm__ __volatile__
157 68,0,208,.LM4-.LFBB1
158 .LM4:
159 /* #APP */
160 ; 208 "c:/winavr-20081205/lib/gcc/../../avr/include/avr/eeprom.h" 1
161 /* START EEPROM READ CRITICAL SECTION */
162 0042 E09A sbi 28, 0
163 0044 8DB3 in r24, 29
164 /* END EEPROM READ CRITICAL SECTION */
165
166 ; 0 "" 2
167 /* #NOAPP */
168 0046 8317 cp r24,r19
169 0048 00F4 brsh .L4
170 004a 382F mov r19,r24
171 .L4:
172 004c 4817 cp r20,r24
173 004e 00F4 brsh .L5
174 0050 482F mov r20,r24
175 .L5:
176 .LBE10:
177 .LBE9:
179 .Ltext2:
125:apps/logger.c **** to now !
126:apps/logger.c **** for(unsigned char i=0; i<=tnow; i++){
127:apps/logger.c **** val = eeprom_read_byte(&logger_temp_today[i]);
128:apps/logger.c **** if (val < min)
129:apps/logger.c **** min = val;
180 LFBB1
181 .LM5:
182 0052 2F5F subi r18,lo8(-(1))
183 0054 6217 cp r22,r18
184 0056 00F4 brsh .L16
185 .LBE8:
130:apps/logger.c **** mp_today[i]);
131:apps/logger.c **** if (val < min)
132:apps/logger.c **** min = val;
133:apps/logger.c **** if (val > max)
134:apps/logger.c **** max = val;
135:apps/logger.c **** }
136:apps/logger.c ****
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -