avr-libc-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-libc-commit] [2500] Patch #8902: Update Xmega' s _PROTECTED_WRITE m


From: Pitchumani
Subject: [avr-libc-commit] [2500] Patch #8902: Update Xmega' s _PROTECTED_WRITE macro so that it can allow IO registers whose address is more than one byte
Date: Fri, 05 Feb 2016 06:01:21 +0000

Revision: 2500
          http://svn.sv.gnu.org/viewvc/?view=rev&root=avr-libc&revision=2500
Author:   pitchumani
Date:     2016-02-05 06:01:20 +0000 (Fri, 05 Feb 2016)
Log Message:
-----------
Patch #8902: Update Xmega's _PROTECTED_WRITE macro so that it can allow IO 
registers whose address is more than one byte

Ticket Links:
------------
    http://savannah.gnu.org/patch/?8902

Modified Paths:
--------------
    trunk/avr-libc/ChangeLog
    trunk/avr-libc/NEWS
    trunk/avr-libc/include/avr/xmega.h

Modified: trunk/avr-libc/ChangeLog
===================================================================
--- trunk/avr-libc/ChangeLog    2016-01-28 14:41:31 UTC (rev 2499)
+++ trunk/avr-libc/ChangeLog    2016-02-05 06:01:20 UTC (rev 2500)
@@ -1,3 +1,11 @@
+2016-02-05  Pitchumani Sivanupandi <address@hidden>
+
+       patch #8902: Xmega's PROTECTED_WRITE is incorrect for IO registers
+       whose address is more than one byte
+       * include/avr/xmega.h (_PROTECTED_WRITE): Update constraint for
+       IO register to allow more than 1 byte address. Cast CCP signature and
+       value to be written to avoid un-optimal load.
+
 2016-01-28  Pitchumani Sivanupandi <address@hidden>
 
        Added new devices.

Modified: trunk/avr-libc/NEWS
===================================================================
--- trunk/avr-libc/NEWS 2016-01-28 14:41:31 UTC (rev 2499)
+++ trunk/avr-libc/NEWS 2016-02-05 06:01:20 UTC (rev 2500)
@@ -47,6 +47,8 @@
   [#8728] Use __extension__ with long long
   [#8556] Fix atexit.c
   [#8810] Fix LFUSE_DEFAULT for tiny24a/44a
+  [#8902] Xmega's PROTECTED_WRITE is incorrect for IO registers whose address
+          is more than one byte
 
 * Other changes:
 

Modified: trunk/avr-libc/include/avr/xmega.h
===================================================================
--- trunk/avr-libc/include/avr/xmega.h  2016-01-28 14:41:31 UTC (rev 2499)
+++ trunk/avr-libc/include/avr/xmega.h  2016-02-05 06:01:20 UTC (rev 2500)
@@ -63,9 +63,9 @@
                       "sts %[ioreg], %[val]"                   \
                       :                                        \
                       : [ccp] "I" (_SFR_IO_ADDR(CCP)),         \
-                        [ccp_ioreg] "d" (CCP_IOREG_gc),        \
-                        [ioreg] "M" (_SFR_MEM_ADDR(reg)),      \
-                        [val] "r" (value))
+                        [ccp_ioreg] "d" ((uint8_t)CCP_IOREG_gc),       \
+                        [ioreg] "n" (_SFR_MEM_ADDR(reg)),      \
+                        [val] "r" ((uint8_t)value))
 #endif /* DOXYGEN */
 
 #endif /* _AVR_XMEGA_H */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]