/[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.12.4.5 by aesok, Thu Sep 29 16:21:02 2005 UTC revision 1.12.4.6 by aesok, Thu Oct 6 20:06:41 2005 UTC
# Line 189  Line 189 
189          "sts %0, %1\n\t"                         \          "sts %0, %1\n\t"                         \
190          "spm\n\t"                                \          "spm\n\t"                                \
191          "clr  r1\n\t"                            \          "clr  r1\n\t"                            \
192          : "=m" (__SPM_REG)                       \          :                                        \
193          : "r" ((uint8_t)__BOOT_PAGE_FILL),       \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
194              "r" ((uint8_t)__BOOT_PAGE_FILL),       \
195            "r" ((uint16_t)address),               \            "r" ((uint16_t)address),               \
196            "r" ((uint16_t)data)                   \            "r" ((uint16_t)data)                   \
197          : "r0", "r30", "r31"                     \          : "r0", "r30", "r31"                     \
# Line 208  Line 209 
209          ".word 0xffff\n\t"                       \          ".word 0xffff\n\t"                       \
210          "nop\n\t"                                \          "nop\n\t"                                \
211          "clr  r1\n\t"                            \          "clr  r1\n\t"                            \
212          : "=m" (__SPM_REG)                       \          :                                        \
213          : "r" ((uint8_t)__BOOT_PAGE_FILL),       \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
214              "r" ((uint8_t)__BOOT_PAGE_FILL),       \
215            "r" ((uint16_t)address),               \            "r" ((uint16_t)address),               \
216            "r" ((uint16_t)data)                   \            "r" ((uint16_t)data)                   \
217          : "r0", "r30", "r31"                     \          : "r0", "r30", "r31"                     \
# Line 226  Line 228 
228          "sts %0, %2\n\t"                         \          "sts %0, %2\n\t"                         \
229          "spm\n\t"                                \          "spm\n\t"                                \
230          "clr  r1\n\t"                            \          "clr  r1\n\t"                            \
231          : "=m" (__SPM_REG),                      \          :                                        \
232            "=m" (RAMPZ)                           \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
233          : "r" ((uint8_t)__BOOT_PAGE_FILL),       \            "i" (_SFR_MEM_ADDR(RAMPZ)),            \
234              "r" ((uint8_t)__BOOT_PAGE_FILL),       \
235            "r" ((uint32_t)address),               \            "r" ((uint32_t)address),               \
236            "r" ((uint16_t)data)                   \            "r" ((uint16_t)data)                   \
237          : "r0", "r30", "r31"                     \          : "r0", "r30", "r31"                     \
# Line 242  Line 245 
245          "movw r30, %2\n\t"                       \          "movw r30, %2\n\t"                       \
246          "sts %0, %1\n\t"                         \          "sts %0, %1\n\t"                         \
247          "spm\n\t"                                \          "spm\n\t"                                \
248          : "=m" (__SPM_REG)                       \          :                                        \
249          : "r" ((uint8_t)__BOOT_PAGE_ERASE),      \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
250              "r" ((uint8_t)__BOOT_PAGE_ERASE),      \
251            "r" ((uint16_t)address)                \            "r" ((uint16_t)address)                \
252          : "r30", "r31"                           \          : "r30", "r31"                           \
253      );                                           \      );                                           \
# Line 258  Line 262 
262          "spm\n\t"                                \          "spm\n\t"                                \
263          ".word 0xffff\n\t"                       \          ".word 0xffff\n\t"                       \
264          "nop\n\t"                                \          "nop\n\t"                                \
265          : "=m" (__SPM_REG)                       \          :                                        \
266          : "r" ((uint8_t)__BOOT_PAGE_ERASE),      \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
267              "r" ((uint8_t)__BOOT_PAGE_ERASE),      \
268            "r" ((uint16_t)address)                \            "r" ((uint16_t)address)                \
269          : "r30", "r31"                           \          : "r30", "r31"                           \
270      );                                           \      );                                           \
# Line 273  Line 278 
278          "sts  %1, %C3\n\t"                       \          "sts  %1, %C3\n\t"                       \
279          "sts %0, %2\n\t"                         \          "sts %0, %2\n\t"                         \
280          "spm\n\t"                                \          "spm\n\t"                                \
281          : "=m" (__SPM_REG),                      \          :                                        \
282            "=m" (RAMPZ)                           \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
283          : "r" ((uint8_t)__BOOT_PAGE_ERASE),      \            "i" (_SFR_MEM_ADDR(RAMPZ)),            \
284              "r" ((uint8_t)__BOOT_PAGE_ERASE),      \
285            "r" ((uint32_t)address)                \            "r" ((uint32_t)address)                \
286          : "r30", "r31"                           \          : "r30", "r31"                           \
287      );                                           \      );                                           \
# Line 288  Line 294 
294          "movw r30, %2\n\t"                       \          "movw r30, %2\n\t"                       \
295          "sts %0, %1\n\t"                         \          "sts %0, %1\n\t"                         \
296          "spm\n\t"                                \          "spm\n\t"                                \
297          : "=m" (__SPM_REG)                       \          :                                        \
298          : "r" ((uint8_t)__BOOT_PAGE_WRITE),      \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
299              "r" ((uint8_t)__BOOT_PAGE_WRITE),      \
300            "r" ((uint16_t)address)                \            "r" ((uint16_t)address)                \
301          : "r30", "r31"                           \          : "r30", "r31"                           \
302      );                                           \      );                                           \
# Line 304  Line 311 
311          "spm\n\t"                                \          "spm\n\t"                                \
312          ".word 0xffff\n\t"                       \          ".word 0xffff\n\t"                       \
313          "nop\n\t"                                \          "nop\n\t"                                \
314          : "=m" (__SPM_REG)                       \          :                                        \
315          : "r" ((uint8_t)__BOOT_PAGE_WRITE),      \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
316              "r" ((uint8_t)__BOOT_PAGE_WRITE),      \
317            "r" ((uint16_t)address)                \            "r" ((uint16_t)address)                \
318          : "r30", "r31"                           \          : "r30", "r31"                           \
319      );                                           \      );                                           \
# Line 319  Line 327 
327          "sts %1, %C3\n\t"                        \          "sts %1, %C3\n\t"                        \
328          "sts %0, %2\n\t"                         \          "sts %0, %2\n\t"                         \
329          "spm\n\t"                                \          "spm\n\t"                                \
330          : "=m" (__SPM_REG),                      \          :                                        \
331            "=m" (RAMPZ)                           \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
332          : "r" ((uint8_t)__BOOT_PAGE_WRITE),      \            "i" (_SFR_MEM_ADDR(RAMPZ)),            \
333              "r" ((uint8_t)__BOOT_PAGE_WRITE),      \
334            "r" ((uint32_t)address)                \            "r" ((uint32_t)address)                \
335          : "r30", "r31"                           \          : "r30", "r31"                           \
336      );                                           \      );                                           \
# Line 333  Line 342 
342      (                                            \      (                                            \
343          "sts %0, %1\n\t"                         \          "sts %0, %1\n\t"                         \
344          "spm\n\t"                                \          "spm\n\t"                                \
345          : "=m" (__SPM_REG)                       \          :                                        \
346          : "r" ((uint8_t)__BOOT_RWW_ENABLE)       \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
347              "r" ((uint8_t)__BOOT_RWW_ENABLE)       \
348      );                                           \      );                                           \
349  })  })
350    
# Line 346  Line 356 
356          "spm\n\t"                                \          "spm\n\t"                                \
357          ".word 0xffff\n\t"                       \          ".word 0xffff\n\t"                       \
358          "nop\n\t"                                \          "nop\n\t"                                \
359          : "=m" (__SPM_REG)                       \          :                                        \
360          : "r" ((uint8_t)__BOOT_RWW_ENABLE)       \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),        \
361              "r" ((uint8_t)__BOOT_RWW_ENABLE)       \
362      );                                           \      );                                           \
363  })  })
364    
# Line 378  Line 389 
389          "mov r0, %2\n\t"                                   \          "mov r0, %2\n\t"                                   \
390          "sts %0, %1\n\t"                                   \          "sts %0, %1\n\t"                                   \
391          "spm\n\t"                                          \          "spm\n\t"                                          \
392          : "=m" (__SPM_REG)                                 \          :                                                  \
393          : "r" ((uint8_t)__BOOT_LOCK_BITS_SET),             \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  \
394              "r" ((uint8_t)__BOOT_LOCK_BITS_SET),             \
395            "r" (value)                                      \            "r" (value)                                      \
396          : "r0", "r30", "r31"                               \          : "r0", "r30", "r31"                               \
397      );                                                     \      );                                                     \
# Line 397  Line 409 
409          "spm\n\t"                                          \          "spm\n\t"                                          \
410          ".word 0xffff\n\t"                                 \          ".word 0xffff\n\t"                                 \
411          "nop\n\t"                                          \          "nop\n\t"                                          \
412          : "=m" (__SPM_REG)                                 \          :                                                  \
413          : "r" ((uint8_t)__BOOT_LOCK_BITS_SET),       \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  \
414              "r" ((uint8_t)__BOOT_LOCK_BITS_SET),             \
415            "r" (value)                                      \            "r" (value)                                      \
416          : "r0", "r30", "r31"                               \          : "r0", "r30", "r31"                               \
417      );                                                     \      );                                                     \
# Line 463  Line 476 
476      (                                                      \      (                                                      \
477          "ldi r30, %3\n\t"                                  \          "ldi r30, %3\n\t"                                  \
478          "ldi r31, 0\n\t"                                   \          "ldi r31, 0\n\t"                                   \
479          "sts %0, %2\n\t"                                   \          "sts %1, %2\n\t"                                   \
480          "lpm %1, Z\n\t"                                    \          "lpm %0, Z\n\t"                                    \
481          : "=m" (__SPM_REG),                                \          : "=r" (__result)                                  \
482            "=r" (__result)                                  \          : "i" (_SFR_MEM_ADDR(__SPM_REG)),                  \
483          : "r" ((uint8_t)__BOOT_LOCK_BITS_SET),             \            "r" ((uint8_t)__BOOT_LOCK_BITS_SET),             \
484            "M" (address)                                    \            "M" (address)                                    \
485          : "r0", "r30", "r31"                               \          : "r0", "r30", "r31"                               \
486      );                                                     \      );                                                     \

Legend:
Removed from v.1.12.4.5  
changed lines
  Added in v.1.12.4.6

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