/[avr-libc]/avr-libc/include/avr/boot.h
ViewVC logotype

Diff of /avr-libc/include/avr/boot.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.19 by aesok, Thu Sep 29 16:14:36 2005 UTC revision 1.20 by aesok, Thu Oct 6 20:00:37 2005 UTC
# Line 190  Line 190 
190          "sts %0, %1\n\t"                         \          "sts %0, %1\n\t"                         \
191          "spm\n\t"                                \          "spm\n\t"                                \
192          "clr  r1\n\t"                            \          "clr  r1\n\t"                            \
193          : "=m" (__SPM_REG)                       \          :                                        \
194          : "r" ((uint8_t)__BOOT_PAGE_FILL),       \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
195              "r" ((uint8_t)__BOOT_PAGE_FILL),       \
196            "r" ((uint16_t)address),               \            "r" ((uint16_t)address),               \
197            "r" ((uint16_t)data)                   \            "r" ((uint16_t)data)                   \
198          : "r0", "r30", "r31"                     \          : "r0", "r30", "r31"                     \
# Line 209  Line 210 
210          ".word 0xffff\n\t"                       \          ".word 0xffff\n\t"                       \
211          "nop\n\t"                                \          "nop\n\t"                                \
212          "clr  r1\n\t"                            \          "clr  r1\n\t"                            \
213          : "=m" (__SPM_REG)                       \          :                                        \
214          : "r" ((uint8_t)__BOOT_PAGE_FILL),       \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
215              "r" ((uint8_t)__BOOT_PAGE_FILL),       \
216            "r" ((uint16_t)address),               \            "r" ((uint16_t)address),               \
217            "r" ((uint16_t)data)                   \            "r" ((uint16_t)data)                   \
218          : "r0", "r30", "r31"                     \          : "r0", "r30", "r31"                     \
# Line 227  Line 229 
229          "sts %0, %2\n\t"                         \          "sts %0, %2\n\t"                         \
230          "spm\n\t"                                \          "spm\n\t"                                \
231          "clr  r1\n\t"                            \          "clr  r1\n\t"                            \
232          : "=m" (__SPM_REG),                      \          :                                        \
233            "=m" (RAMPZ)                           \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
234          : "r" ((uint8_t)__BOOT_PAGE_FILL),       \            "i" (_SFR_MEM_ADDR(RAMPZ)),            \
235              "r" ((uint8_t)__BOOT_PAGE_FILL),       \
236            "r" ((uint32_t)address),               \            "r" ((uint32_t)address),               \
237            "r" ((uint16_t)data)                   \            "r" ((uint16_t)data)                   \
238          : "r0", "r30", "r31"                     \          : "r0", "r30", "r31"                     \
# Line 243  Line 246 
246          "movw r30, %2\n\t"                       \          "movw r30, %2\n\t"                       \
247          "sts %0, %1\n\t"                         \          "sts %0, %1\n\t"                         \
248          "spm\n\t"                                \          "spm\n\t"                                \
249          : "=m" (__SPM_REG)                       \          :                                        \
250          : "r" ((uint8_t)__BOOT_PAGE_ERASE),      \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
251              "r" ((uint8_t)__BOOT_PAGE_ERASE),      \
252            "r" ((uint16_t)address)                \            "r" ((uint16_t)address)                \
253          : "r30", "r31"                           \          : "r30", "r31"                           \
254      );                                           \      );                                           \
# Line 259  Line 263 
263          "spm\n\t"                                \          "spm\n\t"                                \
264          ".word 0xffff\n\t"                       \          ".word 0xffff\n\t"                       \
265          "nop\n\t"                                \          "nop\n\t"                                \
266          : "=m" (__SPM_REG)                       \          :                                        \
267          : "r" ((uint8_t)__BOOT_PAGE_ERASE),      \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
268              "r" ((uint8_t)__BOOT_PAGE_ERASE),      \
269            "r" ((uint16_t)address)                \            "r" ((uint16_t)address)                \
270          : "r30", "r31"                           \          : "r30", "r31"                           \
271      );                                           \      );                                           \
# Line 274  Line 279 
279          "sts  %1, %C3\n\t"                       \          "sts  %1, %C3\n\t"                       \
280          "sts %0, %2\n\t"                         \          "sts %0, %2\n\t"                         \
281          "spm\n\t"                                \          "spm\n\t"                                \
282          : "=m" (__SPM_REG),                      \          :                                        \
283            "=m" (RAMPZ)                           \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
284          : "r" ((uint8_t)__BOOT_PAGE_ERASE),      \            "i" (_SFR_MEM_ADDR(RAMPZ)),            \
285              "r" ((uint8_t)__BOOT_PAGE_ERASE),      \
286            "r" ((uint32_t)address)                \            "r" ((uint32_t)address)                \
287          : "r30", "r31"                           \          : "r30", "r31"                           \
288      );                                           \      );                                           \
# Line 289  Line 295 
295          "movw r30, %2\n\t"                       \          "movw r30, %2\n\t"                       \
296          "sts %0, %1\n\t"                         \          "sts %0, %1\n\t"                         \
297          "spm\n\t"                                \          "spm\n\t"                                \
298          : "=m" (__SPM_REG)                       \          :                                        \
299          : "r" ((uint8_t)__BOOT_PAGE_WRITE),      \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
300              "r" ((uint8_t)__BOOT_PAGE_WRITE),      \
301            "r" ((uint16_t)address)                \            "r" ((uint16_t)address)                \
302          : "r30", "r31"                           \          : "r30", "r31"                           \
303      );                                           \      );                                           \
# Line 305  Line 312 
312          "spm\n\t"                                \          "spm\n\t"                                \
313          ".word 0xffff\n\t"                       \          ".word 0xffff\n\t"                       \
314          "nop\n\t"                                \          "nop\n\t"                                \
315          : "=m" (__SPM_REG)                       \          :                                        \
316          : "r" ((uint8_t)__BOOT_PAGE_WRITE),      \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
317              "r" ((uint8_t)__BOOT_PAGE_WRITE),      \
318            "r" ((uint16_t)address)                \            "r" ((uint16_t)address)                \
319          : "r30", "r31"                           \          : "r30", "r31"                           \
320      );                                           \      );                                           \
# Line 320  Line 328 
328          "sts %1, %C3\n\t"                        \          "sts %1, %C3\n\t"                        \
329          "sts %0, %2\n\t"                         \          "sts %0, %2\n\t"                         \
330          "spm\n\t"                                \          "spm\n\t"                                \
331          : "=m" (__SPM_REG),                      \          :                                        \
332            "=m" (RAMPZ)                           \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
333          : "r" ((uint8_t)__BOOT_PAGE_WRITE),      \            "i" (_SFR_MEM_ADDR(RAMPZ)),            \
334              "r" ((uint8_t)__BOOT_PAGE_WRITE),      \
335            "r" ((uint32_t)address)                \            "r" ((uint32_t)address)                \
336          : "r30", "r31"                           \          : "r30", "r31"                           \
337      );                                           \      );                                           \
# Line 334  Line 343 
343      (                                            \      (                                            \
344          "sts %0, %1\n\t"                         \          "sts %0, %1\n\t"                         \
345          "spm\n\t"                                \          "spm\n\t"                                \
346          : "=m" (__SPM_REG)                       \          :                                        \
347          : "r" ((uint8_t)__BOOT_RWW_ENABLE)       \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
348              "r" ((uint8_t)__BOOT_RWW_ENABLE)       \
349      );                                           \      );                                           \
350  })  })
351    
# Line 347  Line 357 
357          "spm\n\t"                                \          "spm\n\t"                                \
358          ".word 0xffff\n\t"                       \          ".word 0xffff\n\t"                       \
359          "nop\n\t"                                \          "nop\n\t"                                \
360          : "=m" (__SPM_REG)                       \          :                                        \
361          : "r" ((uint8_t)__BOOT_RWW_ENABLE)       \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
362              "r" ((uint8_t)__BOOT_RWW_ENABLE)       \
363      );                                           \      );                                           \
364  })  })
365    
# Line 379  Line 390 
390          "mov r0, %2\n\t"                                   \          "mov r0, %2\n\t"                                   \
391          "sts %0, %1\n\t"                                   \          "sts %0, %1\n\t"                                   \
392          "spm\n\t"                                          \          "spm\n\t"                                          \
393          : "=m" (__SPM_REG)                                 \          :                                                  \
394          : "r" ((uint8_t)__BOOT_LOCK_BITS_SET),             \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  \
395              "r" ((uint8_t)__BOOT_LOCK_BITS_SET),             \
396            "r" (value)                                      \            "r" (value)                                      \
397          : "r0", "r30", "r31"                               \          : "r0", "r30", "r31"                               \
398      );                                                     \      );                                                     \
# Line 398  Line 410 
410          "spm\n\t"                                          \          "spm\n\t"                                          \
411          ".word 0xffff\n\t"                                 \          ".word 0xffff\n\t"                                 \
412          "nop\n\t"                                          \          "nop\n\t"                                          \
413          : "=m" (__SPM_REG)                                 \          :                                                  \
414          : "r" ((uint8_t)__BOOT_LOCK_BITS_SET),       \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  \
415              "r" ((uint8_t)__BOOT_LOCK_BITS_SET),             \
416            "r" (value)                                      \            "r" (value)                                      \
417          : "r0", "r30", "r31"                               \          : "r0", "r30", "r31"                               \
418      );                                                     \      );                                                     \
# Line 464  Line 477 
477      (                                                      \      (                                                      \
478          "ldi r30, %3\n\t"                                  \          "ldi r30, %3\n\t"                                  \
479          "ldi r31, 0\n\t"                                   \          "ldi r31, 0\n\t"                                   \
480          "sts %0, %2\n\t"                                   \          "sts %1, %2\n\t"                                   \
481          "lpm %1, Z\n\t"                                    \          "lpm %0, Z\n\t"                                    \
482          : "=m" (__SPM_REG),                                \          : "=r" (__result)                                  \
483            "=r" (__result)                                  \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  \
484          : "r" ((uint8_t)__BOOT_LOCK_BITS_SET),             \            "r" ((uint8_t)__BOOT_LOCK_BITS_SET),             \
485            "M" (address)                                    \            "M" (address)                                    \
486          : "r0", "r30", "r31"                               \          : "r0", "r30", "r31"                               \
487      );                                                     \      );                                                     \

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26