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

📄 eeprom.lst

📁 cs5460a做功率表用 cs5460a做功率表用 cs5460a做功率表
💻 LST
📖 第 1 页 / 共 3 页
字号:
 166:C:/WinAVR/avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEWE)
 167:C:/WinAVR/avr/include/avr/eeprom.h **** #elif defined(EEPE)
 168:C:/WinAVR/avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEPE)
 169:C:/WinAVR/avr/include/avr/eeprom.h **** #elif defined(DEECR) && defined(EEL)
 170:C:/WinAVR/avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(DEECR, EEL)
 171:C:/WinAVR/avr/include/avr/eeprom.h **** #else
 172:C:/WinAVR/avr/include/avr/eeprom.h **** # error "No write enable bit known for this device's EEPROM."
 173:C:/WinAVR/avr/include/avr/eeprom.h **** #endif
 174:C:/WinAVR/avr/include/avr/eeprom.h **** 
 175:C:/WinAVR/avr/include/avr/eeprom.h **** /** \def eeprom_busy_wait
 176:C:/WinAVR/avr/include/avr/eeprom.h ****     \ingroup avr_eeprom
 177:C:/WinAVR/avr/include/avr/eeprom.h **** 
 178:C:/WinAVR/avr/include/avr/eeprom.h ****     Loops until the eeprom is no longer busy.
 179:C:/WinAVR/avr/include/avr/eeprom.h **** 
 180:C:/WinAVR/avr/include/avr/eeprom.h ****     \returns Nothing. */
 181:C:/WinAVR/avr/include/avr/eeprom.h **** 
 182:C:/WinAVR/avr/include/avr/eeprom.h **** #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
 183:C:/WinAVR/avr/include/avr/eeprom.h **** 
 184:C:/WinAVR/avr/include/avr/eeprom.h **** 
 185:C:/WinAVR/avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 186:C:/WinAVR/avr/include/avr/eeprom.h ****     Read one byte from EEPROM address \c addr. */
 187:C:/WinAVR/avr/include/avr/eeprom.h **** 
 188:C:/WinAVR/avr/include/avr/eeprom.h **** uint8_t 
 189:C:/WinAVR/avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr) 
 190:C:/WinAVR/avr/include/avr/eeprom.h **** {
 191:C:/WinAVR/avr/include/avr/eeprom.h ****   uint8_t result;
 192:C:/WinAVR/avr/include/avr/eeprom.h ****   asm volatile
 193:C:/WinAVR/avr/include/avr/eeprom.h ****       ( XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
 194:C:/WinAVR/avr/include/avr/eeprom.h ****         "mov %1,__tmp_reg__"
 195:C:/WinAVR/avr/include/avr/eeprom.h ****        : "+x" (addr),
 196:C:/WinAVR/avr/include/avr/eeprom.h ****          "=r" (result)
 197:C:/WinAVR/avr/include/avr/eeprom.h ****        : );
 198:C:/WinAVR/avr/include/avr/eeprom.h ****   return result;
 199:C:/WinAVR/avr/include/avr/eeprom.h **** }
 200:C:/WinAVR/avr/include/avr/eeprom.h **** 
 201:C:/WinAVR/avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 202:C:/WinAVR/avr/include/avr/eeprom.h ****     Read one 16-bit word (little endian) from EEPROM address \c addr. */
 203:C:/WinAVR/avr/include/avr/eeprom.h **** uint16_t
 204:C:/WinAVR/avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr)
 205:C:/WinAVR/avr/include/avr/eeprom.h **** {
 206:C:/WinAVR/avr/include/avr/eeprom.h ****   uint16_t result;
 207:C:/WinAVR/avr/include/avr/eeprom.h **** 
 208:C:/WinAVR/avr/include/avr/eeprom.h ****   asm ( 
 209:C:/WinAVR/avr/include/avr/eeprom.h ****         XCALL " __eeprom_read_word_" _REG_LOCATION_SUFFIX CR_TAB
 210:C:/WinAVR/avr/include/avr/eeprom.h ****        : "+x" (addr),
 211:C:/WinAVR/avr/include/avr/eeprom.h ****          "=z" (result)
 212:C:/WinAVR/avr/include/avr/eeprom.h ****        : );
 213:C:/WinAVR/avr/include/avr/eeprom.h ****   return result;
 214:C:/WinAVR/avr/include/avr/eeprom.h **** }
 215:C:/WinAVR/avr/include/avr/eeprom.h **** 
 216:C:/WinAVR/avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 217:C:/WinAVR/avr/include/avr/eeprom.h ****     Read a block of \c n bytes from EEPROM address \c pointer_eeprom to
 218:C:/WinAVR/avr/include/avr/eeprom.h ****     \c pointer_ram.  For constant n <= 256 bytes a library function is used.
 219:C:/WinAVR/avr/include/avr/eeprom.h ****     For block sizes unknown at compile time or block sizes > 256 an inline
 220:C:/WinAVR/avr/include/avr/eeprom.h ****     loop is expanded. */
 221:C:/WinAVR/avr/include/avr/eeprom.h **** 
 222:C:/WinAVR/avr/include/avr/eeprom.h **** void 
 223:C:/WinAVR/avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
 224:C:/WinAVR/avr/include/avr/eeprom.h ****                    const void *pointer_eeprom,
 225:C:/WinAVR/avr/include/avr/eeprom.h ****                    size_t n)
 226:C:/WinAVR/avr/include/avr/eeprom.h **** {
 227:C:/WinAVR/avr/include/avr/eeprom.h ****   if (!__builtin_constant_p (n)
 228:C:/WinAVR/avr/include/avr/eeprom.h ****       || n > 256)
 229:C:/WinAVR/avr/include/avr/eeprom.h ****     {
 230:C:/WinAVR/avr/include/avr/eeprom.h ****       /* make sure size is a 16 bit variable.  */
 231:C:/WinAVR/avr/include/avr/eeprom.h ****       uint16_t size = n; 
 232:C:/WinAVR/avr/include/avr/eeprom.h **** 
 233:C:/WinAVR/avr/include/avr/eeprom.h ****       asm volatile ( 
 234:C:/WinAVR/avr/include/avr/eeprom.h ****             ".%=_start:" CR_TAB
 235:C:/WinAVR/avr/include/avr/eeprom.h ****             "sbiw %2,1" CR_TAB
 236:C:/WinAVR/avr/include/avr/eeprom.h ****             "brlt .%=_finished" CR_TAB
 237:C:/WinAVR/avr/include/avr/eeprom.h ****              XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
 238:C:/WinAVR/avr/include/avr/eeprom.h ****             "st z+,__tmp_reg__" CR_TAB
 239:C:/WinAVR/avr/include/avr/eeprom.h ****             "rjmp .%=_start" CR_TAB
 240:C:/WinAVR/avr/include/avr/eeprom.h ****             ".%=_finished:" 
 241:C:/WinAVR/avr/include/avr/eeprom.h ****           : "=x" (pointer_eeprom),
 242:C:/WinAVR/avr/include/avr/eeprom.h ****             "=z" (pointer_ram),
 243:C:/WinAVR/avr/include/avr/eeprom.h ****             "+w" (size)
 244:C:/WinAVR/avr/include/avr/eeprom.h ****            : "x" (pointer_eeprom), 
 245:C:/WinAVR/avr/include/avr/eeprom.h ****              "z" (pointer_ram)
 246:C:/WinAVR/avr/include/avr/eeprom.h ****            : "memory");
 247:C:/WinAVR/avr/include/avr/eeprom.h ****     }
 248:C:/WinAVR/avr/include/avr/eeprom.h ****   else
 249:C:/WinAVR/avr/include/avr/eeprom.h ****     {
 250:C:/WinAVR/avr/include/avr/eeprom.h ****       if (n != 0)
 251:C:/WinAVR/avr/include/avr/eeprom.h ****         {
 252:C:/WinAVR/avr/include/avr/eeprom.h ****           if (n == 256)
 253:C:/WinAVR/avr/include/avr/eeprom.h ****             {
 254:C:/WinAVR/avr/include/avr/eeprom.h ****               asm volatile (
 255:C:/WinAVR/avr/include/avr/eeprom.h ****                   XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX 
 256:C:/WinAVR/avr/include/avr/eeprom.h ****                 : "+x" (pointer_eeprom),
 257:C:/WinAVR/avr/include/avr/eeprom.h ****                   "=z" (pointer_ram)
 258:C:/WinAVR/avr/include/avr/eeprom.h ****                 : "z"  (pointer_ram)
 259:C:/WinAVR/avr/include/avr/eeprom.h ****                 : "memory");
 260:C:/WinAVR/avr/include/avr/eeprom.h ****             }
 261:C:/WinAVR/avr/include/avr/eeprom.h ****           else
 262:C:/WinAVR/avr/include/avr/eeprom.h ****             {
 263:C:/WinAVR/avr/include/avr/eeprom.h ****               /* Needed in order to truncate to 8 bit.  */
 264:C:/WinAVR/avr/include/avr/eeprom.h ****               uint8_t len;
 265:C:/WinAVR/avr/include/avr/eeprom.h ****               len = (uint8_t) n; 
 266:C:/WinAVR/avr/include/avr/eeprom.h **** 
 267:C:/WinAVR/avr/include/avr/eeprom.h ****               asm volatile (
 268:C:/WinAVR/avr/include/avr/eeprom.h ****                   "mov __zero_reg__,%2"      CR_TAB
 269:C:/WinAVR/avr/include/avr/eeprom.h ****                    XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX 
 270:C:/WinAVR/avr/include/avr/eeprom.h ****                 : "+x" (pointer_eeprom),
 271:C:/WinAVR/avr/include/avr/eeprom.h ****                   "=z" (pointer_ram)
 272:C:/WinAVR/avr/include/avr/eeprom.h ****                 : "r"  (len),
 273:C:/WinAVR/avr/include/avr/eeprom.h ****                   "z"  (pointer_ram)
 274:C:/WinAVR/avr/include/avr/eeprom.h ****                 : "memory");
 275:C:/WinAVR/avr/include/avr/eeprom.h ****             }
 276:C:/WinAVR/avr/include/avr/eeprom.h ****         }
 277:C:/WinAVR/avr/include/avr/eeprom.h ****     }
 278:C:/WinAVR/avr/include/avr/eeprom.h **** }
 279:C:/WinAVR/avr/include/avr/eeprom.h **** 
 280:C:/WinAVR/avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 281:C:/WinAVR/avr/include/avr/eeprom.h ****     Write a byte \c value to EEPROM address \c addr. */
 282:C:/WinAVR/avr/include/avr/eeprom.h **** 
 283:C:/WinAVR/avr/include/avr/eeprom.h **** void 
 284:C:/WinAVR/avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value)
 285:C:/WinAVR/avr/include/avr/eeprom.h **** {
 286:C:/WinAVR/avr/include/avr/eeprom.h ****   asm volatile (
 130               	.LM4:
 131               	/* #APP */
 132 000c 062E      		mov __tmp_reg__,r22
 133 000e 00D0      		rcall __eeprom_write_byte_1C1D1E
 134               	/* #NOAPP */
 135               	.LBE3:
 136               	.LBE2:
 137               	/* epilogue: frame size=0 */
 138 0010 0895      		ret
 139               	/* epilogue end (size=1) */
 140               	/* function Write_EEProm_byte size 12 (11) */
 145               	.Lscope0:
 149               	.global	Write_EEProm_word
 151               	Write_EEProm_word:
 153               	.Ltext2:
  27:driver/EEProm.c ****     }
  28:driver/EEProm.c ****     eeprom_write_byte(pwr_addr,val);        
  29:driver/EEProm.c **** }
  30:driver/EEProm.c **** //----------------------------------------------------------------
  31:driver/EEProm.c **** void Write_EEProm_word(uint *pwr_addr,uint val)
  32:driver/EEProm.c **** {
 155               	.LM5:
 156               	/* prologue: frame size=0 */
 157               	/* prologue end (size=0) */
 158 0012 DC01      		movw r26,r24
  33:driver/EEProm.c ****      while (!eeprom_is_ready())
  34:driver/EEProm.c ****      {
  35:driver/EEProm.c ****        wdt_reset();
 160               	.LM6:
 161 0014 E19B      		sbis 60-0x20,1
 162 0016 03C0      		rjmp .L14
 163               	.L11:
 165               	.LM7:
 166               	/* #APP */
 167 0018 A895      		wdr
 168               	/* #NOAPP */
 169 001a E199      		sbic 60-0x20,1
 170 001c FDCF      		rjmp .L11
 171               	.L14:
 172               	.LBB4:
 173               	.LBB5:
 175               	.Ltext3:
 287:C:/WinAVR/avr/include/avr/eeprom.h ****          "mov __tmp_reg__,%1"      CR_TAB
 288:C:/WinAVR/avr/include/avr/eeprom.h ****          XCALL " __eeprom_write_byte_" _REG_LOCATION_SUFFIX
 289:C:/WinAVR/avr/include/avr/eeprom.h ****        : "+x" (addr)
 290:C:/WinAVR/avr/include/avr/eeprom.h ****        : "r"  (value)
 291:C:/WinAVR/avr/include/avr/eeprom.h ****        : "memory"
 292:C:/WinAVR/avr/include/avr/eeprom.h ****       );
 293:C:/WinAVR/avr/include/avr/eeprom.h **** }
 294:C:/WinAVR/avr/include/avr/eeprom.h **** 
 295:C:/WinAVR/avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
 296:C:/WinAVR/avr/include/avr/eeprom.h ****     Write a word \c value to EEPROM address \c addr. */
 297:C:/WinAVR/avr/include/avr/eeprom.h **** 
 298:C:/WinAVR/avr/include/avr/eeprom.h **** void 
 299:C:/WinAVR/avr/include/avr/eeprom.h **** eeprom_write_word (uint16_t *addr,uint16_t value)
 300:C:/WinAVR/avr/include/avr/eeprom.h **** {
 301:C:/WinAVR/avr/include/avr/eeprom.h ****   asm volatile (
 177               	.LM8:
 178               	/* #APP */
 179 001e 0B01      		movw __tmp_reg__,r22
 180 0020 00D0      		rcall __eeprom_write_word_1C1D1E
 181               		
 182               	/* #NOAPP */
 183               	.LBE5:
 184               	.LBE4:
 185               	/* epilogue: frame size=0 */
 186 0022 0895      		ret
 187               	/* epilogue end (size=1) */
 188               	/* function Write_EEProm_word size 14 (13) */
 193               	.Lscope1:
 198               	.global	Write_EEProm_block
 200               	Write_EEProm_block:
 202               	.Ltext4:
  36:driver/EEProm.c ****      }
  37:driver/EEProm.c ****      eeprom_write_word(pwr_addr,val);     
  38:driver/EEProm.c **** }
  39:driver/EEProm.c **** //----------------------------------------------------------------
  40:driver/EEProm.c **** void  Write_EEProm_block(const void *prd_addr,void *pwr_addr,uchar size)
  41:driver/EEProm.c **** {
 204               	.LM9:
 205               	/* prologue: frame size=0 */
 206               	/* prologue end (size=0) */
 207 0024 FC01      		movw r30,r24
 208 0026 DB01      		movw r26,r22
  42:driver/EEProm.c ****     while (!eeprom_is_ready())
  43:driver/EEProm.c ****     {
  44:driver/EEProm.c ****        wdt_reset();
 210               	.LM10:
 211 0028 E19B      		sbis 60-0x20,1
 212 002a 03C0      		rjmp .L27
 213               	.L18:
 215               	.LM11:
 216               	/* #APP */
 217 002c A895      		wdr
 218               	/* #NOAPP */
 219 002e E199      		sbic 60-0x20,1
 220 0030 FDCF      		rjmp .L18
 221               	.L27:
 222               	.LBB6:
 224               	.Ltext5:
 302:C:/WinAVR/avr/include/avr/eeprom.h **** #if __AVR_HAVE_MOVW__

⌨️ 快捷键说明

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