[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-libc-commit] [2557] Release avr-libc 2.1.0
From: |
j |
Subject: |
[avr-libc-commit] [2557] Release avr-libc 2.1.0 |
Date: |
Fri, 28 Jan 2022 18:10:53 -0500 (EST) |
Revision: 2557
http://svn.sv.gnu.org/viewvc/?view=rev&root=avr-libc&revision=2557
Author: joerg_wunsch
Date: 2022-01-28 18:10:52 -0500 (Fri, 28 Jan 2022)
Log Message:
-----------
Release avr-libc 2.1.0
Added Paths:
-----------
tags/avr-libc-2_1_0-release/
tags/avr-libc-2_1_0-release/ChangeLog
tags/avr-libc-2_1_0-release/ChangeLog-2021
tags/avr-libc-2_1_0-release/NEWS
tags/avr-libc-2_1_0-release/configure.ac
Removed Paths:
-------------
tags/avr-libc-2_1_0-release/ChangeLog
tags/avr-libc-2_1_0-release/NEWS
tags/avr-libc-2_1_0-release/configure.ac
Deleted: tags/avr-libc-2_1_0-release/ChangeLog
===================================================================
--- trunk/avr-libc/ChangeLog 2021-05-20 22:22:24 UTC (rev 2554)
+++ tags/avr-libc-2_1_0-release/ChangeLog 2022-01-28 23:10:52 UTC (rev
2557)
@@ -1,67 +0,0 @@
-2021-05-20 Georg-Johann Lay
-
- patch #9553: Fix some issues in libc/
- * libc/stdio/vfscanf.c (GETBYTE) [LPMx]: Early-clobber %0.
- (GETBYTE) [default]: Use shorter instruction sequence.
- * libc/stdio/vfprintf.c: Same.
- (vfprintf): Fix build-warnings.
- * libc/stdlib/dtostre.c (dtostre): Fix build warning.
- * libc/stdlib/getenv.c (getenv): Fix build warning.
-
-2021-05-20 Georg-Johann Lay
-
- patch #9864: Use proper float function names and prototypes
- * include/math.h
- (cos, sin, tan, fmod, modf, sqrt, cbrt, hypot, square, floor, ceil)
- (frexp, ldexp, exp, cosh, sinh, tanh, asin, acos, atan, atan2)
- (log, log10, pow, isnan, isinf, signbit, fdim, fma, fmax, fmin)
- (trunc, round, lround, lrint) [double=64-bit]: Provide double
- prototypes.
- [double=32-bit]: Provide protos with assembler names which are
- the corresponding float function name.
- (cosf, sinf, tanf, fmodf, modff, sqrtf, cbrtf, hypotf, squaref)
- (floorf, ceilf, frexpf, ldexpf, expf, coshf, sinhf, tanhf, asinf)
- (acosf, atanf, atan2f, logf, log10f, powf, isnanf, isinff)
- (signbitf, fdimf, fmaf, fmaxf, fmin, truncf, roundf, lroundf)
- (lrintf):
- Turn from macro to proper prototype.
- (fabs, fabsf, isfinite, isfinitef, copysign, copysignf): Implement.
- * libm/fplib/acos.S: Use correct names for functions that deal
- with float, e.g. acosf instead of acos. Adjust comments.
- * libm/fplib/asin.S: Same.
- * libm/fplib/atan.S: Same.
- * libm/fplib/atan2.S: Same.
- * libm/fplib/cbrt.S: Same.
- * libm/fplib/ceil.S: Same.
- * libm/fplib/copysign.S: Same.
- * libm/fplib/cos.S: Same.
- * libm/fplib/cosh.S: Same.
- * libm/fplib/exp.S: Same.
- * libm/fplib/fdim.S: Same.
- * libm/fplib/floor.S: Same.
- * libm/fplib/fma.S: Same.
- * libm/fplib/fmax.S: Same.
- * libm/fplib/fmin.S: Same.
- * libm/fplib/fmod.S: Same.
- * libm/fplib/fp_arccos.S: Same.
- * libm/fplib/frexp.S: Same.
- * libm/fplib/hypot.S: Same.
- * libm/fplib/isfinite.S: Same.
- * libm/fplib/isinf.S: Same.
- * libm/fplib/isnan.S: Same.
- * libm/fplib/ldexp.S: Same.
- * libm/fplib/log.S: Same.
- * libm/fplib/log10.S: Same.
- * libm/fplib/lrint.S: Same.
- * libm/fplib/lround.S: Same.
- * libm/fplib/modf.S: Same.
- * libm/fplib/pow.S: Same.
- * libm/fplib/round.S: Same.
- * libm/fplib/signbit.S: Same.
- * libm/fplib/sin.S: Same.
- * libm/fplib/sinh.S: Same.
- * libm/fplib/sqrt.S: Same.
- * libm/fplib/square.S: Same.
- * libm/fplib/tan.S: Same.
- * libm/fplib/tanh.S: Same.
- * libm/fplib/trunc.S: Same.
Copied: tags/avr-libc-2_1_0-release/ChangeLog (from rev 2556,
trunk/avr-libc/ChangeLog)
===================================================================
--- tags/avr-libc-2_1_0-release/ChangeLog (rev 0)
+++ tags/avr-libc-2_1_0-release/ChangeLog 2022-01-28 23:10:52 UTC (rev
2557)
@@ -0,0 +1,4 @@
+2022-01-28 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+ * configure.ac: Release version 2.1.0.
+
Copied: tags/avr-libc-2_1_0-release/ChangeLog-2021 (from rev 2555,
trunk/avr-libc/ChangeLog-2021)
===================================================================
--- tags/avr-libc-2_1_0-release/ChangeLog-2021 (rev 0)
+++ tags/avr-libc-2_1_0-release/ChangeLog-2021 2022-01-28 23:10:52 UTC (rev
2557)
@@ -0,0 +1,67 @@
+2021-05-20 Georg-Johann Lay
+
+ patch #9553: Fix some issues in libc/
+ * libc/stdio/vfscanf.c (GETBYTE) [LPMx]: Early-clobber %0.
+ (GETBYTE) [default]: Use shorter instruction sequence.
+ * libc/stdio/vfprintf.c: Same.
+ (vfprintf): Fix build-warnings.
+ * libc/stdlib/dtostre.c (dtostre): Fix build warning.
+ * libc/stdlib/getenv.c (getenv): Fix build warning.
+
+2021-05-20 Georg-Johann Lay
+
+ patch #9864: Use proper float function names and prototypes
+ * include/math.h
+ (cos, sin, tan, fmod, modf, sqrt, cbrt, hypot, square, floor, ceil)
+ (frexp, ldexp, exp, cosh, sinh, tanh, asin, acos, atan, atan2)
+ (log, log10, pow, isnan, isinf, signbit, fdim, fma, fmax, fmin)
+ (trunc, round, lround, lrint) [double=64-bit]: Provide double
+ prototypes.
+ [double=32-bit]: Provide protos with assembler names which are
+ the corresponding float function name.
+ (cosf, sinf, tanf, fmodf, modff, sqrtf, cbrtf, hypotf, squaref)
+ (floorf, ceilf, frexpf, ldexpf, expf, coshf, sinhf, tanhf, asinf)
+ (acosf, atanf, atan2f, logf, log10f, powf, isnanf, isinff)
+ (signbitf, fdimf, fmaf, fmaxf, fmin, truncf, roundf, lroundf)
+ (lrintf):
+ Turn from macro to proper prototype.
+ (fabs, fabsf, isfinite, isfinitef, copysign, copysignf): Implement.
+ * libm/fplib/acos.S: Use correct names for functions that deal
+ with float, e.g. acosf instead of acos. Adjust comments.
+ * libm/fplib/asin.S: Same.
+ * libm/fplib/atan.S: Same.
+ * libm/fplib/atan2.S: Same.
+ * libm/fplib/cbrt.S: Same.
+ * libm/fplib/ceil.S: Same.
+ * libm/fplib/copysign.S: Same.
+ * libm/fplib/cos.S: Same.
+ * libm/fplib/cosh.S: Same.
+ * libm/fplib/exp.S: Same.
+ * libm/fplib/fdim.S: Same.
+ * libm/fplib/floor.S: Same.
+ * libm/fplib/fma.S: Same.
+ * libm/fplib/fmax.S: Same.
+ * libm/fplib/fmin.S: Same.
+ * libm/fplib/fmod.S: Same.
+ * libm/fplib/fp_arccos.S: Same.
+ * libm/fplib/frexp.S: Same.
+ * libm/fplib/hypot.S: Same.
+ * libm/fplib/isfinite.S: Same.
+ * libm/fplib/isinf.S: Same.
+ * libm/fplib/isnan.S: Same.
+ * libm/fplib/ldexp.S: Same.
+ * libm/fplib/log.S: Same.
+ * libm/fplib/log10.S: Same.
+ * libm/fplib/lrint.S: Same.
+ * libm/fplib/lround.S: Same.
+ * libm/fplib/modf.S: Same.
+ * libm/fplib/pow.S: Same.
+ * libm/fplib/round.S: Same.
+ * libm/fplib/signbit.S: Same.
+ * libm/fplib/sin.S: Same.
+ * libm/fplib/sinh.S: Same.
+ * libm/fplib/sqrt.S: Same.
+ * libm/fplib/square.S: Same.
+ * libm/fplib/tan.S: Same.
+ * libm/fplib/tanh.S: Same.
+ * libm/fplib/trunc.S: Same.
Deleted: tags/avr-libc-2_1_0-release/NEWS
===================================================================
--- trunk/avr-libc/NEWS 2021-05-20 22:22:24 UTC (rev 2554)
+++ tags/avr-libc-2_1_0-release/NEWS 2022-01-28 23:10:52 UTC (rev 2557)
@@ -1,1389 +0,0 @@
-*** Changes since avr-libc-2.0.0:
-
-* Improvements and additions:
-
- - Patch #9187 improved the library coverage for the AVR_TINY
- architecture (ATtiny10 and relatives). In particular, many
- of the functions from <string.h> are now available there.
-
- - Patch #8729 adds ISR_NOICF and ISR_FLATTEN to <avr/interrupt.h>
-
-* Bugs fixed:
-
- [#36933] Documentation no longer correctly describes how to declare
- [#41689] add static_assert to assert.h
- [#48898] power_usart3_* functions no more defined in power.h
- [#49020] dtostre() flags documentation error
- [#49447] Example code for uart_putchar() has error in recursive call
- strings for storage in program memory
- [#50439] avr/iom32u4.h does not define PRTIM4
- [#51755] iotn441.h & iotn841.h missing definitions for PUEA[0-7] and
PUEB[0-3]
- [no-id] util/eu_dst.h: fix reversed DST decision logic for March and October
- [no-id] util/delay.h.in: add missing return
-
-* New devices supported:
-
-* Contributed Patches:
-
- [no-id] Define weak symbols for known memory region sizes based on device
- header definitions, starting with fuse region.
- [#8961] Update test script for new simulavr and library layout
- [#8964] Update tests isinf-01.c, signbit-01.c and modf-np.c
- [#9163] New eeprom write block function for xmega using eeprom page write
- [#8729] [avr/interrupt.h] Add ISR_NOICF, ISR_FLATTEN. Fix namespace of
identifiers.
- [#8536] Fix a typo within <stdio.h>
- [#8649] small documentation fixes in
- [#9187] [AVR_TINY]: Support 16-bit xtoa functons and more string functions.
- [#9400] Add avrxmega3 multilibs
- [#9659] Update eeprom_is_ready for avrxmega3 devices
- [#9553] Fix some issues in libc/
- [#9864] Use proper float function names and prototypes
-
-* Other changes:
-
-
-*** Changes in avr-libc-2.0.0:
-
-* General:
-
- This is the first official release supporting AVR-GCC 5 (and above).
-
-* Bugs fixed:
-
- [#33698] Explicit use of RJMP/RCALL can cause "relocation truncated to fit:
- R_AVR_13_PCREL" linker error
- [#34719] Check for right build compiler
- [#43011] Bug in struct definition of __reg_UCSR1C and __reg_UCSR0C in
iom128rfa1.h
- [#43044] memory sections require __attribute__ ((used))
- [#43828] wdt.h: Wrong inline assembler arguments
- [#44140] wdt_disable() macro clobbers prescaller bits
- [#44279] incorrect USB_TRNCOMPL_vect_num in iox64a1u.h, iox128a1u.h
- [#44515] Wrong build option '-mtiny-stack' instead of '-msp8'
- [#44574] Place device-specific libraries in their multilib directory
- [#44869] trunk doesn't work with gcc 5.1.0-RC-20150412
- [#44977] Incorrect PORT_t and CRC_t definitions for ATxmega64A1U and 128A1U
- [#45539] iom32u4.h defines reserved IO address (TIMSK2 (0x70), TIMSK5 (0x73)
etc)
- [#45551] Power-save mode not supported for ATtiny167
- [#36303] Wrong hour for EU Summertime
- [#44514] Wrong build option '-mtiny-stack' instead of '-msp8'
- [no-id] TC_EVACT_FRQ_gc was misspelled as TC_EVACT_FRW_gc in some Xmega
- header files
- [no-id] LOCKBITS renamed to LOCK_BITS in Xmega header files as LOCKBITS
- clashes with definition in lock.h. Added missed defines to
ADC_CH_MUXPOS_enum.
- Corrected pinmux values in ADC_CH_MUXNEG_enum.
- [no-id] Fix typos and incorrect definitions in header files.
-
-* New devices supported:
-
- - ATA6616C, ATtiny441, ATtiny841, ATA6612C, ATA6617C, ATA664251, ATmega48PB,
- ATmega88PB, ATA5702M322, ATA5782, ATA5790N, ATA5831, ATA6613C, ATA6614Q,
- ATmega64HVE2, ATxmega8E5, ATxmega32C3, ATxmega32D3, ATxmega32E5
-
-* Contributed Patches:
-
- [no-id] save & restore rampd register in xmega wdt_enable and wdt_disable
- [#8543] Fix multiple issues with device header files
- [#8557] Proposing to remove device specific xmega macros from sleep.h
- [#8563] Generalize power reduction macros in power.h by removing hard coded
device names
- [#8564] Add dwarf debug info alternative, build printf with debug info
- [#8565] Compute and include device header file name from
- __AVR_DEV_LIB_NAME__ as fallback in io.h.
- [#8587] Move device specific functions to libdev.a
- [#8590] WDT enable/disable for devices with CCP
- [#8610] Remove eeprom function name mangling
- [#8716] Enable setjmp/longjmp functions for AVR_TINY architecture
- [#8718] Enable EEPROM memory map only for devices with EEPROM Data Memory
- Mapping Enable bit (EEMAPEN)
- [#8731] Header file for atmega644a
- [#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:
-
- Overhaul of doxygen documentation.
-
-
-*** Changes in avr-libc-1.8.1:
-
-* Bugs fixed:
-
- [#31267] misleading header iom128rfa1.h
- [#35197] sleep.h _BV defined as __BV in AT90S8515 section
- [#35226] Online-documentation broken - [...]
- [#35398] assert doesn't work unless stdlib.h is also included
- [#35498] misspelled in <util/setbaud.h>
- [#35539] stdlib.h does not provide EXIT_SUCCESS et al.
- [#35948] iom32u4.h for ATmega32U4 incorrectly defines Timer 2
- [#35971] attiny4313 (2313a) pin-change interrupts PCINT[0...2] vect etc
- [#36053] Declaration of the register USIBR missing for ATtiny2313a/4313
- [#36410] avr/boot.h: poisoned SPMCR for ATmega128
- [#36454] string.h: Error for long long in C90
- [#36581] avr-libc: pgmspace.h is not ANSI compliant
- [#37103] ATtiny5/9/10/20/40 watchdog can't be enabled
- [#37778] _MemoryBarrier() in cpufunc.h error on compile
- [#38135] Install a dummy stdfix-avrlibc.h
- [#38516] Missing TWI and UCSR1D definitions for ATmega16/32 U4
- [#39049] Clock prescaler set and get are missing for TINY architecture
- [#39783] CRC missing definitions and incorrect power macros for xmega D3
- [#40003] Integer type promotion leads to inefficent code in wdt.h
- [#40206] incorrect SP init in startup code for xmegas
- [#40567] Invalid names in iotn13a.h (EEPE/EEMPE/BODS/BODSE)
- [#40569] sleep_bod_disable does not work in attiny13a
- [#40595] iotn2313a.h: wrong fuses definitions for High Fuse Byte
- [#41006] iom328p.h: wrong fuse defaults
- [#41519] wrong SPM_PAGESIZE definition in iotn[48]8.h
- [#42024] build break regarding avrtiny10
- [#42084] wrong LFUSE_DEFAULT in iotn84a.h
- [#42085] HFUSE_DEFAULT not defined for iotn84.h
- [#39779] PCIE0 and PCIE1 defined incorrectly for mega165a and mega165pa
devices
- [#38614] dtostrf - wrong behavior or wrong documentation
- [#42957] missing SPMCSR defines in iom328p.h#
- [#41690] Bit definitions for SPMCSR
- [no-id] XXX_vect_num not consistent io90pwmx.h, iousbxx6_7.h
- [no-id] Specialize clock_prescale_set/get for mega hvb devices
- [no-id] Update register and bit definitions for tiny 13a/24a/44a/84a,
- tiny167 and mega328p
-
-* New devices supported:
-
- - ATmega256RFR2, ATmega2564RFR2, ATmega128RFR2, ATmega1284RFR2,
- ATmega64RFR2, ATmega644RFR2, AT90pwm161, ATA5272, ATA5505, ATA5790,
- ATA5795, ATA6285, ATA6286, ATmega1284, ATmega128A, ATmega164PA,
- ATmega165PA, ATmega168PA, ATmega3250PA, ATmega325PA, ATmega3290PA,
- ATmega32A, ATmega48PA, ATmega64A, ATmega8A, ATtiny1634, ATtiny828,
- ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3,
- ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3,
- ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C4,
- ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1,
- ATxmega64B3, ATxmega64C3, ATxmega64D4
-
-* Contributed Patches:
-
- [#3729] Printf for integers speed up
- [#7212] Add pgm_read_ptr() macros to pgmspace.h
- [#7220] Add UBRR overload functionality to <util/setbaud.h>
- [#7260] Addition to power.h
- [#7485] CRC8-CCITT
- [#7654] include/delay.h: delay_us >255us without decreasing resolution
- [#7826] Add ATMega32u4 support to the led-blinking demo
- [#7909] Adding __volatile__ to __asm__ within pgmspace header
- [#7910] Add missing PCINT2_vect to iotn40.h and update all the
- following vector numbers
- [no-id] correction in xmega wdt_enable and wdt_disable added for xmega
- [#8499] Device ata6289 should be of avr4 architecture
- [no-id] Add RAMSTART, fix RAMSIZE, RAMEND and FLASHEND in device headers
- [#8512] Rename tiny arch to avrtiny to sync with binutils
-
-* Other changes:
-
- - New macro _PROTECTED_WRITE(): write to Xmega IO registers that are
- protected through the CCP mechanism
-
- - Add support for scanf() conversion macros for 8-bit data types to
- <inttypes.h>: SCNd8, SCNdLEAST8, SCNdFAST8, SCNi8, SCNiLEAST8,
- SCNiFAST8, SCNo8, SCNoLEAST8, SCNoFAST8, SCNu8, SCNuLEAST8,
- SCNuFAST8, SCNx8, SCNxLEAST8, SCNxFAST8
-
- - Add time.h package, C standard functions such as mktime() and localtime,
- along with 'ephemera' such as solar declination, time of sun rise and set.
-
- - Introduce new configure option --with-debug-info=INFO, where INFO
- can be either stabs, dwarf-2, or dwarf-4. By default, no debug
- information will be generated.
-
- - Add IO register debug symbols to crt*.o, so debuggers can see the
- per-device defined IO registers (and __eeprom).
-
- - A number of changes have been applied to make avr-libc more C++
- aware.
-
-*** Changes in avr-libc-1.8.0:
-
-* Bugs fixed:
-
- [#17815] Configure does not honor --mandir option
- [#23234] Alternate interrupt macro
- [#24861] Interrupt documentation contains extra include
- [#32103] Support for Target-Triplets
- [#32419] Incorrect EEPROM size in header for ATxmega192A3
- [#32650] Missing include in util/delay.h
- [#32675] power_all_enable/disable does not affect timer1 on ATmega164P
- [#32698] power.h has additional endif that will break the build
- [#32773] stdiodemo source code is broken
- [#32988] Internal compiler error: build_unary_op
- [#33130] twitest.c source code is broken
- [#33230] Sleep modes have incorrect names for ATtiny261/461/861
- [#33238] Wrong _VECTORS_SIZE for mega8U2 et al
- [#33858] in avr/power.h, clock_prescale_set() not defined for mega328
- [#33920] ICR1 incorrectly defined for tiny167
- [#34047] missing math.h include in delay.h
- [#34514] misspelled in math.h
- [#35020] stdint.h: signed types need explicit "signed"
- [#35093] strlcat_P fails for some destinations
- [no-id] New names for CLKSTA/CLKSEL0/1 for AT90USB82/162
- system when power_all_disable() is used
- [no-id] util/delay.h would not compile with -ffreestanding
-
-* New devices supported:
-
-* Contributed Patches:
-
- [#7531] Bad name of bit in TCCR0A : WGM0 instead of CTC0 for ATtinyX61
- [#7362] iom16a.h: USART vectors inconsistently named for ATmega16A
- [#7226] ATMEGA8U2 Patches
-
-* Other changes:
-
- - The old prog_* typedefs are now deprecated, and are only included
- if requested by the user. This request is expressed by declaring
- the macro __PROG_TYPES_COMPAT__, either by a #define directive
- before including <avr/pgmspace.h>, or by a -D compiler option.
-
- - Optimized strlen_P, thanks to Jan Waclawek. Rename strlen_P to be
- __strlen_P and add new strlen_P inline function in header file that
- checks if value is a constant and known at compile time. If not,
- then the new inline function calls __strlen_P as normal.
-
-
-*** Changes in avr-libc-1.7.1:
-
-* Bugs fixed:
-
- [Atmel: #11793] XMEGA A devices: 4096-cycle DAC refresh interval setting has
wrong name
- [Atmel: #12314] Hi-Res(CTRLA) and AWex (FDEMASK)
- [Atmel: #12536] Remove CALCTRL in xmega header files.
- [no-id] Fix wrong vector table size for ATmega168A devices.
- [#29235] power.h - warning: comma at end of enumerator list
- [#30783] Missing prototype in power.h
- [#31270] Stale link to Philips (now NXP) I2C specification/users manual
-
-* New devices supported:
-
- ATTiny84a
- ATMega16HVB RevB
- ATMega32HVB RevB
-
-* Contributed Patches:
-
-* Other changes:
-
-
-*** Changes in avr-libc-1.7.0:
-
-* Bugs fixed:
- [Atmel: #7159] the memory location of tccr0b is mixed with tccr0a for
tiny48/88
- [no-id] Fix CLKPCE bit value to be 7.
- [no-id] inlining failed in call to '_delay_ms': function body not available
- [no-id] malloc() could allocate memory beyond the limits of heap
- [no-id] xmega header file updates.
- [no-id] Enable ATmega128RFA1 in <avr/power.h>
- [no-id] longjmp() writes to EIND register, it is forbidden by AVR-GCC's API
- [no-id] Define _VECTORS_SIZE in iom3000.h
- [no-id] Redefine __tmp_reg__ and __zer_reg__ for AVR TINY.
- [AVR Tools: #9724] Error in ATtiny13A include file, PRR register
- [sourceforge.net: #1836849] Multiplication does not work for AT90USB162
- [sourceforge.net: #1883630] ATmegaXX4 - USART0 and USART1 additional bits
aliases
- [sourceforge.net: #1910885] Typo in io90pwm3b.h
- [sourceforge.net: #1913681] Missing INT3 define in io90pwm3b.h
- [sourceforge.net: #1957780] New 'FUSES-support' gives error in c++ files
- [sourceforge.net: #1969436] Wrong flash size for ATmega32U4
- [sourceforge.net: #2010688] ATtiny48 SPSR register bits
- [sourceforge.net: #2012448] ATmega6450 USART Interrupts
- [sourceforge.net: #2016128] Incorrect ATMega32[c1|m1] Header Entries
- [sourceforge.net: #2018957] Wrong SPM_PAGESIZE for mega1284P
- [sourceforge.net: #2033993] User manual: data symbol spec incorrect
- [sourceforge.net: #2305703] iom162.h ASSR bitdef, typo?
- [sourceforge.net: #2411516] Error/Bug in the iotn88.h file
- [sourceforge.net: #2420567] ATmega329P missing in sleep.h
- [sourceforge.net: #2693898] ATmega32U6 missing in power.h
- [sourceforge.net: #2738926] avr/eeprom.h EEGET and EEPUT
- [sourceforge.net: #2812125] ATmega16U4 missing in power.h
- [sourceforge.net: #2913419] Misspelled Structure Element - xmega
- [#3485] Using float arithmetic without linking with -lm result in incorrect
code
- [#19079] sscanf %s eats 1 char too much
- [#19494] sfr_defs.h documentation: Remove references to deprecated macros.
- [#21410] Incorrect use of 16-bit eeprom addresses in devices with 8-Bit
address registers
- [#21621] Allow autoconf 2.61
- [#21622] Support building in a subdirectory
- [#21623] boot.h: Use the "z" register constraint
- [#21869] Multiple defines in iotn2313.h
- [#21872] __floatunsisf/undisf incorrectly named
- [#21905] scanf: float conversion ignores the suppression symbol
- [#21906] scanf: float conversion, wrong width count in case of sign or
exponent
- [#21931] Wrong fuses defined for the ATMEGA88/168
- [#21935] Typo in avr-ar example avr-as should be avr-ar
- [#21995] pgm_read_xxxx() does not use enhanced LPM instruction
- [#21958] UBRR0/UBRR1 SFR is redefined for ATmegaXX8p and atmega1284p devices
- [#21962] PSYNC1_0 a PSYNC1_1 bits not defined for AT90PWM3B and AT90PWM316
devices
- [#21986] Typo in iotn13.h
- [#22016] Typo in iotn2313.h: SIG_OUTPUT_COPMARE0A
- [#22119] Misleading statement in FAQ
- [#22153] setjmp.o is wrong in libc.a (1.6.1) for avr's with SPH
- [#22240] Add EEPROM Page Size to header files
- [#22276] wdt_reset fails with devices with large WDTCSR addresses
- [#22377] Wrong XRAMEND for some recent ioXXX.h header files.
- [#22387] Missing EIMSK and __EEPROM_REG_LOCATIONS__ in iom168p.h
- [#22390] Unclear note about function pointers
- [#22447] Summary of iom?8p.h header updates needed
- [#22493] Typo in iom1284p.h.
- [#22540] Adding signature bytes to header files
- [#22548] Missing IVCE and IVSEL in iom328p.h
- [#22568] Missing EEPROM_REG_LOCATIONS in iom328p.h
- [#22572] Documentation FAQ example proposal
- [#22642] AT90USB162 and AT90USB82 not supported in <avr/power.h>
- [#22643] math.h c99 incompability
- [#22666] io90pwm3b.h errors
- [#22785] ATMega644P Support Missing from avr/include/avr/sleep.h
- [#22828] eeprom_write_block(): incompatibility in args order
- [#22834] ATmega164P/324P/644P/1284P lack BODS/BODSE bits in MCUCR
- [#22870] Error in wdt.h and ATmega164P
- [#22877] Fuse information wrong for xmega devices.
- [#22878] eeprom_*_word/dword/block cause hang in ATmega256x
- [#23004] Watchdog enable docu only generated for Xmega series
- [#23032] Define PORTxn, PINxn, DDxn bit names in iomxx4.h.
- [#23166] atmega328p does not have SPMEN
- [#23261] AT90USB162 and AT90USB82 missing power_all_[enable,disable]() in
power.h
- [#23409] Provide an implementation for strtok()
- [#23546] FAQ documentation symbol seems wrong
- [#23554] Wrong bit values in iom32u4.h
- [#23677] Request for cbrt() and strdup to be added to libc
- [#23703] eeprom write functions optimisation
- [#23774] Using some defines from avr/fuse.h produces warning
- [#23850] ATMega8 does not have MCUSR defined
- [#23871] clock_prescale_set() not available for ATmega32U4
- [#23959] Small typo in deprecated documentation
- [#23969] eeprom_read_byte() throws interrupt EE_READY although EERIE is
cleared, controller resets
- [#24207] Example in inttypes.h is wrong
- [#24446] _attribute_ should be __attribute__ (with double underscores)
- [#24762] 1.6.3 wdt.h compile-time bug
- [#24890] Small error in libm source fp_rempio2.S
- [#25048] eeprom.h will not compile as c++ code.
- [#25120] pgm_read_*_far() functions cause incorrect usage of the Z pointer
for RAM access in ATxmega series
- [#25131] Incorrect definition of default lfuse bits for ATTiny2313
- [#25261] TWIHSR spelling deviates from XML file in AVR Studio 4.15
- [#25535] Nonexistent bit definitions in iotn88.h/iotn48.h AREFD REFS1 RWWSB
SM2
- [#25645] xmega header files broken #defines
- [#25723] Realloc corrupts free list when growing into the next free item
- [#25846] include/avr/power.h:628:1: error: missing binary operator before
token "defined"
- [#25925] <avr/boot.h> cannot be included on Xmega devices
- [#25929] boot.h Fuse read not compatible with Tiny48/88.
- [#25930] New IO-Headerfiles missing PXn Portpindefinitions
- [#26188] Wrong or missing definition of SIGNATURE_X in iom644.h and others
- [#26284] boot_lock_fuse_bits_get does not compile under gcc 4.3.X
- [#26308] WDE defined as WDE3 in io90pwm3b.h and io90pwm2b.h
- [#26767] XMEGA GPIO register name discrepancy
- [#26809] Some common math constants missing in math.h
- [#26840] Missing #define in iom32m1.h
- [#26876] include io.h into fuse.h
- [#27201] _WORDREGISTER in xmega headers does not work in C99 mode
- [#27235] malloc: Several things go wrong
- [#27242] realloc: serious error when size shrinks
- [#27243] malloc: small error in comment
- [#27367] RAMSTART missing in elder device header files
- [#27434] Arguments of macros must be protected in parentheses
- [#28575] Minor bug in iousb162.h - missing FUSE_ prefixes
- [#28688] using_tools.dox fails to build due to extra underscore
- [#28756] Bug in AVR libc 1.6.7 (power.h for 8-bit AVR)
- [#28812] iotn48.h TWS# bits off by one
- [#28584] iocanxx.h Add word definitions to iocanxx.h
- [#28627] power.h ATMEGA32U2 clock_prescale_set() not available
- [#28901] Xmega header files with missing definitions for GPIO_t and CPU_t
- [#28574] Xmega D ADC struct missing registers
- [#28582] XMEGA A3B, RTC32 not properly supported
- [#28921] pointer to function > 128k flash
- [#29502] literal error in iox128a1.h
- [#29653] PUD bit missing for at90usb82
- [#29950] ATtiny167 SPM_PAGESIZE Discrepancy
- [#30018] Errors in include files
- [#30085] memcpy_P on XMega does not clr NVM.CMD before copy
- [#30104] power.h - Missing "power_usart1_/enable/disable()" functions for
ATmega644
- [#30148] XMEGA register discrepancy
- [#30600] Missing processor spec - wdt.h include file
- [#30597] Missing definition for ATmega16/32/64m1/c1
- [#30475] SPM_PAGESIZE is incorrect in io90pwm3b.h and io90pwm2b.h
- [#30552] Missing definition ADCW
- [#30569] ATmega16U4/32U4 wrong bit definition
- [#30669] Improve comment in stdiodemo
- [#30735] bug in example twitest
- [#31086] ATTINY88 RAMEND value not set to correct value in iotn88.h
- [#30363] _delay_xx() functions in <util/delay.h> are broken
- [#31990] PRPSC0 used in power.h for AT90PWM81 instead of PRPSCR
- [#31873] power_aes_enable/disable() are commented in power.h for xmega
devices
-
-* Other changes:
-
- - Added 'avr35' architecture. Now 'MOVW' and 'LPM Rx, Z[+]' instructions
- supported for AT90USB82 and AT90USB162 devices. GCC 4.3 or above is
- necessary to use this.
-
- - Function vfscanf() is rewriten. The float point version is optimized
- considerably: the expense of a stack was cut by half, and the size of
- function has decreased approximately on 1KB. Opportunities of standard
- and minimal versions are expanded, and their size has remained at a
- former level.
-
- Briefly:
- . Restrictions of a float point format are eliminated.
- . Conversion '%[' is present in standart version now.
- . The minimal version differs from standard only absence of '%[' conv.
- . The 'hh' type qualifier is added ('char *', C99).
- . The maximal field width is increased up to 255 (65535 in float
version).
- . All known bugs are fixed.
-
- New vfscanf() concedes old in:
- . The size of the minimal and standard versions has increased for old
- branches of compiler (less 4.1) and ancient chips (without MOVW).
- . The maximum quantity of conversions now is limited (255).
-
- - EEPROM functions are rewriten. Now they are pure asm functions. The
- reading of long word or block is speed up. New functions for 32-bit
- words and floats are added. The group of 'update' (burn only different
- bytes) functions is added. A set of Avr-libc bugs are fixed.
-
- - Added support for XMEGA architectures.
-
- - The Postscript documentation build has been removed in favour of
- building only the PDF (and HTML and man page) versions. PDF offers
- the same printing quality as postscript at a smaller file size.
- This also works around a bug in doxygen 1.5.7 where it appears to
- be no longer possible to set GENERATE_HTML = NO.
-
- - A sleeping BOD API was added to <avr/sleep.h>. This allows you to disable
- the Brown Out Detector (BOD) before going to sleep, thereby reducing
- power even further.
-
- - The note about signbit() implementation is removed from documenatation.
- The reason is that the GCC can replace it with inline code and the
- nonzero value is unpredictable in such case.
-
- - Signature API added in <avr/signature.h>.
-
- - All functions are now placed in the .text.avr-libc section, and the
- floating point functions are placed in the .text.avr-libc.fplib section.
This
- allows the user the ability to relocate all avr-libc routines to a
different
- address using a custom linker script.
-
- - The port/pin assignments of the HD44780 LCD controller in the
- stdiodemo example can now be distributed across more than a single
- AVR port. The only remaining requirement is that all data bits
- are assigned to a single port in ascending order.
-
- - Added support for avrtiny10 architecture, to support the ATtiny10 Family.
-
- - Added new headerfile: <avr/cpufunc.h>; currently contains _NOP() and
- _MemoryBarrier().
-
- - The twidemo can now optionally address 24C32 and larger EEPROMs
- that require 16-bit word addressing.
-
- - Add a "memory barrier" to the cli() and sei() macros.
-
-
-* New devices supported:
-
- + ATxmega64D3
- + ATxmega128D3
- + ATxmega256D3
- + ATxmega192A3
- + ATxmega128A1
- + ATxmega64A1
- + ATmega32M1
- + ATmega32C1
- + ATmega32U4
- + ATtiny167
- + ATtiny13A
- + ATmega32U6
- + AT90SCR100
- + ATtiny87
- + ATxmega32A4
- + ATmega16M1
- + ATmega64C1
- + ATmega64M1
- + ATA6289
- + AT90PWM81
- + ATmega128RFA1
- + ATxmega32D4
- + ATxmega16A4
- + ATxmega16D4
- + ATmega16U4
- + ATmega8U2
- + ATmega16U2
- + ATmega32U2
- + ATxmega192D3
- + ATtiny2313A
- + ATtiny4313
- + ATtiny24A
- + ATtiny44A
- + ATtiny261A
- + ATtiny461A
- + ATtiny861A
- + ATmega644PA
- + ATmega88PA
- + ATmega16A
- + ATmega64HVE
- + ATmega169PA
- + ATmega649P
- + ATmega324PA
- + ATmega16HVA2
- + ATmega16HVB
- + ATmega48A
- + ATmega88A
- + ATmega168A
- + ATmega328
- + ATmega164A
- + ATmega324A
- + ATmega644A
- + ATmega165A
- + ATmega169A
- + ATmega645A
- + ATmega6450A
- + ATmega649A
- + ATmega6490A
- + ATmega6490P
- + ATmega645P
- + ATmega6450P
- + ATmega329PA
- + ATxmega128A1U
- + ATxmega64A1U
- + ATtiny4
- + ATtiny5
- + ATtiny9
- + ATtiny10
- + ATtiny20
- + ATtiny40
- + ATtiny84A
- + ATmega325A
- + ATmega3250A
- + ATmega329A
- + ATmega3290A
- + M3000
-
-* Optimized functions:
-
- eeprom_read_block
- eeprom_read_dword
- eeprom_read_word
- eeprom_write_block
- eeprom_write_dword
- eeprom_write_word
- strtod
- setjmp
- sqrt (and callers: acos, asin and hypot)
- sin, cos, tan: minor in space
- strlcat, strlcat_P
- strlcpy, strlcpy_P
- strtok, strtok_r
-
-* Contributed Patches:
-
- [#6194] Twitest updated to handle larger EEPROM devices
- [#6352] Far pointer library
- [#6500] Reentrant code faq
- [#6517] Pgmspace with float support
- [#6555] malloc improvement
- [#6649] sqrt.S in libm changes
- [#6690] Shorten calculation of dallas 1-wire crc
- [#6718] Optimize the EEPROM functions
- [#6720] FAQ update. Add EEPROM section, baud rate section. Correct spelling.
- [#6791] Minor fixes to stdio.h documentation
- [#6878] eewr_byte.S update for patch #6718
- [#6891] Add XMega software reset to the FAQ section on software reset
- [#6895] Improved malloc behaviour when expanding used area
- [#6897] Allow <util/setbaud.h> to be used with assembler source
-
-* New functions:
-
- cbrt
- eeprom_read_dword
- eeprom_read_float
- eeprom_update_block
- eeprom_update_byte
- eeprom_update_dword
- eeprom_update_float
- eeprom_update_word
- eeprom_write_dword
- eeprom_write_float
- memccpy_P
- strdup
- strtok
- strtok_P
- strtok_rP
- strlen_PF
- strnlen_PF
- memcpy_PF
- strcpy_PF
- strncpy_PF
- strcat_PF
- strlcat_PF
- strncat_PF
- strcmp_PF
- strncmp_PF
- strcasecmp_PF
- strncasecmp_PF
- strstr_PF
- strlcpy_PF
- memcmp_PF
-
-
-*** Changes in avr-libc-1.6.0:
-
-* Main changes from avr-libc 1.4 to 1.6:
-
- + The fplib/math library is completely rewritten. Now features of the IEEE
- 754 standard are supported all: negative zero, subnormals, Infs and NaNs.
- It concerns both to base operations (arithmetic, comparison...), and to
- all functions. Speed of performance is increased, sometimes considerably.
- A number of mistakes (not reflected in the Bugs) which led severe losses
- of accuracy for some arguments is corrected. A number of new functions is
- added. It is necessary to note, that the new library concedes old under
- the charge of flash memory a little.
-
- Incompatibilities:
-
- - Conversion from float to long (make similar to GCC/x86): in case if
- overflow was or if input is NaN return 0x80000000 for signed result and
- return 0 for unsigned result. Negative input (not too big in absolute
- value) is permissible for cast to unsigned long, for example: (unsigned
- long)(-1.0) returns ULONG_MAX.
-
- - The signbit() function: return 1 as nonzero value (make similar to
- builtin GCC).
-
- - Make frexp() similar to GCC/x86 in case of nonfinite arg: write 0 by
- exponent pointer. Early Avr-libc's frexp() skips exponent storing in this
- case. Make the NULL a legal address to skip a storing.
-
- + Functions of numbers to ascii conversion are completely rewritten:
- dtostre(), dtostrf() and printf() family. They more do not use float point
- operations. Speed of int/float to ascii has increased in some times. For
- printf() the stack usage is reduced.
-
- + Test suite is added to the Avr-libc project.
-
- + A few new util's headers: util/atomic.h, util/setbaud.h .
-
-* Bugs fixed:
-
- [no-id] iscntrl() return true for some values from 0x80 to 0xff.
- [no-id] Fix the examples installation for non-doc builds.
- [no-id] Fix the spelling of the OCR1A/B registers in ATtinyX4 devices.
- [no-id] LED1/2 don't work in the largedemo on an ATmega16.
- [no-id] Not defined SPM_PAGESIZE for ATtinyX4/X5/X61 and ATtiny2313 devices.
- [no-id] Typo in iomxx0_1.h: PRUSART3.
- [no-id] Make include/avr/sfr_defs.h -Wundef safe.
- [no-id] Make include/avr/eeprom.h -Wundef safe.
- [no-id] Fix the timing of the HD44780 driver in the stdiodemo.
- [no-id] Fix the sleep mode definitions for the ATtiny2313.
- [no-id] Exclude 64-bit types for -mint8.
- [no-id] Make documentation build work with doxygen 1.5.x
- [#1929] -Inf not detected
- [#11511] NaN not generated correctly by division library
- [#11820] dtostre: wrong output with percision =3
- [#13330] NaN is recognized not always
- [#15161] util/delay.h misses inline keyword (regression)
- [#15193] incorrect definition of IVSEL bit in MCUCR register
- [#15266] Function ldexp incorrectly processes overflow and underflow cases.
- [#15494] Compile warning and errors if compiler flag -Wundef flag specified
- [#15512] Bootloader macros not interrupt safe.
- [#15519] AT90CAN* processors incorrectly identified as "AT90S family"
- [#15522] Typo in iotn2313.h vector table
- [#15559] Wrong macro for boot_page_write(address) and ATmega128
- [#15574] unneeded compatibility break
- [#15595] GPIOR0 misspelled for ATtiny25/45/85
- [#15732] interrupt.h: ISR() incompatibility with gcc 3.4.5
- [#15890] missing /devtools/gen-avr-lib-tree.sh
- [#16039] Names in Pxy (i.e. PA0) style of ports pins for some devices are
- not defined.
- [#16125] HD44780 data bit assignment restrictive
- [#16260] _crc16_update lacks C equivalent
- [#16411] Add the 'used' attribute to all interrupt service routine macros.
- [#16434] EMPTY_INTERRUPT has no misspelled vector checking
- [#16441] eeprom.h should use __asm__
- [#16868] depricated.h: outp() arguments order misprint
- [#17068] wdt.h file: __AVR_ATmeg324P__ spelling mistake
- [#17470] Add API for CLKPR register.
- [#17551] Update documentation to point to issues with gcc4.1
- [#17591] /avr-libc/libm/fplib/fp_split.S error return will fail for
- 3-Byte PC devices
- [#17608] Add ISR_ALIAS() to avr/interrupt.h
- [#18115] online documentation typo/bug avr/boot.h
- [#18373] Bugs in Inline ASM documentacion
- [#18385] SPM_PAGESIZE wrong value for ATmega164p and ATmega324p
- [#18509] strtod.S crashes due to stack problem with atmega 2560
- [#18662] rand() keeps returning the same value if seeded with 0
- [#18686] AT90USB**** devices are absent in interrupt-verctor-names table
- [#18688] vfscanf and vfprintf don't use malloc
- [#18726] the dtostrf function description is missing in AVR-Libc's webpage
- [#18903] ATmega644 register definitions for SPI and PRR (datasheet vs.
- iom*.h)
- [#18915] PWM1X Bit missing for ATtiny261/461/861
- [#18964] USART definitions *wrong* in iocanxx.h
- [#18994] minor optimization possible to stdlib functions isspace(),
- isprint(), and islower()
- [#19009] Make <util/delay.h> issue a warning when optimizations are turned
off
- [#19050] gcrt1.S should call main rather than jumping to it
- [#19060] PCMSKx registers transposed in header for attinyX61
- [#19445] _malloc_heap_end does not follow _heap_end on m2561
- [#19495] <avr/interrupts.h> documentation: fix inclusion of cli and sei
macros
- [#19496] Add documentation: how to build toolchain for Windows.
- [#19650] avr-libc: wrong named bit in SFR of AT90PWMx
- [#19666] AT90PWMx: Another patch for the include file (missing SFR)
- [#19669] Need function to read signature row
- [#19686] alloc declaration missing
- [#19841] Error building 1.4 HEAD: undefined reference to 'exit'
- [#20248] FAQ#3: clarify which registers are safe to be used
- [#20276] power.h missing ATmega644Ppower_XXX_[en/dis]able() macros
- [#20435] Bit name definitions for AT90PWM3
- [#20530] Bug in sample code for early wdt disable
- [#20650] Missing description of AVR specific C-preprocessor macros
- [#20682] Bad bit name in avr/io2313.h - Sugestion
- [#20843] Mega 2561 library
- [#21174] assembly error with targets at90s1200, attiny11, attiny12,
- and attiny28
- [#21183] Fix Program Space example code.
- [#21204] iotnx61.h PRR bits incorrect
- [#21228] Missing 3rd clause in BSD license in documentation pages
- [#21299] Duplicate register address in iotn48.h.
- [#21411] Typographical error in 'iotn13.h'
- [#21432] Incorrect timer interrupt handler names for ATtiny45
- [#21434] Bit name definitions for AT90CANxxx
- [#21444] Undocument -minit-stack
- [#21484] Documentation build for avr/version.h does not susbstitute autoconf
- macros
- [#21749] AT90PWM316: _VECTORS_SIZE should be 128
- [#21691] iomx8.h-> IVSEL and IVCE should not be available for ATmega48
- [#21743] AT90PWM316 missing PSOC1 bit definitions
- [#21626] Incorrect Bit Definition for ADC14 and ADC15 Digital Input Disable
- [#21521] incorrect bit definitions in iotnx61.h
- [#21840] RAMEND wrong for ATmega48P/88P/168P
-
-* Other changes:
-
- - New Power Management API in <avr/power.h>. This provides C language
- macros to manipulate the Power Reduction Register(s) and the System Clock
- Prescaler register across multiple processors.
-
- [patch #4611] sleep.h sleep_mode() not interrupt safe
-
- - The simple demo has been modernized a bit. Documentation now
- generally refers to the ATmega8 rather than the AT90S2313, and
- the #ifdef spaghetti has been moved out into iocompat.h.
-
- - A new demo project ("largedemo") has been added. It extends
- the simple demo by adding some controls, and thereby touches
- a good number of avr-libc concepts. It has originally been
- written for the ATmega16, but can also be run on an ATmega8
- or a member of the ATmegaX8 family, as well as on an ATtiny2313.
-
- - Another demo project ("stdiodemo") has been added. It
- demonstrates the setup of the standard IO facilities using
- a practical small application.
-
- - The demo projects now install their source code as part of
- the documentation tree.
-
- - The simple demo has been ported to ATmega8515, ATmega8535,
- ATmega164P, ATmega165, ATmega169, ATmega324P, ATmega325,
- ATmega3250, ATmega329, ATmega3290, ATmega640, ATmega644,
- ATmega644P, ATmega645, ATmega6450, ATmega649, ATmega6490,
- ATmega1280, ATmega1281, ATtiny2313, ATtiny24, ATtiny25, ATtiny26,
- ATtiny261, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85,
- ATtiny861.
-
- - More overhaul of the demo documentation, don't use the "squid"
- cable for the largedemo as it is not part of the STK500.
-
- - Integrate a copy of the license file into the documentation.
-
- - Include an alphabetical index of all globals (functions,
- macros, types, variables) into the documentation.
-
- - Added 'avr25' architecture. Now 'MOVW' and 'LPM Rx, Z[+]' instructions
- supported for AT86RF401, ATtiny13, ATtiny2313, ATtiny24, ATtiny25,
- ATtiny261, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85 and
- ATtiny861 devices. GCC 4.2 or above is necessary to use this.
-
- - Add the benchmark page.
-
- [patch #5756] New atomic.h header file (added as <util/atomic.h>)
-
- [patch #5343] Add a util/setbaud.h "helper" file
-
- [patch #6236] Improving _delay_us and _delay_ms
-
- [patch #5644] New interrupt.h header file
-
-* New devices supported:
-
- + ATtiny24
- + ATtiny261
- + ATtiny44
- + ATtiny461
- + ATtiny84
- + ATtiny861
- + ATmega406
- + ATmega169 Rev. F
- + AT90USB82
- + AT90USB162
- + AT90USB646
- + AT90USB647
- + AT90USB1286
- + AT90USB1287
- + ATmega48P
- + ATmega88P
- + ATmega164P (renamed from ATmega164)
- + ATmega168P
- + ATmega324P (renamed from ATmega324)
- + ATmega328P
- + ATmega644P
- + ATmega1284P
- + ATmega165P
- + ATmega169P
- + ATmega2560 [patch #4461]
- + ATmega2561 [patch #4461]
- + ATmega325P
- + ATmega3250P
- + ATmega329P
- + ATmega3290P
- + AT90PWM1
- + ATmega8HVA
- + ATmega16HVA
- + ATmega32HVB
- + AT90PWM216
- + AT90PWM316
- + ATtiny43U
- + ATtiny48
- + ATtiny88
- + AT90PWM2B
- + AT90PWM3B
-
-* New functions:
-
- strstr_P (Contributed by Werner Boellmann)
- round
- lround
- lrint
-
-* Optimized functions:
-
- dtostre
-
-*** Changes in avr-libc-1.4.0:
-
-* Major API changes:
-
- - The INTERRUPT() macro has been deprecated, and it will be
- removed in a future version. Use __attribute__((interrupt))
- explicitly if this functionality is really needed.
-
- - A new ISR() macro has been added, and is now the preferred
- for to introduce an interrupt service routine. It is
- equivalent to the old SIGNAL() macro, which might become
- deprecated in a future version.
-
- - A new header file, <compat/deprecated.h> has been established.
- Its purpose is to collect deprecated items from older versions of
- the library, starting out with the enable_external_int(),
- timer_enable_int(), and INTERRUPT() macros/functions, as well as
- the old obsoleted inp/outp/sbi/cbi macros.
-
- - A new include file subdirectory named "util/" has been created.
- The files <compat/twi.h>, <avr/crc16.h>, <avr/delay.h>, and
- <avr/parity.h> have been moved into the new util/ subdirectory.
-
- - A new set of interrupt vector names has been added, closely
- matching the names given in the datasheet, and more compatible to
- other compilers available for the AVR platform. The table of
- interrupt vector names in the documentation is now automatically
- generated, and explicitly mentions the MCU type for each vector
- name.
-
- - The standard IO facilities API has been enhanced
-
- . The backend functions put and get that are passed to fdevopen()
- during the setup of a stream now take the stream itself as an
- additional argument.
- By defining the macro __STDIO_FDEVOPEN_COMPAT_12 before
- including <stdio.h>, an fdevopen() function prototype will be
- declared that is backwards-compatible with avr-libc version
- 1.2 and before.
- . It is possible to tie user data to a stream using
- fdev_set_udata(), and to retrieve them using fdev_get_udata().
- Together with the additional argument to the backend functions,
- these functions can now e.g. keep track of internal user state,
- or distinguish two different devices using the same backend
- function.
- . The get backend function can now return _FDEV_EOF to indicate an
- end-of-file condition, in addition to _FDEV_ERR for an error
- condition. This will affect the internal state that can be
- queried using the standard feof() and ferror() functions.
- . A new macro fdev_setup_stream() is provided to setup a
- user-supplied stream without the need to call fdevopen(), and thus
- without requiring malloc(). A similar macro FDEV_SETUP_STREAM()
- exists that can be used to initialized a FILE object. The
- floating-point implementations of vfscanf() and vfprintf() now
- allocate their conversion buffer on the stack, so they do not need
- malloc() anymore either.
-
- - An API has been added to track the library version number. See the
- documentation of the new header file <avr/version.h>.
-
-* Bugs fixed:
-
- [#3573] Make local symbols in .S files truely local
- [#12324] overview: boot_page_write_safe, etc.
- [#12333] Standard requires libstdc to define vprintf and vscanf
- [#12495] about Busy-wait delay loops(document)
- [#12496] about set_sleep_mode() and tiny26/tiny2313
- [#12735] No support for AT94K devices in sleep.h
- [#12739] Gcc assumes that target libc provides ffs function
- [#12775] Possible Bug in sscanf on string end
- [#13340] Math lib documentation/lib mismatch
- [#13557] small typo in avr-libc-user-manual-1.2.3
- [#14224] _delay_ms() not inlining if called more than once in a unit
- [#14241] 'eeprom_is_ready' is not compiled with ATmega48
- [#14262] avr-libc documentation error about .init sections
- [#14266] use __extension__ in avr-libc header files
- [#14327] wdt_disable() missing a cli
- [#14378] EEPROM library d'not support at86rf401 device
- [#14380] configure/make work only in source directory
- [#14433] Improve documentation of <avr/delay.h>
- [#14486] some macros from boot.h doesn't compile correctly
- [#14503] strnlen_P is wrong with classic AVRs
- [#14798] several IO registers definition issue in header files
- [#14852] fp pow function broken for negative x
-
-* Other changes:
-
- [patch #3592] speedup tanh function in libm
- [patch #3750] Allow passing user data to stdio fdevopen() get and
- put methods. (This is part of the API changes
- mentioned above.)
- [patch #3780] <assert.h> header
- [patch #3781] add dummy fflush() to <stdio.h>
- [patch #3782] modernize <stdint.h>
- [patch #3912] Fix ctype.S linker error due to asm branches out
- of range
- [patch #3925] Dallas iButton 8-bit CRC
- [patch #4087] C99 conformal headers stdint.h and inttypes.h
- [patch #4505] Unified interrupt vector names in header files
- [patch #4557] Adds to the fplib usage of MUL instruction
- in group avr4; avr5 devices
- [patch #4608] rpm spec file update
- [patch #4622] unify doc file location in rpms
-
- - Update the build system to recent versions of autoconf/automake;
- the old "doconf" and "domake" scripts are gone now, "reconf" has
- been renamed to "bootstrap".
- - Update the documentation system to doxygen >= 1.4.1.
- - Major overhaul of the documentation, new layout of the HTML pages,
- several clarifications and additions.
- - Add support for the following new devices (depending on the ability
- of the compiler/binutils to handle them):
- . AT90CAN32/64
- . AT90PWM2(B)/3(B)
- . ATmega329/3290/649/6490
- . ATtiny25/45/85
- . ATmega164/324/644
- . ATmega640/1280/1281
- - The library is now compiled with -Os for avr3 and avr5 MCUs (i.e.
- for those with > 8 KB of ROM); used to be -O3 before.
-
-* New string functions. Contributed by Dmitry Xmelkov.
-
- ffs
- ffsl
- ffsll
- _FFS (macro)
-
-* Optimized functions.
-
- misc/itoa
- misc/ltoa
- misc/utoa
- misc/ultoa
- stdlib/longjmp
- string/memchr
- string/memccpy
- string/strchr
- string/strrchr
- string/strsep
- string/strstr
-
-*** Changes since avr-libc-1.2.4:
-
-* Bugs fixed:
-
- [no-id] EEPROM handling not working for AT90CAN128 ATmega48 ATmega88
- ATmega165 ATmega168 ATmega169 ATmega325 ATmega3250 ATmega645
- ATmega6450
- [#12646] strtod returns error for valid input (patch#4137)
- [#13341] Remove ADHSM bit from header files.
-
-* Other improvements:
-
- [patch#4189] Document replacement for sbi/cbi instructions
-
-* boot.h: implement boot_lock_fuse_bits_get() plus macros for the
- respective addresses (low/high/ext fuse, lock bits)
-
-
-*** Changes since avr-libc-1.2.3:
-
-* Bugs fixed:
-
- [no-id] Work around a bug in gas that made the weak symbol __stack
- fixed inside gcrt1.S (since the assembler already inserted
- its value).
- [no-id] Modify the doxygen build system to cope with artefacts from
- recent versions of doxygen and (pdfelatex-based) LaTeX.
- [#12033] macros.inc need to be protected from multiple inclusion.
- [#12040] overview: sbi in FAQ
- [#12134] ADC register name definitions
- [#12422] Add new bit definitions for LCDCCR register in iom169.h.
- [#12448] Fix bit definition for SJW0 in iocan128.h
- [#12785] Fix documenation for log10() function in math.h.
- [#12955] Signal name misprints: SIG_COMPERATOR in iom169.h,
- SIG_EPROM_READY in iotn26.h
- [#12993] Signal "__EICR" redefined warning ATmega8
- [#13290] avr/io.h EEAR def is flawed for the Mega48
- [#13327] Fix bit definition for UCSZ02 in iom325.h, iom3250.h,
- iom645.h, iom6450.h
- [#13678] The _wdt_write(value) macro in wdt.h doesn't work with
- the ATmega325.(also with ATmega3250, ATmega645, ATmega6450,
- ATmega165).
-
-* demo.c extended for ATmega16
-
-*** Changes since avr-libc-1.2.2:
-
-* Bugs fixed:
-
- [#11987] sscanf parsing problem : leading zero ignored in %u
-
-*** Changes since avr-libc-1.2.1:
-
-* Bugs fixed:
-
- [#11805] Fix call to __fp_cosinus in sin().
- [#11817] Replace SYSCLK with F_CPU in twitest example.
- [#11868] realloc doesn't work correctly on block at end of freelist
- when growing
- [#11898] Change optimisation level for building printf libraries to -Os.
-
-
-*** Changes since avr-libc-1.2.0:
-
-* Bugs fixed:
-
- [no-id] Prefix all internal global symbols in libm with __fp_ so
- they do not collide with the application namespace.
- [#4101] setjmp/longjmp destroy changes in global registers.
- [#11479] Add missing pin definitions for iotn16.h.
- [#11486] Put the port bit defintions back in for mega16.
- [#11494] strtol() return wrong value in the underflow case
- [#11505] Remove doxygen comment about the deprecated inp/outp items.
- [#11510] Abstract the change enable bit in wdt.h for mega32.
- [#11522] Rewrite wdt_disable() to match datasheet algorithm.
- [#11684] realloc overwrites first to bytes of memory block when shrinking
- [patch #3618] Optimization strtol(), a little (related to bug #11494).
- [#11732] Update doc/examples/progmem.c to use the latest API.
-
-* Extend stdio and pmstring APIs:
-
-Implement patch #3516: printf: Handling of argument strings from
-program memory
-
-The %S format can now be used to print strings that are located in
-program-space memory (aka. ROM).
-
-As a prerequisite for this, the function strnlen_P() has been added
-which is similar to strnlen() except that it takes a pointer to a
-program-space string.
-
-*** Changes in avr-libc-1.2:
-
-* Bugs fixed:
-
- [no-id] Fix TICIE1 value in usb header files.
- [no-id] Fix bug introduced in fix for bug #7802 (missing parens).
- [no-id] Move ATtiny2313 and ATtiny13 from avr4 to avr2 (by now).
- [#2143] malloc() routines chunk smaller than requested
- [#5454] Inline functions results in undefined reference when optimize level 0
- is used.
- [#5799] error(?) in iom162.h
- [#2233] Documentation issues with inline asm
- [#6352] Sleep mode for ATmega162, ATmega161, and ATmega8515
- [#7469] "Problem" by using the library function "boot_lock_bits_set"
- [#7556] printf and friends improperly handle non-null terminated strings when
- a %s argument has a precision.
- [#7802] vfscanf problem with unsigned long (patch #2554)
- [#7989] dtostrf() destroys string pointer registers?
- [#8119] _wdt_write macro in wdt.h doesn't work with ATmega169
- [#8391] Fuse mask in boot.h wrong?
- NOTE: boot_lock_bits_set() was broken. Please see the new
- documentation for examples of how the new version works.
- [#8452] some SFR and bit names in iom169.h are incorrect
- NOTE: Where possible, the old names are retained to avoid breaking
- existing code, but the OCR1A and OCR1B names where just plain wrong
- so they have been changed and the incorrect names (OCRA1 and OCRB1)
- are undefined.
- [#8649] sfr_defs.h: missed _SFR_BYTE() in bit_is_set/clear
- [#9345] Zero-Padding on vfprintf
- [#10150] Update release versions compatible with avr-libc and instructions.
- [#10489] Sleep mode for atmega48/88/168 family
- [#10733] Fix bit identifer ADFR to ADATE in mega64.
- [#10828] Fix licenses on files to have same BSD license.
- [#11242] Add the EEARH register definition for the mega48.
- [#11275] fdevopen() should document its use of malloc()
- [#11315] Add USART* signal names to match datasheet for mega32 and mega16.
- [#11405] Add USART* signal names to match datasheet for mega128.
- [#11418] Add PRR register and bit definitions for mega169.
- [#11425] sleep.h missing semicolon
-
-* Remove deprecated items:
- + obsolete headers from the base include directory (moved to the avr/
- subdirectory long ago)
- + deprecated macros and functions from
- . <avr/eeprom.h> (eeprom_rb, eeprom_rw, eeprom_wb),
- . <avr/io.h> (cbi, sbi, inb, outb, inw, outw, inp, outp, BV),
- . <avr/pgmspace.h> (PRG_RDB).
- + . <avr/timer.h> removed completely.
-
-* Moved header files:
-
- + <avr/ina90.h> moved to <compat/ina90.h>
- + <avr/twi.h> moved to <compat/twi.h>
-
-* New devices supported:
-
- + ATmega165
- + ATmega325
- + ATmega3250
- + ATmega645
- + ATmega6450
- + ATmega48
- + ATmega88
- + ATmega168
- + ATtiny13
- + ATtiny2313
- + AT90CAN128
-
-* Pin names for ports are now consistent for all devices.
-
-* dtostrf() now uses movw where possible
-
-* realloc() has been implemented.
-
-* Extend pgmspace API.
-
-The pgmspace API has had the following macros added to allow accessing of
-unsigned 32-bit values:
-
- pgm_read_dword_near
- pgm_read_dword_far
- pgm_read_dword
-
-* Change boot API.
-
-The boot API internals have changed such that it is not compatible with the
-1.0.x API.
-
-These macros have been changed so that they no longer wait for SPM and EEPROM
-operations to complete. It turns out that doing those checks all the time is
-not needed and tends to bloat the code. Removing the checks allows you to
-write more compact code (see the example in avr/boot.h).
-
- boot_page_fill
- boot_page_erase
- boot_page_write
- boot_rww_enable
- boot_lock_bits_set
-
-If you want the old behaviour (1.0.x compatible), use these new macros:
-
- boot_page_fill_safe
- boot_page_erase_safe
- boot_page_write_safe
- boot_rww_enable_safe
- boot_lock_bits_set_safe
-
-* Extend eeprom API.
-
-New macro:
- eeprom_busy_wait
-
-* Extend crc16 API.
-
-New functions:
- _crc_xmodem_update
- _crc_ccitt_update
-
-* Extend stdio API.
-
-New functions:
- vfprintf_P
- vfscanf_P
- vsprintf
- vsprintf_P
- vsnprintf
- vsnprintf_P
-
-* Extend malloc API.
-
-Implement realloc().
-
-* Extend delay API (<avr/delay.h>).
-
-Implement inline functions for specifying delays in microseconds, or
-milliseconds directly (based on the macro F_CPU specifying the CPU
-clock frequency).
-
-* Documentation changes:
-
- + Use newer Doxygen.
- + Many fixes and added documentation.
- + Unix-style man pages are generated now when doc generation has been
- enabled in ./configure
-
-* Optimize slightly strtol and strtoul functions.
-
-* Unified copyright.
-
-All of the avr-libc files are now distributed under a single license.
-All of the authors of the files agreed to this step. The new license
-is a 3-clause simplified ``BSD-style'' license which is believed to be
-fully compatible with the GPL on one hand, yet imposes as minimal
-restrictions as possible for any kind of commercial use in
-applications based on avr-libc.
-
-To build the documentation, doxygen-1.3.4 or newer is strongly recommended.
-
-*** Changes in avr-libc-1.0:
-
-* Move source to cvs repositiory at http://savannah.gnu.org/projects/avr-libc
-
-Anonymous cvs access to the source is now available. There is also a mailing
-list set up for discussion of development of avr-libc.
-
-* License changes.
-
-All the files in the project now are covered by a modified BSD license. This
-allows royalty free use of the library in commerical products. All of the
-public domain files in the project have been switched to the new license and
-copyright given to the contributors of the files.
-
-There were some files taken from GNU GPL'd projects which were removed from
-avr-libc to simplify the licensing. The removed files only supplied alternate
-implementations, so nothing was lost by their removal.
-
-* Requires latest binutils and gcc
-
-Marek did some fairly major work with binutils and gcc to make adding support
-for new devices easier. His changes in those tools required changes to
-avr-libc which make it incompatible with older versions of binutils and gcc.
-Gcc versions >= 3.3 and binutils versions >= 2.13 are required.
-
-* New malloc implementation.
-
-Joerg Wunsch has supplied an improved malloc implementation which is less
-prone to fragmentation.
-
-* Documentation!
-
-Joerg Wunsch and Ted Roth and have been working on using the doxygen program to
-embed documentation comments into source code. Additionally, Harald Kipp's
-inline asm cookbook and Rich Neswold's Avr Tools document have been merged into
-the user manual. The goal is to have a single place for all the documentation
-a user would need to get started developing for AVR microcontrollers using
-the GNU development tool chain.
-
-The latest documentation is available online at
- http://www.freesoftware.fsf.org/avr-libc/
-
-* I/O registers accessible directly in C expressions
-
-You can now do this in your code:
- PORTA |= 0x02;
-
-See the "Special Function Registers" documentation for details. This method is
-preferred over the use of the deprecated inp(), inb(), inw(), outp(), outb()
-and outw() functions.
-
-* New devices supported
-
-mega128
-mega169
-mega16
-mega32
-mega64 [untested]
-mega8515 [untested]
-mega8535 [untested]
-tiny26
-76c711
-43usb320
-43usb355
-86rf401
-
-* Improved trigonometrical functions:
-
-Reiner Patommel provided complete rewrites for asin(), atan() and atan2()
-that feature a better (for some argument ranges even much better)
-accuracy than the previous versions. Note that since acos() uses asin(),
-it also benefits from this.
-
-* Incompatibilities with previous version.
-
-The arguments for outb()/outw() have been reversed.
- (value,port) -> (port,value)
-
-* New pgmspace.h API.
-
-Changed function names and added new functions to read the Program Space
-FLASH. Added new functions to read 16-bit (word) values. The new API should
-also clear up problems with reading data from devices with > 64K of FLASH.
-
-The API now includes:
-pgm_read_byte (maps to the *_near function below)
-pgm_read_word (maps to the *_near function below)
-pgm_read_byte_near
-pgm_read_word_near
-pgm_read_byte_far
-pgm_read_word_far
-
-
-* New bootloader support API.
-
-#include <avr/boot.h>
-
-This provides bootloader support functions to those processors that have
-builtin bootloader support.
-
-* inb / outb / inw / outw / cbi / sbi macros are deprecated.
-
-* New string functions and optimized string functions.
-
-strlcpy (optimized)
-strlcat (optimized)
-strsep (new)
-strtok_r (new)
-strlcat_P (new)
-strlcpy_P (new)
-strncat_P (new)
-
-Contributed by Reiner Patommel with some work on strlcpy, strlcat by
-Eric Weddington.
-
-* New eeprom functions by Artur Lipowski <LAL@pro.onet.pl>
-
-eeprom_write_word
-eeprom_write_block
-
-
-*** Changes up to avr-libc-20020203:
-
-See the ChangeLog file up to 2002-02-03 for details.
-
Copied: tags/avr-libc-2_1_0-release/NEWS (from rev 2556, trunk/avr-libc/NEWS)
===================================================================
--- tags/avr-libc-2_1_0-release/NEWS (rev 0)
+++ tags/avr-libc-2_1_0-release/NEWS 2022-01-28 23:10:52 UTC (rev 2557)
@@ -0,0 +1,1389 @@
+*** Changes in avr-libc-2.1.0:
+
+* Improvements and additions:
+
+ - Patch #9187 improved the library coverage for the AVR_TINY
+ architecture (ATtiny10 and relatives). In particular, many
+ of the functions from <string.h> are now available there.
+
+ - Patch #8729 adds ISR_NOICF and ISR_FLATTEN to <avr/interrupt.h>
+
+* Bugs fixed:
+
+ [#36933] Documentation no longer correctly describes how to declare
+ [#41689] add static_assert to assert.h
+ [#48898] power_usart3_* functions no more defined in power.h
+ [#49020] dtostre() flags documentation error
+ [#49447] Example code for uart_putchar() has error in recursive call
+ strings for storage in program memory
+ [#50439] avr/iom32u4.h does not define PRTIM4
+ [#51755] iotn441.h & iotn841.h missing definitions for PUEA[0-7] and
PUEB[0-3]
+ [no-id] util/eu_dst.h: fix reversed DST decision logic for March and October
+ [no-id] util/delay.h.in: add missing return
+
+* New devices supported:
+
+* Contributed Patches:
+
+ [no-id] Define weak symbols for known memory region sizes based on device
+ header definitions, starting with fuse region.
+ [#8961] Update test script for new simulavr and library layout
+ [#8964] Update tests isinf-01.c, signbit-01.c and modf-np.c
+ [#9163] New eeprom write block function for xmega using eeprom page write
+ [#8729] [avr/interrupt.h] Add ISR_NOICF, ISR_FLATTEN. Fix namespace of
identifiers.
+ [#8536] Fix a typo within <stdio.h>
+ [#8649] small documentation fixes in
+ [#9187] [AVR_TINY]: Support 16-bit xtoa functons and more string functions.
+ [#9400] Add avrxmega3 multilibs
+ [#9659] Update eeprom_is_ready for avrxmega3 devices
+ [#9553] Fix some issues in libc/
+ [#9864] Use proper float function names and prototypes
+
+* Other changes:
+
+
+*** Changes in avr-libc-2.0.0:
+
+* General:
+
+ This is the first official release supporting AVR-GCC 5 (and above).
+
+* Bugs fixed:
+
+ [#33698] Explicit use of RJMP/RCALL can cause "relocation truncated to fit:
+ R_AVR_13_PCREL" linker error
+ [#34719] Check for right build compiler
+ [#43011] Bug in struct definition of __reg_UCSR1C and __reg_UCSR0C in
iom128rfa1.h
+ [#43044] memory sections require __attribute__ ((used))
+ [#43828] wdt.h: Wrong inline assembler arguments
+ [#44140] wdt_disable() macro clobbers prescaller bits
+ [#44279] incorrect USB_TRNCOMPL_vect_num in iox64a1u.h, iox128a1u.h
+ [#44515] Wrong build option '-mtiny-stack' instead of '-msp8'
+ [#44574] Place device-specific libraries in their multilib directory
+ [#44869] trunk doesn't work with gcc 5.1.0-RC-20150412
+ [#44977] Incorrect PORT_t and CRC_t definitions for ATxmega64A1U and 128A1U
+ [#45539] iom32u4.h defines reserved IO address (TIMSK2 (0x70), TIMSK5 (0x73)
etc)
+ [#45551] Power-save mode not supported for ATtiny167
+ [#36303] Wrong hour for EU Summertime
+ [#44514] Wrong build option '-mtiny-stack' instead of '-msp8'
+ [no-id] TC_EVACT_FRQ_gc was misspelled as TC_EVACT_FRW_gc in some Xmega
+ header files
+ [no-id] LOCKBITS renamed to LOCK_BITS in Xmega header files as LOCKBITS
+ clashes with definition in lock.h. Added missed defines to
ADC_CH_MUXPOS_enum.
+ Corrected pinmux values in ADC_CH_MUXNEG_enum.
+ [no-id] Fix typos and incorrect definitions in header files.
+
+* New devices supported:
+
+ - ATA6616C, ATtiny441, ATtiny841, ATA6612C, ATA6617C, ATA664251, ATmega48PB,
+ ATmega88PB, ATA5702M322, ATA5782, ATA5790N, ATA5831, ATA6613C, ATA6614Q,
+ ATmega64HVE2, ATxmega8E5, ATxmega32C3, ATxmega32D3, ATxmega32E5
+
+* Contributed Patches:
+
+ [no-id] save & restore rampd register in xmega wdt_enable and wdt_disable
+ [#8543] Fix multiple issues with device header files
+ [#8557] Proposing to remove device specific xmega macros from sleep.h
+ [#8563] Generalize power reduction macros in power.h by removing hard coded
device names
+ [#8564] Add dwarf debug info alternative, build printf with debug info
+ [#8565] Compute and include device header file name from
+ __AVR_DEV_LIB_NAME__ as fallback in io.h.
+ [#8587] Move device specific functions to libdev.a
+ [#8590] WDT enable/disable for devices with CCP
+ [#8610] Remove eeprom function name mangling
+ [#8716] Enable setjmp/longjmp functions for AVR_TINY architecture
+ [#8718] Enable EEPROM memory map only for devices with EEPROM Data Memory
+ Mapping Enable bit (EEMAPEN)
+ [#8731] Header file for atmega644a
+ [#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:
+
+ Overhaul of doxygen documentation.
+
+
+*** Changes in avr-libc-1.8.1:
+
+* Bugs fixed:
+
+ [#31267] misleading header iom128rfa1.h
+ [#35197] sleep.h _BV defined as __BV in AT90S8515 section
+ [#35226] Online-documentation broken - [...]
+ [#35398] assert doesn't work unless stdlib.h is also included
+ [#35498] misspelled in <util/setbaud.h>
+ [#35539] stdlib.h does not provide EXIT_SUCCESS et al.
+ [#35948] iom32u4.h for ATmega32U4 incorrectly defines Timer 2
+ [#35971] attiny4313 (2313a) pin-change interrupts PCINT[0...2] vect etc
+ [#36053] Declaration of the register USIBR missing for ATtiny2313a/4313
+ [#36410] avr/boot.h: poisoned SPMCR for ATmega128
+ [#36454] string.h: Error for long long in C90
+ [#36581] avr-libc: pgmspace.h is not ANSI compliant
+ [#37103] ATtiny5/9/10/20/40 watchdog can't be enabled
+ [#37778] _MemoryBarrier() in cpufunc.h error on compile
+ [#38135] Install a dummy stdfix-avrlibc.h
+ [#38516] Missing TWI and UCSR1D definitions for ATmega16/32 U4
+ [#39049] Clock prescaler set and get are missing for TINY architecture
+ [#39783] CRC missing definitions and incorrect power macros for xmega D3
+ [#40003] Integer type promotion leads to inefficent code in wdt.h
+ [#40206] incorrect SP init in startup code for xmegas
+ [#40567] Invalid names in iotn13a.h (EEPE/EEMPE/BODS/BODSE)
+ [#40569] sleep_bod_disable does not work in attiny13a
+ [#40595] iotn2313a.h: wrong fuses definitions for High Fuse Byte
+ [#41006] iom328p.h: wrong fuse defaults
+ [#41519] wrong SPM_PAGESIZE definition in iotn[48]8.h
+ [#42024] build break regarding avrtiny10
+ [#42084] wrong LFUSE_DEFAULT in iotn84a.h
+ [#42085] HFUSE_DEFAULT not defined for iotn84.h
+ [#39779] PCIE0 and PCIE1 defined incorrectly for mega165a and mega165pa
devices
+ [#38614] dtostrf - wrong behavior or wrong documentation
+ [#42957] missing SPMCSR defines in iom328p.h#
+ [#41690] Bit definitions for SPMCSR
+ [no-id] XXX_vect_num not consistent io90pwmx.h, iousbxx6_7.h
+ [no-id] Specialize clock_prescale_set/get for mega hvb devices
+ [no-id] Update register and bit definitions for tiny 13a/24a/44a/84a,
+ tiny167 and mega328p
+
+* New devices supported:
+
+ - ATmega256RFR2, ATmega2564RFR2, ATmega128RFR2, ATmega1284RFR2,
+ ATmega64RFR2, ATmega644RFR2, AT90pwm161, ATA5272, ATA5505, ATA5790,
+ ATA5795, ATA6285, ATA6286, ATmega1284, ATmega128A, ATmega164PA,
+ ATmega165PA, ATmega168PA, ATmega3250PA, ATmega325PA, ATmega3290PA,
+ ATmega32A, ATmega48PA, ATmega64A, ATmega8A, ATtiny1634, ATtiny828,
+ ATxmega128A3U, ATxmega128A4U, ATxmega128B1, ATxmega128B3, ATxmega128C3,
+ ATxmega128D4, ATxmega16A4U, ATxmega16C4, ATxmega192A3U, ATxmega192C3,
+ ATxmega256A3BU, ATxmega256A3U, ATxmega256C3, ATxmega32A4U, ATxmega32C4,
+ ATxmega384C3, ATxmega384D3, ATxmega64A3U, ATxmega64A4U, ATxmega64B1,
+ ATxmega64B3, ATxmega64C3, ATxmega64D4
+
+* Contributed Patches:
+
+ [#3729] Printf for integers speed up
+ [#7212] Add pgm_read_ptr() macros to pgmspace.h
+ [#7220] Add UBRR overload functionality to <util/setbaud.h>
+ [#7260] Addition to power.h
+ [#7485] CRC8-CCITT
+ [#7654] include/delay.h: delay_us >255us without decreasing resolution
+ [#7826] Add ATMega32u4 support to the led-blinking demo
+ [#7909] Adding __volatile__ to __asm__ within pgmspace header
+ [#7910] Add missing PCINT2_vect to iotn40.h and update all the
+ following vector numbers
+ [no-id] correction in xmega wdt_enable and wdt_disable added for xmega
+ [#8499] Device ata6289 should be of avr4 architecture
+ [no-id] Add RAMSTART, fix RAMSIZE, RAMEND and FLASHEND in device headers
+ [#8512] Rename tiny arch to avrtiny to sync with binutils
+
+* Other changes:
+
+ - New macro _PROTECTED_WRITE(): write to Xmega IO registers that are
+ protected through the CCP mechanism
+
+ - Add support for scanf() conversion macros for 8-bit data types to
+ <inttypes.h>: SCNd8, SCNdLEAST8, SCNdFAST8, SCNi8, SCNiLEAST8,
+ SCNiFAST8, SCNo8, SCNoLEAST8, SCNoFAST8, SCNu8, SCNuLEAST8,
+ SCNuFAST8, SCNx8, SCNxLEAST8, SCNxFAST8
+
+ - Add time.h package, C standard functions such as mktime() and localtime,
+ along with 'ephemera' such as solar declination, time of sun rise and set.
+
+ - Introduce new configure option --with-debug-info=INFO, where INFO
+ can be either stabs, dwarf-2, or dwarf-4. By default, no debug
+ information will be generated.
+
+ - Add IO register debug symbols to crt*.o, so debuggers can see the
+ per-device defined IO registers (and __eeprom).
+
+ - A number of changes have been applied to make avr-libc more C++
+ aware.
+
+*** Changes in avr-libc-1.8.0:
+
+* Bugs fixed:
+
+ [#17815] Configure does not honor --mandir option
+ [#23234] Alternate interrupt macro
+ [#24861] Interrupt documentation contains extra include
+ [#32103] Support for Target-Triplets
+ [#32419] Incorrect EEPROM size in header for ATxmega192A3
+ [#32650] Missing include in util/delay.h
+ [#32675] power_all_enable/disable does not affect timer1 on ATmega164P
+ [#32698] power.h has additional endif that will break the build
+ [#32773] stdiodemo source code is broken
+ [#32988] Internal compiler error: build_unary_op
+ [#33130] twitest.c source code is broken
+ [#33230] Sleep modes have incorrect names for ATtiny261/461/861
+ [#33238] Wrong _VECTORS_SIZE for mega8U2 et al
+ [#33858] in avr/power.h, clock_prescale_set() not defined for mega328
+ [#33920] ICR1 incorrectly defined for tiny167
+ [#34047] missing math.h include in delay.h
+ [#34514] misspelled in math.h
+ [#35020] stdint.h: signed types need explicit "signed"
+ [#35093] strlcat_P fails for some destinations
+ [no-id] New names for CLKSTA/CLKSEL0/1 for AT90USB82/162
+ system when power_all_disable() is used
+ [no-id] util/delay.h would not compile with -ffreestanding
+
+* New devices supported:
+
+* Contributed Patches:
+
+ [#7531] Bad name of bit in TCCR0A : WGM0 instead of CTC0 for ATtinyX61
+ [#7362] iom16a.h: USART vectors inconsistently named for ATmega16A
+ [#7226] ATMEGA8U2 Patches
+
+* Other changes:
+
+ - The old prog_* typedefs are now deprecated, and are only included
+ if requested by the user. This request is expressed by declaring
+ the macro __PROG_TYPES_COMPAT__, either by a #define directive
+ before including <avr/pgmspace.h>, or by a -D compiler option.
+
+ - Optimized strlen_P, thanks to Jan Waclawek. Rename strlen_P to be
+ __strlen_P and add new strlen_P inline function in header file that
+ checks if value is a constant and known at compile time. If not,
+ then the new inline function calls __strlen_P as normal.
+
+
+*** Changes in avr-libc-1.7.1:
+
+* Bugs fixed:
+
+ [Atmel: #11793] XMEGA A devices: 4096-cycle DAC refresh interval setting has
wrong name
+ [Atmel: #12314] Hi-Res(CTRLA) and AWex (FDEMASK)
+ [Atmel: #12536] Remove CALCTRL in xmega header files.
+ [no-id] Fix wrong vector table size for ATmega168A devices.
+ [#29235] power.h - warning: comma at end of enumerator list
+ [#30783] Missing prototype in power.h
+ [#31270] Stale link to Philips (now NXP) I2C specification/users manual
+
+* New devices supported:
+
+ ATTiny84a
+ ATMega16HVB RevB
+ ATMega32HVB RevB
+
+* Contributed Patches:
+
+* Other changes:
+
+
+*** Changes in avr-libc-1.7.0:
+
+* Bugs fixed:
+ [Atmel: #7159] the memory location of tccr0b is mixed with tccr0a for
tiny48/88
+ [no-id] Fix CLKPCE bit value to be 7.
+ [no-id] inlining failed in call to '_delay_ms': function body not available
+ [no-id] malloc() could allocate memory beyond the limits of heap
+ [no-id] xmega header file updates.
+ [no-id] Enable ATmega128RFA1 in <avr/power.h>
+ [no-id] longjmp() writes to EIND register, it is forbidden by AVR-GCC's API
+ [no-id] Define _VECTORS_SIZE in iom3000.h
+ [no-id] Redefine __tmp_reg__ and __zer_reg__ for AVR TINY.
+ [AVR Tools: #9724] Error in ATtiny13A include file, PRR register
+ [sourceforge.net: #1836849] Multiplication does not work for AT90USB162
+ [sourceforge.net: #1883630] ATmegaXX4 - USART0 and USART1 additional bits
aliases
+ [sourceforge.net: #1910885] Typo in io90pwm3b.h
+ [sourceforge.net: #1913681] Missing INT3 define in io90pwm3b.h
+ [sourceforge.net: #1957780] New 'FUSES-support' gives error in c++ files
+ [sourceforge.net: #1969436] Wrong flash size for ATmega32U4
+ [sourceforge.net: #2010688] ATtiny48 SPSR register bits
+ [sourceforge.net: #2012448] ATmega6450 USART Interrupts
+ [sourceforge.net: #2016128] Incorrect ATMega32[c1|m1] Header Entries
+ [sourceforge.net: #2018957] Wrong SPM_PAGESIZE for mega1284P
+ [sourceforge.net: #2033993] User manual: data symbol spec incorrect
+ [sourceforge.net: #2305703] iom162.h ASSR bitdef, typo?
+ [sourceforge.net: #2411516] Error/Bug in the iotn88.h file
+ [sourceforge.net: #2420567] ATmega329P missing in sleep.h
+ [sourceforge.net: #2693898] ATmega32U6 missing in power.h
+ [sourceforge.net: #2738926] avr/eeprom.h EEGET and EEPUT
+ [sourceforge.net: #2812125] ATmega16U4 missing in power.h
+ [sourceforge.net: #2913419] Misspelled Structure Element - xmega
+ [#3485] Using float arithmetic without linking with -lm result in incorrect
code
+ [#19079] sscanf %s eats 1 char too much
+ [#19494] sfr_defs.h documentation: Remove references to deprecated macros.
+ [#21410] Incorrect use of 16-bit eeprom addresses in devices with 8-Bit
address registers
+ [#21621] Allow autoconf 2.61
+ [#21622] Support building in a subdirectory
+ [#21623] boot.h: Use the "z" register constraint
+ [#21869] Multiple defines in iotn2313.h
+ [#21872] __floatunsisf/undisf incorrectly named
+ [#21905] scanf: float conversion ignores the suppression symbol
+ [#21906] scanf: float conversion, wrong width count in case of sign or
exponent
+ [#21931] Wrong fuses defined for the ATMEGA88/168
+ [#21935] Typo in avr-ar example avr-as should be avr-ar
+ [#21995] pgm_read_xxxx() does not use enhanced LPM instruction
+ [#21958] UBRR0/UBRR1 SFR is redefined for ATmegaXX8p and atmega1284p devices
+ [#21962] PSYNC1_0 a PSYNC1_1 bits not defined for AT90PWM3B and AT90PWM316
devices
+ [#21986] Typo in iotn13.h
+ [#22016] Typo in iotn2313.h: SIG_OUTPUT_COPMARE0A
+ [#22119] Misleading statement in FAQ
+ [#22153] setjmp.o is wrong in libc.a (1.6.1) for avr's with SPH
+ [#22240] Add EEPROM Page Size to header files
+ [#22276] wdt_reset fails with devices with large WDTCSR addresses
+ [#22377] Wrong XRAMEND for some recent ioXXX.h header files.
+ [#22387] Missing EIMSK and __EEPROM_REG_LOCATIONS__ in iom168p.h
+ [#22390] Unclear note about function pointers
+ [#22447] Summary of iom?8p.h header updates needed
+ [#22493] Typo in iom1284p.h.
+ [#22540] Adding signature bytes to header files
+ [#22548] Missing IVCE and IVSEL in iom328p.h
+ [#22568] Missing EEPROM_REG_LOCATIONS in iom328p.h
+ [#22572] Documentation FAQ example proposal
+ [#22642] AT90USB162 and AT90USB82 not supported in <avr/power.h>
+ [#22643] math.h c99 incompability
+ [#22666] io90pwm3b.h errors
+ [#22785] ATMega644P Support Missing from avr/include/avr/sleep.h
+ [#22828] eeprom_write_block(): incompatibility in args order
+ [#22834] ATmega164P/324P/644P/1284P lack BODS/BODSE bits in MCUCR
+ [#22870] Error in wdt.h and ATmega164P
+ [#22877] Fuse information wrong for xmega devices.
+ [#22878] eeprom_*_word/dword/block cause hang in ATmega256x
+ [#23004] Watchdog enable docu only generated for Xmega series
+ [#23032] Define PORTxn, PINxn, DDxn bit names in iomxx4.h.
+ [#23166] atmega328p does not have SPMEN
+ [#23261] AT90USB162 and AT90USB82 missing power_all_[enable,disable]() in
power.h
+ [#23409] Provide an implementation for strtok()
+ [#23546] FAQ documentation symbol seems wrong
+ [#23554] Wrong bit values in iom32u4.h
+ [#23677] Request for cbrt() and strdup to be added to libc
+ [#23703] eeprom write functions optimisation
+ [#23774] Using some defines from avr/fuse.h produces warning
+ [#23850] ATMega8 does not have MCUSR defined
+ [#23871] clock_prescale_set() not available for ATmega32U4
+ [#23959] Small typo in deprecated documentation
+ [#23969] eeprom_read_byte() throws interrupt EE_READY although EERIE is
cleared, controller resets
+ [#24207] Example in inttypes.h is wrong
+ [#24446] _attribute_ should be __attribute__ (with double underscores)
+ [#24762] 1.6.3 wdt.h compile-time bug
+ [#24890] Small error in libm source fp_rempio2.S
+ [#25048] eeprom.h will not compile as c++ code.
+ [#25120] pgm_read_*_far() functions cause incorrect usage of the Z pointer
for RAM access in ATxmega series
+ [#25131] Incorrect definition of default lfuse bits for ATTiny2313
+ [#25261] TWIHSR spelling deviates from XML file in AVR Studio 4.15
+ [#25535] Nonexistent bit definitions in iotn88.h/iotn48.h AREFD REFS1 RWWSB
SM2
+ [#25645] xmega header files broken #defines
+ [#25723] Realloc corrupts free list when growing into the next free item
+ [#25846] include/avr/power.h:628:1: error: missing binary operator before
token "defined"
+ [#25925] <avr/boot.h> cannot be included on Xmega devices
+ [#25929] boot.h Fuse read not compatible with Tiny48/88.
+ [#25930] New IO-Headerfiles missing PXn Portpindefinitions
+ [#26188] Wrong or missing definition of SIGNATURE_X in iom644.h and others
+ [#26284] boot_lock_fuse_bits_get does not compile under gcc 4.3.X
+ [#26308] WDE defined as WDE3 in io90pwm3b.h and io90pwm2b.h
+ [#26767] XMEGA GPIO register name discrepancy
+ [#26809] Some common math constants missing in math.h
+ [#26840] Missing #define in iom32m1.h
+ [#26876] include io.h into fuse.h
+ [#27201] _WORDREGISTER in xmega headers does not work in C99 mode
+ [#27235] malloc: Several things go wrong
+ [#27242] realloc: serious error when size shrinks
+ [#27243] malloc: small error in comment
+ [#27367] RAMSTART missing in elder device header files
+ [#27434] Arguments of macros must be protected in parentheses
+ [#28575] Minor bug in iousb162.h - missing FUSE_ prefixes
+ [#28688] using_tools.dox fails to build due to extra underscore
+ [#28756] Bug in AVR libc 1.6.7 (power.h for 8-bit AVR)
+ [#28812] iotn48.h TWS# bits off by one
+ [#28584] iocanxx.h Add word definitions to iocanxx.h
+ [#28627] power.h ATMEGA32U2 clock_prescale_set() not available
+ [#28901] Xmega header files with missing definitions for GPIO_t and CPU_t
+ [#28574] Xmega D ADC struct missing registers
+ [#28582] XMEGA A3B, RTC32 not properly supported
+ [#28921] pointer to function > 128k flash
+ [#29502] literal error in iox128a1.h
+ [#29653] PUD bit missing for at90usb82
+ [#29950] ATtiny167 SPM_PAGESIZE Discrepancy
+ [#30018] Errors in include files
+ [#30085] memcpy_P on XMega does not clr NVM.CMD before copy
+ [#30104] power.h - Missing "power_usart1_/enable/disable()" functions for
ATmega644
+ [#30148] XMEGA register discrepancy
+ [#30600] Missing processor spec - wdt.h include file
+ [#30597] Missing definition for ATmega16/32/64m1/c1
+ [#30475] SPM_PAGESIZE is incorrect in io90pwm3b.h and io90pwm2b.h
+ [#30552] Missing definition ADCW
+ [#30569] ATmega16U4/32U4 wrong bit definition
+ [#30669] Improve comment in stdiodemo
+ [#30735] bug in example twitest
+ [#31086] ATTINY88 RAMEND value not set to correct value in iotn88.h
+ [#30363] _delay_xx() functions in <util/delay.h> are broken
+ [#31990] PRPSC0 used in power.h for AT90PWM81 instead of PRPSCR
+ [#31873] power_aes_enable/disable() are commented in power.h for xmega
devices
+
+* Other changes:
+
+ - Added 'avr35' architecture. Now 'MOVW' and 'LPM Rx, Z[+]' instructions
+ supported for AT90USB82 and AT90USB162 devices. GCC 4.3 or above is
+ necessary to use this.
+
+ - Function vfscanf() is rewriten. The float point version is optimized
+ considerably: the expense of a stack was cut by half, and the size of
+ function has decreased approximately on 1KB. Opportunities of standard
+ and minimal versions are expanded, and their size has remained at a
+ former level.
+
+ Briefly:
+ . Restrictions of a float point format are eliminated.
+ . Conversion '%[' is present in standart version now.
+ . The minimal version differs from standard only absence of '%[' conv.
+ . The 'hh' type qualifier is added ('char *', C99).
+ . The maximal field width is increased up to 255 (65535 in float
version).
+ . All known bugs are fixed.
+
+ New vfscanf() concedes old in:
+ . The size of the minimal and standard versions has increased for old
+ branches of compiler (less 4.1) and ancient chips (without MOVW).
+ . The maximum quantity of conversions now is limited (255).
+
+ - EEPROM functions are rewriten. Now they are pure asm functions. The
+ reading of long word or block is speed up. New functions for 32-bit
+ words and floats are added. The group of 'update' (burn only different
+ bytes) functions is added. A set of Avr-libc bugs are fixed.
+
+ - Added support for XMEGA architectures.
+
+ - The Postscript documentation build has been removed in favour of
+ building only the PDF (and HTML and man page) versions. PDF offers
+ the same printing quality as postscript at a smaller file size.
+ This also works around a bug in doxygen 1.5.7 where it appears to
+ be no longer possible to set GENERATE_HTML = NO.
+
+ - A sleeping BOD API was added to <avr/sleep.h>. This allows you to disable
+ the Brown Out Detector (BOD) before going to sleep, thereby reducing
+ power even further.
+
+ - The note about signbit() implementation is removed from documenatation.
+ The reason is that the GCC can replace it with inline code and the
+ nonzero value is unpredictable in such case.
+
+ - Signature API added in <avr/signature.h>.
+
+ - All functions are now placed in the .text.avr-libc section, and the
+ floating point functions are placed in the .text.avr-libc.fplib section.
This
+ allows the user the ability to relocate all avr-libc routines to a
different
+ address using a custom linker script.
+
+ - The port/pin assignments of the HD44780 LCD controller in the
+ stdiodemo example can now be distributed across more than a single
+ AVR port. The only remaining requirement is that all data bits
+ are assigned to a single port in ascending order.
+
+ - Added support for avrtiny10 architecture, to support the ATtiny10 Family.
+
+ - Added new headerfile: <avr/cpufunc.h>; currently contains _NOP() and
+ _MemoryBarrier().
+
+ - The twidemo can now optionally address 24C32 and larger EEPROMs
+ that require 16-bit word addressing.
+
+ - Add a "memory barrier" to the cli() and sei() macros.
+
+
+* New devices supported:
+
+ + ATxmega64D3
+ + ATxmega128D3
+ + ATxmega256D3
+ + ATxmega192A3
+ + ATxmega128A1
+ + ATxmega64A1
+ + ATmega32M1
+ + ATmega32C1
+ + ATmega32U4
+ + ATtiny167
+ + ATtiny13A
+ + ATmega32U6
+ + AT90SCR100
+ + ATtiny87
+ + ATxmega32A4
+ + ATmega16M1
+ + ATmega64C1
+ + ATmega64M1
+ + ATA6289
+ + AT90PWM81
+ + ATmega128RFA1
+ + ATxmega32D4
+ + ATxmega16A4
+ + ATxmega16D4
+ + ATmega16U4
+ + ATmega8U2
+ + ATmega16U2
+ + ATmega32U2
+ + ATxmega192D3
+ + ATtiny2313A
+ + ATtiny4313
+ + ATtiny24A
+ + ATtiny44A
+ + ATtiny261A
+ + ATtiny461A
+ + ATtiny861A
+ + ATmega644PA
+ + ATmega88PA
+ + ATmega16A
+ + ATmega64HVE
+ + ATmega169PA
+ + ATmega649P
+ + ATmega324PA
+ + ATmega16HVA2
+ + ATmega16HVB
+ + ATmega48A
+ + ATmega88A
+ + ATmega168A
+ + ATmega328
+ + ATmega164A
+ + ATmega324A
+ + ATmega644A
+ + ATmega165A
+ + ATmega169A
+ + ATmega645A
+ + ATmega6450A
+ + ATmega649A
+ + ATmega6490A
+ + ATmega6490P
+ + ATmega645P
+ + ATmega6450P
+ + ATmega329PA
+ + ATxmega128A1U
+ + ATxmega64A1U
+ + ATtiny4
+ + ATtiny5
+ + ATtiny9
+ + ATtiny10
+ + ATtiny20
+ + ATtiny40
+ + ATtiny84A
+ + ATmega325A
+ + ATmega3250A
+ + ATmega329A
+ + ATmega3290A
+ + M3000
+
+* Optimized functions:
+
+ eeprom_read_block
+ eeprom_read_dword
+ eeprom_read_word
+ eeprom_write_block
+ eeprom_write_dword
+ eeprom_write_word
+ strtod
+ setjmp
+ sqrt (and callers: acos, asin and hypot)
+ sin, cos, tan: minor in space
+ strlcat, strlcat_P
+ strlcpy, strlcpy_P
+ strtok, strtok_r
+
+* Contributed Patches:
+
+ [#6194] Twitest updated to handle larger EEPROM devices
+ [#6352] Far pointer library
+ [#6500] Reentrant code faq
+ [#6517] Pgmspace with float support
+ [#6555] malloc improvement
+ [#6649] sqrt.S in libm changes
+ [#6690] Shorten calculation of dallas 1-wire crc
+ [#6718] Optimize the EEPROM functions
+ [#6720] FAQ update. Add EEPROM section, baud rate section. Correct spelling.
+ [#6791] Minor fixes to stdio.h documentation
+ [#6878] eewr_byte.S update for patch #6718
+ [#6891] Add XMega software reset to the FAQ section on software reset
+ [#6895] Improved malloc behaviour when expanding used area
+ [#6897] Allow <util/setbaud.h> to be used with assembler source
+
+* New functions:
+
+ cbrt
+ eeprom_read_dword
+ eeprom_read_float
+ eeprom_update_block
+ eeprom_update_byte
+ eeprom_update_dword
+ eeprom_update_float
+ eeprom_update_word
+ eeprom_write_dword
+ eeprom_write_float
+ memccpy_P
+ strdup
+ strtok
+ strtok_P
+ strtok_rP
+ strlen_PF
+ strnlen_PF
+ memcpy_PF
+ strcpy_PF
+ strncpy_PF
+ strcat_PF
+ strlcat_PF
+ strncat_PF
+ strcmp_PF
+ strncmp_PF
+ strcasecmp_PF
+ strncasecmp_PF
+ strstr_PF
+ strlcpy_PF
+ memcmp_PF
+
+
+*** Changes in avr-libc-1.6.0:
+
+* Main changes from avr-libc 1.4 to 1.6:
+
+ + The fplib/math library is completely rewritten. Now features of the IEEE
+ 754 standard are supported all: negative zero, subnormals, Infs and NaNs.
+ It concerns both to base operations (arithmetic, comparison...), and to
+ all functions. Speed of performance is increased, sometimes considerably.
+ A number of mistakes (not reflected in the Bugs) which led severe losses
+ of accuracy for some arguments is corrected. A number of new functions is
+ added. It is necessary to note, that the new library concedes old under
+ the charge of flash memory a little.
+
+ Incompatibilities:
+
+ - Conversion from float to long (make similar to GCC/x86): in case if
+ overflow was or if input is NaN return 0x80000000 for signed result and
+ return 0 for unsigned result. Negative input (not too big in absolute
+ value) is permissible for cast to unsigned long, for example: (unsigned
+ long)(-1.0) returns ULONG_MAX.
+
+ - The signbit() function: return 1 as nonzero value (make similar to
+ builtin GCC).
+
+ - Make frexp() similar to GCC/x86 in case of nonfinite arg: write 0 by
+ exponent pointer. Early Avr-libc's frexp() skips exponent storing in this
+ case. Make the NULL a legal address to skip a storing.
+
+ + Functions of numbers to ascii conversion are completely rewritten:
+ dtostre(), dtostrf() and printf() family. They more do not use float point
+ operations. Speed of int/float to ascii has increased in some times. For
+ printf() the stack usage is reduced.
+
+ + Test suite is added to the Avr-libc project.
+
+ + A few new util's headers: util/atomic.h, util/setbaud.h .
+
+* Bugs fixed:
+
+ [no-id] iscntrl() return true for some values from 0x80 to 0xff.
+ [no-id] Fix the examples installation for non-doc builds.
+ [no-id] Fix the spelling of the OCR1A/B registers in ATtinyX4 devices.
+ [no-id] LED1/2 don't work in the largedemo on an ATmega16.
+ [no-id] Not defined SPM_PAGESIZE for ATtinyX4/X5/X61 and ATtiny2313 devices.
+ [no-id] Typo in iomxx0_1.h: PRUSART3.
+ [no-id] Make include/avr/sfr_defs.h -Wundef safe.
+ [no-id] Make include/avr/eeprom.h -Wundef safe.
+ [no-id] Fix the timing of the HD44780 driver in the stdiodemo.
+ [no-id] Fix the sleep mode definitions for the ATtiny2313.
+ [no-id] Exclude 64-bit types for -mint8.
+ [no-id] Make documentation build work with doxygen 1.5.x
+ [#1929] -Inf not detected
+ [#11511] NaN not generated correctly by division library
+ [#11820] dtostre: wrong output with percision =3
+ [#13330] NaN is recognized not always
+ [#15161] util/delay.h misses inline keyword (regression)
+ [#15193] incorrect definition of IVSEL bit in MCUCR register
+ [#15266] Function ldexp incorrectly processes overflow and underflow cases.
+ [#15494] Compile warning and errors if compiler flag -Wundef flag specified
+ [#15512] Bootloader macros not interrupt safe.
+ [#15519] AT90CAN* processors incorrectly identified as "AT90S family"
+ [#15522] Typo in iotn2313.h vector table
+ [#15559] Wrong macro for boot_page_write(address) and ATmega128
+ [#15574] unneeded compatibility break
+ [#15595] GPIOR0 misspelled for ATtiny25/45/85
+ [#15732] interrupt.h: ISR() incompatibility with gcc 3.4.5
+ [#15890] missing /devtools/gen-avr-lib-tree.sh
+ [#16039] Names in Pxy (i.e. PA0) style of ports pins for some devices are
+ not defined.
+ [#16125] HD44780 data bit assignment restrictive
+ [#16260] _crc16_update lacks C equivalent
+ [#16411] Add the 'used' attribute to all interrupt service routine macros.
+ [#16434] EMPTY_INTERRUPT has no misspelled vector checking
+ [#16441] eeprom.h should use __asm__
+ [#16868] depricated.h: outp() arguments order misprint
+ [#17068] wdt.h file: __AVR_ATmeg324P__ spelling mistake
+ [#17470] Add API for CLKPR register.
+ [#17551] Update documentation to point to issues with gcc4.1
+ [#17591] /avr-libc/libm/fplib/fp_split.S error return will fail for
+ 3-Byte PC devices
+ [#17608] Add ISR_ALIAS() to avr/interrupt.h
+ [#18115] online documentation typo/bug avr/boot.h
+ [#18373] Bugs in Inline ASM documentacion
+ [#18385] SPM_PAGESIZE wrong value for ATmega164p and ATmega324p
+ [#18509] strtod.S crashes due to stack problem with atmega 2560
+ [#18662] rand() keeps returning the same value if seeded with 0
+ [#18686] AT90USB**** devices are absent in interrupt-verctor-names table
+ [#18688] vfscanf and vfprintf don't use malloc
+ [#18726] the dtostrf function description is missing in AVR-Libc's webpage
+ [#18903] ATmega644 register definitions for SPI and PRR (datasheet vs.
+ iom*.h)
+ [#18915] PWM1X Bit missing for ATtiny261/461/861
+ [#18964] USART definitions *wrong* in iocanxx.h
+ [#18994] minor optimization possible to stdlib functions isspace(),
+ isprint(), and islower()
+ [#19009] Make <util/delay.h> issue a warning when optimizations are turned
off
+ [#19050] gcrt1.S should call main rather than jumping to it
+ [#19060] PCMSKx registers transposed in header for attinyX61
+ [#19445] _malloc_heap_end does not follow _heap_end on m2561
+ [#19495] <avr/interrupts.h> documentation: fix inclusion of cli and sei
macros
+ [#19496] Add documentation: how to build toolchain for Windows.
+ [#19650] avr-libc: wrong named bit in SFR of AT90PWMx
+ [#19666] AT90PWMx: Another patch for the include file (missing SFR)
+ [#19669] Need function to read signature row
+ [#19686] alloc declaration missing
+ [#19841] Error building 1.4 HEAD: undefined reference to 'exit'
+ [#20248] FAQ#3: clarify which registers are safe to be used
+ [#20276] power.h missing ATmega644Ppower_XXX_[en/dis]able() macros
+ [#20435] Bit name definitions for AT90PWM3
+ [#20530] Bug in sample code for early wdt disable
+ [#20650] Missing description of AVR specific C-preprocessor macros
+ [#20682] Bad bit name in avr/io2313.h - Sugestion
+ [#20843] Mega 2561 library
+ [#21174] assembly error with targets at90s1200, attiny11, attiny12,
+ and attiny28
+ [#21183] Fix Program Space example code.
+ [#21204] iotnx61.h PRR bits incorrect
+ [#21228] Missing 3rd clause in BSD license in documentation pages
+ [#21299] Duplicate register address in iotn48.h.
+ [#21411] Typographical error in 'iotn13.h'
+ [#21432] Incorrect timer interrupt handler names for ATtiny45
+ [#21434] Bit name definitions for AT90CANxxx
+ [#21444] Undocument -minit-stack
+ [#21484] Documentation build for avr/version.h does not susbstitute autoconf
+ macros
+ [#21749] AT90PWM316: _VECTORS_SIZE should be 128
+ [#21691] iomx8.h-> IVSEL and IVCE should not be available for ATmega48
+ [#21743] AT90PWM316 missing PSOC1 bit definitions
+ [#21626] Incorrect Bit Definition for ADC14 and ADC15 Digital Input Disable
+ [#21521] incorrect bit definitions in iotnx61.h
+ [#21840] RAMEND wrong for ATmega48P/88P/168P
+
+* Other changes:
+
+ - New Power Management API in <avr/power.h>. This provides C language
+ macros to manipulate the Power Reduction Register(s) and the System Clock
+ Prescaler register across multiple processors.
+
+ [patch #4611] sleep.h sleep_mode() not interrupt safe
+
+ - The simple demo has been modernized a bit. Documentation now
+ generally refers to the ATmega8 rather than the AT90S2313, and
+ the #ifdef spaghetti has been moved out into iocompat.h.
+
+ - A new demo project ("largedemo") has been added. It extends
+ the simple demo by adding some controls, and thereby touches
+ a good number of avr-libc concepts. It has originally been
+ written for the ATmega16, but can also be run on an ATmega8
+ or a member of the ATmegaX8 family, as well as on an ATtiny2313.
+
+ - Another demo project ("stdiodemo") has been added. It
+ demonstrates the setup of the standard IO facilities using
+ a practical small application.
+
+ - The demo projects now install their source code as part of
+ the documentation tree.
+
+ - The simple demo has been ported to ATmega8515, ATmega8535,
+ ATmega164P, ATmega165, ATmega169, ATmega324P, ATmega325,
+ ATmega3250, ATmega329, ATmega3290, ATmega640, ATmega644,
+ ATmega644P, ATmega645, ATmega6450, ATmega649, ATmega6490,
+ ATmega1280, ATmega1281, ATtiny2313, ATtiny24, ATtiny25, ATtiny26,
+ ATtiny261, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85,
+ ATtiny861.
+
+ - More overhaul of the demo documentation, don't use the "squid"
+ cable for the largedemo as it is not part of the STK500.
+
+ - Integrate a copy of the license file into the documentation.
+
+ - Include an alphabetical index of all globals (functions,
+ macros, types, variables) into the documentation.
+
+ - Added 'avr25' architecture. Now 'MOVW' and 'LPM Rx, Z[+]' instructions
+ supported for AT86RF401, ATtiny13, ATtiny2313, ATtiny24, ATtiny25,
+ ATtiny261, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85 and
+ ATtiny861 devices. GCC 4.2 or above is necessary to use this.
+
+ - Add the benchmark page.
+
+ [patch #5756] New atomic.h header file (added as <util/atomic.h>)
+
+ [patch #5343] Add a util/setbaud.h "helper" file
+
+ [patch #6236] Improving _delay_us and _delay_ms
+
+ [patch #5644] New interrupt.h header file
+
+* New devices supported:
+
+ + ATtiny24
+ + ATtiny261
+ + ATtiny44
+ + ATtiny461
+ + ATtiny84
+ + ATtiny861
+ + ATmega406
+ + ATmega169 Rev. F
+ + AT90USB82
+ + AT90USB162
+ + AT90USB646
+ + AT90USB647
+ + AT90USB1286
+ + AT90USB1287
+ + ATmega48P
+ + ATmega88P
+ + ATmega164P (renamed from ATmega164)
+ + ATmega168P
+ + ATmega324P (renamed from ATmega324)
+ + ATmega328P
+ + ATmega644P
+ + ATmega1284P
+ + ATmega165P
+ + ATmega169P
+ + ATmega2560 [patch #4461]
+ + ATmega2561 [patch #4461]
+ + ATmega325P
+ + ATmega3250P
+ + ATmega329P
+ + ATmega3290P
+ + AT90PWM1
+ + ATmega8HVA
+ + ATmega16HVA
+ + ATmega32HVB
+ + AT90PWM216
+ + AT90PWM316
+ + ATtiny43U
+ + ATtiny48
+ + ATtiny88
+ + AT90PWM2B
+ + AT90PWM3B
+
+* New functions:
+
+ strstr_P (Contributed by Werner Boellmann)
+ round
+ lround
+ lrint
+
+* Optimized functions:
+
+ dtostre
+
+*** Changes in avr-libc-1.4.0:
+
+* Major API changes:
+
+ - The INTERRUPT() macro has been deprecated, and it will be
+ removed in a future version. Use __attribute__((interrupt))
+ explicitly if this functionality is really needed.
+
+ - A new ISR() macro has been added, and is now the preferred
+ for to introduce an interrupt service routine. It is
+ equivalent to the old SIGNAL() macro, which might become
+ deprecated in a future version.
+
+ - A new header file, <compat/deprecated.h> has been established.
+ Its purpose is to collect deprecated items from older versions of
+ the library, starting out with the enable_external_int(),
+ timer_enable_int(), and INTERRUPT() macros/functions, as well as
+ the old obsoleted inp/outp/sbi/cbi macros.
+
+ - A new include file subdirectory named "util/" has been created.
+ The files <compat/twi.h>, <avr/crc16.h>, <avr/delay.h>, and
+ <avr/parity.h> have been moved into the new util/ subdirectory.
+
+ - A new set of interrupt vector names has been added, closely
+ matching the names given in the datasheet, and more compatible to
+ other compilers available for the AVR platform. The table of
+ interrupt vector names in the documentation is now automatically
+ generated, and explicitly mentions the MCU type for each vector
+ name.
+
+ - The standard IO facilities API has been enhanced
+
+ . The backend functions put and get that are passed to fdevopen()
+ during the setup of a stream now take the stream itself as an
+ additional argument.
+ By defining the macro __STDIO_FDEVOPEN_COMPAT_12 before
+ including <stdio.h>, an fdevopen() function prototype will be
+ declared that is backwards-compatible with avr-libc version
+ 1.2 and before.
+ . It is possible to tie user data to a stream using
+ fdev_set_udata(), and to retrieve them using fdev_get_udata().
+ Together with the additional argument to the backend functions,
+ these functions can now e.g. keep track of internal user state,
+ or distinguish two different devices using the same backend
+ function.
+ . The get backend function can now return _FDEV_EOF to indicate an
+ end-of-file condition, in addition to _FDEV_ERR for an error
+ condition. This will affect the internal state that can be
+ queried using the standard feof() and ferror() functions.
+ . A new macro fdev_setup_stream() is provided to setup a
+ user-supplied stream without the need to call fdevopen(), and thus
+ without requiring malloc(). A similar macro FDEV_SETUP_STREAM()
+ exists that can be used to initialized a FILE object. The
+ floating-point implementations of vfscanf() and vfprintf() now
+ allocate their conversion buffer on the stack, so they do not need
+ malloc() anymore either.
+
+ - An API has been added to track the library version number. See the
+ documentation of the new header file <avr/version.h>.
+
+* Bugs fixed:
+
+ [#3573] Make local symbols in .S files truely local
+ [#12324] overview: boot_page_write_safe, etc.
+ [#12333] Standard requires libstdc to define vprintf and vscanf
+ [#12495] about Busy-wait delay loops(document)
+ [#12496] about set_sleep_mode() and tiny26/tiny2313
+ [#12735] No support for AT94K devices in sleep.h
+ [#12739] Gcc assumes that target libc provides ffs function
+ [#12775] Possible Bug in sscanf on string end
+ [#13340] Math lib documentation/lib mismatch
+ [#13557] small typo in avr-libc-user-manual-1.2.3
+ [#14224] _delay_ms() not inlining if called more than once in a unit
+ [#14241] 'eeprom_is_ready' is not compiled with ATmega48
+ [#14262] avr-libc documentation error about .init sections
+ [#14266] use __extension__ in avr-libc header files
+ [#14327] wdt_disable() missing a cli
+ [#14378] EEPROM library d'not support at86rf401 device
+ [#14380] configure/make work only in source directory
+ [#14433] Improve documentation of <avr/delay.h>
+ [#14486] some macros from boot.h doesn't compile correctly
+ [#14503] strnlen_P is wrong with classic AVRs
+ [#14798] several IO registers definition issue in header files
+ [#14852] fp pow function broken for negative x
+
+* Other changes:
+
+ [patch #3592] speedup tanh function in libm
+ [patch #3750] Allow passing user data to stdio fdevopen() get and
+ put methods. (This is part of the API changes
+ mentioned above.)
+ [patch #3780] <assert.h> header
+ [patch #3781] add dummy fflush() to <stdio.h>
+ [patch #3782] modernize <stdint.h>
+ [patch #3912] Fix ctype.S linker error due to asm branches out
+ of range
+ [patch #3925] Dallas iButton 8-bit CRC
+ [patch #4087] C99 conformal headers stdint.h and inttypes.h
+ [patch #4505] Unified interrupt vector names in header files
+ [patch #4557] Adds to the fplib usage of MUL instruction
+ in group avr4; avr5 devices
+ [patch #4608] rpm spec file update
+ [patch #4622] unify doc file location in rpms
+
+ - Update the build system to recent versions of autoconf/automake;
+ the old "doconf" and "domake" scripts are gone now, "reconf" has
+ been renamed to "bootstrap".
+ - Update the documentation system to doxygen >= 1.4.1.
+ - Major overhaul of the documentation, new layout of the HTML pages,
+ several clarifications and additions.
+ - Add support for the following new devices (depending on the ability
+ of the compiler/binutils to handle them):
+ . AT90CAN32/64
+ . AT90PWM2(B)/3(B)
+ . ATmega329/3290/649/6490
+ . ATtiny25/45/85
+ . ATmega164/324/644
+ . ATmega640/1280/1281
+ - The library is now compiled with -Os for avr3 and avr5 MCUs (i.e.
+ for those with > 8 KB of ROM); used to be -O3 before.
+
+* New string functions. Contributed by Dmitry Xmelkov.
+
+ ffs
+ ffsl
+ ffsll
+ _FFS (macro)
+
+* Optimized functions.
+
+ misc/itoa
+ misc/ltoa
+ misc/utoa
+ misc/ultoa
+ stdlib/longjmp
+ string/memchr
+ string/memccpy
+ string/strchr
+ string/strrchr
+ string/strsep
+ string/strstr
+
+*** Changes since avr-libc-1.2.4:
+
+* Bugs fixed:
+
+ [no-id] EEPROM handling not working for AT90CAN128 ATmega48 ATmega88
+ ATmega165 ATmega168 ATmega169 ATmega325 ATmega3250 ATmega645
+ ATmega6450
+ [#12646] strtod returns error for valid input (patch#4137)
+ [#13341] Remove ADHSM bit from header files.
+
+* Other improvements:
+
+ [patch#4189] Document replacement for sbi/cbi instructions
+
+* boot.h: implement boot_lock_fuse_bits_get() plus macros for the
+ respective addresses (low/high/ext fuse, lock bits)
+
+
+*** Changes since avr-libc-1.2.3:
+
+* Bugs fixed:
+
+ [no-id] Work around a bug in gas that made the weak symbol __stack
+ fixed inside gcrt1.S (since the assembler already inserted
+ its value).
+ [no-id] Modify the doxygen build system to cope with artefacts from
+ recent versions of doxygen and (pdfelatex-based) LaTeX.
+ [#12033] macros.inc need to be protected from multiple inclusion.
+ [#12040] overview: sbi in FAQ
+ [#12134] ADC register name definitions
+ [#12422] Add new bit definitions for LCDCCR register in iom169.h.
+ [#12448] Fix bit definition for SJW0 in iocan128.h
+ [#12785] Fix documenation for log10() function in math.h.
+ [#12955] Signal name misprints: SIG_COMPERATOR in iom169.h,
+ SIG_EPROM_READY in iotn26.h
+ [#12993] Signal "__EICR" redefined warning ATmega8
+ [#13290] avr/io.h EEAR def is flawed for the Mega48
+ [#13327] Fix bit definition for UCSZ02 in iom325.h, iom3250.h,
+ iom645.h, iom6450.h
+ [#13678] The _wdt_write(value) macro in wdt.h doesn't work with
+ the ATmega325.(also with ATmega3250, ATmega645, ATmega6450,
+ ATmega165).
+
+* demo.c extended for ATmega16
+
+*** Changes since avr-libc-1.2.2:
+
+* Bugs fixed:
+
+ [#11987] sscanf parsing problem : leading zero ignored in %u
+
+*** Changes since avr-libc-1.2.1:
+
+* Bugs fixed:
+
+ [#11805] Fix call to __fp_cosinus in sin().
+ [#11817] Replace SYSCLK with F_CPU in twitest example.
+ [#11868] realloc doesn't work correctly on block at end of freelist
+ when growing
+ [#11898] Change optimisation level for building printf libraries to -Os.
+
+
+*** Changes since avr-libc-1.2.0:
+
+* Bugs fixed:
+
+ [no-id] Prefix all internal global symbols in libm with __fp_ so
+ they do not collide with the application namespace.
+ [#4101] setjmp/longjmp destroy changes in global registers.
+ [#11479] Add missing pin definitions for iotn16.h.
+ [#11486] Put the port bit defintions back in for mega16.
+ [#11494] strtol() return wrong value in the underflow case
+ [#11505] Remove doxygen comment about the deprecated inp/outp items.
+ [#11510] Abstract the change enable bit in wdt.h for mega32.
+ [#11522] Rewrite wdt_disable() to match datasheet algorithm.
+ [#11684] realloc overwrites first to bytes of memory block when shrinking
+ [patch #3618] Optimization strtol(), a little (related to bug #11494).
+ [#11732] Update doc/examples/progmem.c to use the latest API.
+
+* Extend stdio and pmstring APIs:
+
+Implement patch #3516: printf: Handling of argument strings from
+program memory
+
+The %S format can now be used to print strings that are located in
+program-space memory (aka. ROM).
+
+As a prerequisite for this, the function strnlen_P() has been added
+which is similar to strnlen() except that it takes a pointer to a
+program-space string.
+
+*** Changes in avr-libc-1.2:
+
+* Bugs fixed:
+
+ [no-id] Fix TICIE1 value in usb header files.
+ [no-id] Fix bug introduced in fix for bug #7802 (missing parens).
+ [no-id] Move ATtiny2313 and ATtiny13 from avr4 to avr2 (by now).
+ [#2143] malloc() routines chunk smaller than requested
+ [#5454] Inline functions results in undefined reference when optimize level 0
+ is used.
+ [#5799] error(?) in iom162.h
+ [#2233] Documentation issues with inline asm
+ [#6352] Sleep mode for ATmega162, ATmega161, and ATmega8515
+ [#7469] "Problem" by using the library function "boot_lock_bits_set"
+ [#7556] printf and friends improperly handle non-null terminated strings when
+ a %s argument has a precision.
+ [#7802] vfscanf problem with unsigned long (patch #2554)
+ [#7989] dtostrf() destroys string pointer registers?
+ [#8119] _wdt_write macro in wdt.h doesn't work with ATmega169
+ [#8391] Fuse mask in boot.h wrong?
+ NOTE: boot_lock_bits_set() was broken. Please see the new
+ documentation for examples of how the new version works.
+ [#8452] some SFR and bit names in iom169.h are incorrect
+ NOTE: Where possible, the old names are retained to avoid breaking
+ existing code, but the OCR1A and OCR1B names where just plain wrong
+ so they have been changed and the incorrect names (OCRA1 and OCRB1)
+ are undefined.
+ [#8649] sfr_defs.h: missed _SFR_BYTE() in bit_is_set/clear
+ [#9345] Zero-Padding on vfprintf
+ [#10150] Update release versions compatible with avr-libc and instructions.
+ [#10489] Sleep mode for atmega48/88/168 family
+ [#10733] Fix bit identifer ADFR to ADATE in mega64.
+ [#10828] Fix licenses on files to have same BSD license.
+ [#11242] Add the EEARH register definition for the mega48.
+ [#11275] fdevopen() should document its use of malloc()
+ [#11315] Add USART* signal names to match datasheet for mega32 and mega16.
+ [#11405] Add USART* signal names to match datasheet for mega128.
+ [#11418] Add PRR register and bit definitions for mega169.
+ [#11425] sleep.h missing semicolon
+
+* Remove deprecated items:
+ + obsolete headers from the base include directory (moved to the avr/
+ subdirectory long ago)
+ + deprecated macros and functions from
+ . <avr/eeprom.h> (eeprom_rb, eeprom_rw, eeprom_wb),
+ . <avr/io.h> (cbi, sbi, inb, outb, inw, outw, inp, outp, BV),
+ . <avr/pgmspace.h> (PRG_RDB).
+ + . <avr/timer.h> removed completely.
+
+* Moved header files:
+
+ + <avr/ina90.h> moved to <compat/ina90.h>
+ + <avr/twi.h> moved to <compat/twi.h>
+
+* New devices supported:
+
+ + ATmega165
+ + ATmega325
+ + ATmega3250
+ + ATmega645
+ + ATmega6450
+ + ATmega48
+ + ATmega88
+ + ATmega168
+ + ATtiny13
+ + ATtiny2313
+ + AT90CAN128
+
+* Pin names for ports are now consistent for all devices.
+
+* dtostrf() now uses movw where possible
+
+* realloc() has been implemented.
+
+* Extend pgmspace API.
+
+The pgmspace API has had the following macros added to allow accessing of
+unsigned 32-bit values:
+
+ pgm_read_dword_near
+ pgm_read_dword_far
+ pgm_read_dword
+
+* Change boot API.
+
+The boot API internals have changed such that it is not compatible with the
+1.0.x API.
+
+These macros have been changed so that they no longer wait for SPM and EEPROM
+operations to complete. It turns out that doing those checks all the time is
+not needed and tends to bloat the code. Removing the checks allows you to
+write more compact code (see the example in avr/boot.h).
+
+ boot_page_fill
+ boot_page_erase
+ boot_page_write
+ boot_rww_enable
+ boot_lock_bits_set
+
+If you want the old behaviour (1.0.x compatible), use these new macros:
+
+ boot_page_fill_safe
+ boot_page_erase_safe
+ boot_page_write_safe
+ boot_rww_enable_safe
+ boot_lock_bits_set_safe
+
+* Extend eeprom API.
+
+New macro:
+ eeprom_busy_wait
+
+* Extend crc16 API.
+
+New functions:
+ _crc_xmodem_update
+ _crc_ccitt_update
+
+* Extend stdio API.
+
+New functions:
+ vfprintf_P
+ vfscanf_P
+ vsprintf
+ vsprintf_P
+ vsnprintf
+ vsnprintf_P
+
+* Extend malloc API.
+
+Implement realloc().
+
+* Extend delay API (<avr/delay.h>).
+
+Implement inline functions for specifying delays in microseconds, or
+milliseconds directly (based on the macro F_CPU specifying the CPU
+clock frequency).
+
+* Documentation changes:
+
+ + Use newer Doxygen.
+ + Many fixes and added documentation.
+ + Unix-style man pages are generated now when doc generation has been
+ enabled in ./configure
+
+* Optimize slightly strtol and strtoul functions.
+
+* Unified copyright.
+
+All of the avr-libc files are now distributed under a single license.
+All of the authors of the files agreed to this step. The new license
+is a 3-clause simplified ``BSD-style'' license which is believed to be
+fully compatible with the GPL on one hand, yet imposes as minimal
+restrictions as possible for any kind of commercial use in
+applications based on avr-libc.
+
+To build the documentation, doxygen-1.3.4 or newer is strongly recommended.
+
+*** Changes in avr-libc-1.0:
+
+* Move source to cvs repositiory at http://savannah.gnu.org/projects/avr-libc
+
+Anonymous cvs access to the source is now available. There is also a mailing
+list set up for discussion of development of avr-libc.
+
+* License changes.
+
+All the files in the project now are covered by a modified BSD license. This
+allows royalty free use of the library in commerical products. All of the
+public domain files in the project have been switched to the new license and
+copyright given to the contributors of the files.
+
+There were some files taken from GNU GPL'd projects which were removed from
+avr-libc to simplify the licensing. The removed files only supplied alternate
+implementations, so nothing was lost by their removal.
+
+* Requires latest binutils and gcc
+
+Marek did some fairly major work with binutils and gcc to make adding support
+for new devices easier. His changes in those tools required changes to
+avr-libc which make it incompatible with older versions of binutils and gcc.
+Gcc versions >= 3.3 and binutils versions >= 2.13 are required.
+
+* New malloc implementation.
+
+Joerg Wunsch has supplied an improved malloc implementation which is less
+prone to fragmentation.
+
+* Documentation!
+
+Joerg Wunsch and Ted Roth and have been working on using the doxygen program to
+embed documentation comments into source code. Additionally, Harald Kipp's
+inline asm cookbook and Rich Neswold's Avr Tools document have been merged into
+the user manual. The goal is to have a single place for all the documentation
+a user would need to get started developing for AVR microcontrollers using
+the GNU development tool chain.
+
+The latest documentation is available online at
+ http://www.freesoftware.fsf.org/avr-libc/
+
+* I/O registers accessible directly in C expressions
+
+You can now do this in your code:
+ PORTA |= 0x02;
+
+See the "Special Function Registers" documentation for details. This method is
+preferred over the use of the deprecated inp(), inb(), inw(), outp(), outb()
+and outw() functions.
+
+* New devices supported
+
+mega128
+mega169
+mega16
+mega32
+mega64 [untested]
+mega8515 [untested]
+mega8535 [untested]
+tiny26
+76c711
+43usb320
+43usb355
+86rf401
+
+* Improved trigonometrical functions:
+
+Reiner Patommel provided complete rewrites for asin(), atan() and atan2()
+that feature a better (for some argument ranges even much better)
+accuracy than the previous versions. Note that since acos() uses asin(),
+it also benefits from this.
+
+* Incompatibilities with previous version.
+
+The arguments for outb()/outw() have been reversed.
+ (value,port) -> (port,value)
+
+* New pgmspace.h API.
+
+Changed function names and added new functions to read the Program Space
+FLASH. Added new functions to read 16-bit (word) values. The new API should
+also clear up problems with reading data from devices with > 64K of FLASH.
+
+The API now includes:
+pgm_read_byte (maps to the *_near function below)
+pgm_read_word (maps to the *_near function below)
+pgm_read_byte_near
+pgm_read_word_near
+pgm_read_byte_far
+pgm_read_word_far
+
+
+* New bootloader support API.
+
+#include <avr/boot.h>
+
+This provides bootloader support functions to those processors that have
+builtin bootloader support.
+
+* inb / outb / inw / outw / cbi / sbi macros are deprecated.
+
+* New string functions and optimized string functions.
+
+strlcpy (optimized)
+strlcat (optimized)
+strsep (new)
+strtok_r (new)
+strlcat_P (new)
+strlcpy_P (new)
+strncat_P (new)
+
+Contributed by Reiner Patommel with some work on strlcpy, strlcat by
+Eric Weddington.
+
+* New eeprom functions by Artur Lipowski <LAL@pro.onet.pl>
+
+eeprom_write_word
+eeprom_write_block
+
+
+*** Changes up to avr-libc-20020203:
+
+See the ChangeLog file up to 2002-02-03 for details.
+
Deleted: tags/avr-libc-2_1_0-release/configure.ac
===================================================================
--- trunk/avr-libc/configure.ac 2021-05-20 22:22:24 UTC (rev 2554)
+++ tags/avr-libc-2_1_0-release/configure.ac 2022-01-28 23:10:52 UTC (rev
2557)
@@ -1,1654 +0,0 @@
-# -*- Autoconf -*-
-#
-# Copyright (c) 2004, Theodore A. Roth
-# Copyright (c) 2005,2006,2007,2009 Anatoly Sokolov
-# Copyright (c) 2005,2008 Joerg Wunsch
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in
-# the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of the copyright holders nor the names of
-# contributors may be used to endorse or promote products derived
-# from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-# $Id$
-#
-# Process this file with autoconf to produce a configure script.
-#
-
-dnl library versioning -- modify these on releases
-dnl macro name value description
-m4_define([avr_libc_major], [2])dnl major version
-m4_define([avr_libc_minor], [0])dnl minor version
-m4_define([avr_libc_revision], [0])dnl revision (dot-dot version)
-m4_define([avr_libc_revision_suffix], [svn])dnl revision suffix (if any)
-m4_define([avr_libc_reldate], [20150209])dnl release date
-dnl end of library versioning data
-
-m4_define([avr_libc_version],
-
avr_libc_major.avr_libc_minor.avr_libc_revision()avr_libc_revision_suffix)dnl
-m4_define([avr_libc_version_numeric],
- m4_eval(10000 * avr_libc_major + dnl
- 100 * avr_libc_minor + dnl
- avr_libc_revision))dnl
-
-AC_INIT(avr-libc, avr_libc_version, avr-libc-dev@nongnu.org)
-
-AC_PREREQ(2.59)
-AC_REVISION($Revision$)
-
-AC_CONFIG_SRCDIR([doc/examples/demo/demo.c])
-AC_CONFIG_HEADER([config.h])
-
-dnl substitute M4 macros into shell variables
-AVR_LIBC_MAJOR=avr_libc_major
-AVR_LIBC_MINOR=avr_libc_minor
-AVR_LIBC_REVISION=avr_libc_revision
-AVR_LIBC_RELDATE=avr_libc_reldate
-AVR_LIBC_VERSION=avr_libc_version
-AVR_LIBC_VERSION_NUMERIC=avr_libc_version_numeric
-dnl ...and trigger Makefile.in substitutions
-AC_SUBST(AVR_LIBC_MAJOR)
-AC_SUBST(AVR_LIBC_MINOR)
-AC_SUBST(AVR_LIBC_REVISION)
-AC_SUBST(AVR_LIBC_RELDATE)
-AC_SUBST(AVR_LIBC_VERSION)
-AC_SUBST(AVR_LIBC_VERSION_NUMERIC)
-
-AC_CANONICAL_BUILD
-AC_CANONICAL_HOST
-
-# See if the user specified '--build=`../config.guess` --host=avr' when
-# running ../configure.
-
-AC_MSG_CHECKING([if configuring for cross compile])
-if test "x${build_alias}" = "x${host_alias}"; then
- if test "x${build_alias}" = "x" ; then
- build_alias='`./config.guess`'
- fi
- AC_MSG_RESULT(no)
- AC_MSG_WARN()
- AC_MSG_WARN(AVR-LIBC must be built using an avr cross-compiler.)
- AC_MSG_WARN(Try configuring with:)
- AC_MSG_WARN("$0 --build=$build_alias --host=avr")
- AC_MSG_WARN()
- AC_MSG_ERROR(aborting configure)
-else
- AC_MSG_RESULT([yes])
-fi
-
-AC_MSG_CHECKING([if target host is avr])
-case "$host" in
- avr* )
- AC_MSG_RESULT([yes])
- ;;
- * )
- AC_MSG_RESULT(no)
- AC_MSG_WARN()
- AC_MSG_WARN(Avr-libc must be built using an avr cross-compiler.)
- AC_MSG_WARN(Try configuring with:)
- AC_MSG_WARN("$0 --build=$build --host=avr")
- AC_MSG_WARN()
- AC_MSG_ERROR(aborting configure)
- ;;
-esac
-
-## TODO: Write a check for GNU Make
-
-dnl The default check whether the C compiler can create an executable
-dnl is inappropriate for us as it requires an existing library.
-AC_NO_EXECUTABLES
-
-dnl Minimum version of Automake is 1.8.
-dnl We don't want the gzip distribution tarball anymore.
-AM_INIT_AUTOMAKE([1.8 dist-bzip2 no-dist-gzip])
-
-# We don't want touse the cflags from the environment since we need control
-# of this when we're building the libs.
-CFLAGS=""
-
-
-dnl This fix is from Newlib in config/override.m4.
-dnl Fix 2.64 cross compile detection for AVR by not trying to compile fopen.
-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.64],
- [m4_foreach([_GCC_LANG], [C, C++, Fortran, Fortran 77],
- [m4_define([_AC_LANG_IO_PROGRAM(]_GCC_LANG[)],
m4_defn([AC_LANG_PROGRAM(]_GCC_LANG[)]))])])
-
-
-# Checks for programs.
-
-AC_PROG_CC
-AC_CHECK_TOOL(AS, as, as)
-AM_PROG_AS
-AC_PROG_RANLIB
-AC_CHECK_TOOL(AR, ar, ar)
-
-# Make sure that we found the right avr cross-compiler.
-
-case "${CC}" in
- *gcc*)
- case "X`${CC} -dumpmachine`X" in
- XavrX) ;;
- *) AC_MSG_ERROR(Wrong C compiler found; check the PATH!) ;;
- esac
- ;;
- *) AC_MSG_ERROR(Wrong C compiler found; check the PATH!) ;;
-esac
-case "${AS}" in
- *avr*as*) ;;
- *) AC_MSG_ERROR(Wrong assembler found; check the PATH!) ;;
-esac
-case "${AR}" in
- *avr*ar*) ;;
- *) AC_MSG_ERROR(Wrong archiver found; check the PATH!) ;;
-esac
-case "${RANLIB}" in
- *avr*ranlib*) ;;
- *) AC_MSG_ERROR(Wrong ranlib found; check the PATH!) ;;
-esac
-
-AC_PROG_INSTALL
-AC_PROG_LN_S
-AC_PROG_MAKE_SET
-
-dnl Check if avr-gcc >= 5.1.0 as they expect device library
-GCC_VER=`${CC} -dumpversion`
-AS_VERSION_COMPARE(${GCC_VER},"5.1.0",[DEV_LIB="no"],[DEV_LIB="yes"],[DEV_LIB="yes"])
-AM_CONDITIONAL(HAS_GCC_5_1, test "x${GCC_VER}" = "x5.1.0")
-
-dnl Enable device library when specified. If not specified and
-dnl gcc expects (e.g. >= 5) device lib then enable device library.
-AC_ARG_ENABLE(device-lib,
-[ --enable-device-lib build separate device library],
-[enable_device_lib=true],
-[case "${DEV_LIB}" in
- yes) enable_device_lib=true
- AC_MSG_NOTICE(Enabled device library) ;;
- *) ;;
- esac])
-
-dnl define HAS_DEV_LIB if device library enabled
-AM_CONDITIONAL(HAS_DEV_LIB, [test x$enable_device_lib = xtrue])
-
-dnl TODO: Check for various tools used to build the documentation. If anything
-dnl is missing, don't build the docs by default.
-
-dnl Disable building of dox by default since it they may not build properly on
-dnl all systems. This isn't optimal, but how do we work around the user not
-dnl having fig2dev and still build all the formats?
-
-AC_ARG_ENABLE(doc,
-[ --enable-doc build all doc formats (disabled is default)],
-[case "${enableval}" in
- yes) enable_doc=yes ;;
- no) enable_doc=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for global doc option) ;;
- esac], [enable_doc=no])dnl
-dnl Various documentation options. By default, we enable all of them,
-dnl i. e. HTML, Postscript, PDF, and Unix-style man pages.
-AC_ARG_ENABLE(html-doc,
-[ --enable-html-doc build HTML documentation (default)],
-[case "${enableval}" in
- yes) html_doc=yes ;;
- no) html_doc=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for html-doc option) ;;
- esac], [html_doc=yes])dnl
-
-AC_ARG_ENABLE(pdf-doc,
-[ --enable-pdf-doc build PDF documentation (default)],
-[case "${enableval}" in
- yes) pdf_doc=yes ;;
- no) pdf_doc=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for pdf-doc option) ;;
- esac], [pdf_doc=yes])dnl
-
-dnl Man pages are currently not tunable; they'll be built whenever
-dnl the HTML documentation is built. However, it can be configured
-dnl whether the result is about to be installed or not.
-AC_ARG_ENABLE(man-doc,
-[ --enable-man-doc build Unix-style manual pages (default)],
-[case "${enableval}" in
- yes) man_doc=yes ;;
- no) man_doc=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for man-doc option) ;;
- esac], [man_doc=yes])dnl
-
-AC_ARG_ENABLE(versioned-doc,
-[ --enable-versioned-doc install docs in directory with version name
(default)],
-[case "${enableval}" in
- yes) versioned_doc=yes ;;
- no) versioned_doc=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for versioned-doc option) ;;
- esac], [versioned_doc=yes])dnl
-
-dnl troth/2002-07-12: The CHECK_DOXYGEN macro should be moved to a config
-dnl dir. I put it here until I figure out how to integrate the config dir.
-
-dnl
-dnl @synopsis CHECK_DOXYGEN
-dnl
-dnl This macro checks if doxygen is installed on the build system
-dnl
-dnl @version Id: check_doxygen.m4,v 1.2 2002/02/10 23:22:40 troth Exp
-dnl @author Theodore A. Roth <troth@openavr.org>
-dnl
-AC_DEFUN([CHECK_DOXYGEN],[dnl
-dnl
-AC_MSG_CHECKING([for doxygen])
-dox_ver=`doxygen --version 2>/dev/null`
-if test "x$dox_ver" = "x"; then
- AC_MSG_RESULT(no)
-else
- # FIXME: should also check for dox_ver >= 1.4.1
- AC_MSG_RESULT(yes)
- if test "$pdf_doc" = "yes"; then
- AC_MSG_NOTICE([Enabling PDF docs])
- TARGET_DOX_PDF=dox-pdf
- INSTALL_DOX_PDF=install-dox-pdf
- fi
- if test "$html_doc" = "yes"; then
- AC_MSG_NOTICE([Enabling HTML docs])
- TARGET_DOX_HTML=dox-html
- INSTALL_DOX_HTML=install-dox-html
- fi
-dnl The creation of man pages is a side-effect of the HTML
-dnl generation, so a different target is only needed for installation.
- if test "$man_doc" = "yes"; then
- AC_MSG_NOTICE([Enabling man pages])
- TARGET_DOX_HTML=dox-html
- INSTALL_DOX_MAN=install-dox-man
- fi
-fi
-dnl
-AC_SUBST(TARGET_DOX_PDF)
-AC_SUBST(TARGET_DOX_HTML)
-AC_SUBST(INSTALL_DOX_PDF)
-AC_SUBST(INSTALL_DOX_HTML)
-AC_SUBST(INSTALL_DOX_MAN)
-])dnl
-
-CHECK_DOXYGEN
-
-dnl
-dnl @synopsis CHECK_PNG_UTILS
-dnl
-dnl This macro checks if pngtopnm and pnmtopng are installed. If they are not
-dnl installed we just fake it with "cat".
-dnl
-dnl We use these in the dox to insert transparency into the png images as such:
-dnl
-dnl $ pngtopnm foo.png > tmp.pnm
-dnl $ pnmtopng -transparent white tmp.pnm > foo.png
-dnl
-dnl @version
-dnl @author Theodore A. Roth <troth@openavr.org> and Eric B. Weddington
<eweddington@cso.atmel.com>
-dnl
-AC_DEFUN([CHECK_PNG_UTILS],[dnl
-dnl
-AC_MSG_CHECKING([for pngtopnm])
-has_pngtopnm=`pngtopnm --version 2>&1 | grep -c -i Version`
-if test "$has_pngtopnm" = "1"; then
- AC_MSG_RESULT(yes)
- PNGTOPNM="pngtopnm"
-else
- AC_MSG_RESULT(no)
- PNGTOPNM="cat"
-fi
-dnl
-AC_MSG_CHECKING([for pnmtopng])
-has_pnmtopng=`pnmtopng --version 2>&1 | grep -c -i Version`
-if test "$has_pnmtopng" = "1"; then
- AC_MSG_RESULT(yes)
- PNMTOPNG="pnmtopng"
-else
- AC_MSG_RESULT(no)
- PNMTOPNG="cat"
- PNGTOPNM="cat"
-fi
-AC_SUBST(PNGTOPNM)
-AC_SUBST(PNMTOPNG)
-])dnl
-
-CHECK_PNG_UTILS
-
-if test "$versioned_doc" = "yes"; then
- DOC_INST_DIR='${DESTDIR}${datadir}/doc/avr-libc-$(VERSION)'
- AVR_LIBC_USER_MANUAL="avr-libc-user-manual-${VERSION}"
-else
- DOC_INST_DIR='${DESTDIR}${datadir}/doc/avr-libc'
- AVR_LIBC_USER_MANUAL="avr-libc-user-manual"
-fi
-
-dnl We only want to build the docs if the user has passed
-dnl "--enable-doc" to configure.
-if test "$enable_doc" = "yes"; then
- DOCSDIR='api'
-else
- DOCSDIR=''
-fi
-
-AC_SUBST(DOCSDIR)
-AC_SUBST(AVR_LIBC_USER_MANUAL)
-AC_SUBST(DOC_INST_DIR)
-
-dnl Let the user decide which debug information to generate.
-dnl Default is nothing, suitable for binary distributions of the
-dnl compiled library. Alternative options include stabs, dwarf-2,
-dnl dwarf-4 or [compiler's default version] dwarf.
-AC_ARG_ENABLE(debug-info,
-[ --enable-debug-info=stabs|dwarf-2|dwarf-4 Enable generation of debugging
information],
-[case "${enableval}" in
- yes|dwarf2|dwarf-2) debuginfo=dwarf2 ;;
- no) debuginfo="" ;;
- stabs) debuginfo=stabs ;;
- dwarf4|dwarf-4) debuginfo=dwarf4 ;;
- dwarf) debuginfo=dwarf ;;
- *) AC_MSG_ERROR([bad value ${enableval} for
--enable-debug-info option; should be either stabs, dwarf-2, or dwarf-4]) ;;
- esac], [debuginfo=""])
-
-dnl Decide which debuginfo information to include
-case "$debuginfo" in
-"") CDEBUG=""; ASDEBUG="" ;;
-stabs) CDEBUG="-gstabs"; ASDEBUG="-Wa,-gstabs" ;;
-dwarf2) CDEBUG="-gdwarf-2"; ASDEBUG="-Wa,-gdwarf-2" ;;
-dwarf4) CDEBUG="-gdwarf-4"; ASDEBUG="-Wa,-gdwarf-2" ;;
-dwarf) CDEBUG="-gdwarf"; ASDEBUG="-Wa,-gdwarf-2" ;;
-esac
-
-AC_SUBST(CDEBUG)
-AC_SUBST(ASDEBUG)
-
-FNO_JUMP_TABLES=""
-AC_SUBST(FNO_JUMP_TABLES)
-
-HAS_DELAY_CYCLES=0
-AC_SUBST(HAS_DELAY_CYCLES)
-
-AC_DEFUN(
- CHECK_MNO_TABLEJUMP,
- [
- old_CC=${CC}
- old_CFLAGS=${CFLAGS}
- CFLAGS="-mno-tablejump"
- CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
- AC_MSG_CHECKING(whether ${CC} supports -mno-tablejump)
- AC_COMPILE_IFELSE(
- [AC_LANG_SOURCE([],[])],
- [has_mno_tablejump=yes],
- [has_mno_tablejump=no]
- )
- if test "x$has_mno_tablejump" = "xyes"
- then
- FNO_JUMP_TABLES="-mno-tablejump"
- fi
- AC_MSG_RESULT($has_mno_tablejump)
- CC=${old_CC}
- CFLAGS=${old_CFLAGS}
- ]
-)
-
-AC_DEFUN(
- CHECK_FNO_JUMP_TABLES,
- [
- old_CC=${CC}
- old_CFLAGS=${CFLAGS}
- CFLAGS="-fno-jump-tables"
- CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
- AC_MSG_CHECKING(whether ${CC} supports -fno-jump-tables)
- AC_COMPILE_IFELSE(
- [AC_LANG_SOURCE([],[])],
- [has_fno_jump_tables=yes],
- [has_fno_jump_tables=no]
- )
- if test "x$has_fno_jump_tables" = "xyes"
- then
- FNO_JUMP_TABLES="-fno-jump-tables"
- fi
- AC_MSG_RESULT($has_fno_jump_tables)
- CC=${old_CC}
- CFLAGS=${old_CFLAGS}
- ]
-)
-
-AC_DEFUN(
- CHECK_BUILTIN_DELAY_CYCLES,
- [
- CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
- AC_MSG_CHECKING(whether ${CC} supports __builtin_avr_delay_cycles)
- echo "extern void __builtin_avr_delay_cycles(unsigned long);\
- int main(void) { __builtin_avr_delay_cycles(42); return 0; }" |\
- ${CC} -S -xc -o - - |\
- grep __builtin_avr_delay_cycles >/dev/null
- if test "$?" != "0"
- then
- HAS_DELAY_CYCLES=1
- has_delay_cycles="yes"
- else
- has_delay_cycles="no"
- fi
- AC_MSG_RESULT($has_delay_cycles)
- CC=${old_CC}
- ]
-)
-
-CHECK_MNO_TABLEJUMP
-CHECK_FNO_JUMP_TABLES
-CHECK_BUILTIN_DELAY_CYCLES
-
-dnl Some devices are only handled by newer version of gcc. This macro lets us
-dnl probe to see if the installed avr-gcc supports a questionable device.
-AC_DEFUN(
- CHECK_AVR_DEVICE,
- [
- old_CC=${CC}
- old_CFLAGS=${CFLAGS}
- CFLAGS="-mmcu=$1"
- CC=`echo "${CC}" | sed 's/-mmcu=avr.//'`
- AC_MSG_CHECKING(if ${CC} has support for $1)
- AC_COMPILE_IFELSE(
- [AC_LANG_SOURCE([],[])],
- [has_dev_support=yes],
- [has_dev_support=no]
- )
- if test "x$has_dev_support" = "xyes"
- then
- HAS_$1=yes
- fi
- AC_MSG_RESULT($has_dev_support)
- CC=${old_CC}
- CFLAGS=${old_CFLAGS}
- ]
-)
-
-
-# avr1
-AM_CONDITIONAL(HAS_avr1, true)
-AM_CONDITIONAL(HAS_at90s1200, true)
-AM_CONDITIONAL(HAS_attiny11, true)
-AM_CONDITIONAL(HAS_attiny12, true)
-AM_CONDITIONAL(HAS_attiny15, true)
-AM_CONDITIONAL(HAS_attiny28, true)
-
-
-# avr2
-AM_CONDITIONAL(HAS_avr2, true)
-AM_CONDITIONAL(HAS_at90s2313, true)
-AM_CONDITIONAL(HAS_at90s2323, true)
-AM_CONDITIONAL(HAS_at90s2333, true)
-AM_CONDITIONAL(HAS_at90s2343, true)
-AM_CONDITIONAL(HAS_at90s4414, true)
-AM_CONDITIONAL(HAS_at90s4433, true)
-AM_CONDITIONAL(HAS_at90s4434, true)
-AM_CONDITIONAL(HAS_at90s8515, true)
-AM_CONDITIONAL(HAS_at90c8534, true)
-AM_CONDITIONAL(HAS_at90s8535, true)
-AM_CONDITIONAL(HAS_attiny22, true)
-AM_CONDITIONAL(HAS_attiny26, true)
-
-
-#avr25
-CHECK_AVR_DEVICE(avr25)
-AM_CONDITIONAL(HAS_avr25, test "x$HAS_avr25" = "xyes")
-
-CHECK_AVR_DEVICE(ata5272)
-AM_CONDITIONAL(HAS_ata5272, test "x$HAS_ata5272" = "xyes")
-
-CHECK_AVR_DEVICE(ata6616c)
-AM_CONDITIONAL(HAS_ata6616c, test "x$HAS_ata6616c" = "xyes")
-
-CHECK_AVR_DEVICE(attiny13)
-AM_CONDITIONAL(HAS_attiny13, test "x$HAS_attiny13" = "xyes")
-
-CHECK_AVR_DEVICE(attiny13a)
-AM_CONDITIONAL(HAS_attiny13a, test "x$HAS_attiny13a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny2313)
-AM_CONDITIONAL(HAS_attiny2313, test "x$HAS_attiny2313" = "xyes")
-
-CHECK_AVR_DEVICE(attiny2313a)
-AM_CONDITIONAL(HAS_attiny2313a, test "x$HAS_attiny2313a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny24)
-AM_CONDITIONAL(HAS_attiny24, test "x$HAS_attiny24" = "xyes")
-
-CHECK_AVR_DEVICE(attiny24a)
-AM_CONDITIONAL(HAS_attiny24a, test "x$HAS_attiny24a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny25)
-AM_CONDITIONAL(HAS_attiny25, test "x$HAS_attiny25" = "xyes")
-
-CHECK_AVR_DEVICE(attiny261)
-AM_CONDITIONAL(HAS_attiny261, test "x$HAS_attiny261" = "xyes")
-
-CHECK_AVR_DEVICE(attiny261a)
-AM_CONDITIONAL(HAS_attiny261a, test "x$HAS_attiny261a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny43u)
-AM_CONDITIONAL(HAS_attiny43u, test "x$HAS_attiny43u" = "xyes")
-
-CHECK_AVR_DEVICE(attiny4313)
-AM_CONDITIONAL(HAS_attiny4313, test "x$HAS_attiny4313" = "xyes")
-
-CHECK_AVR_DEVICE(attiny44)
-AM_CONDITIONAL(HAS_attiny44, test "x$HAS_attiny44" = "xyes")
-
-CHECK_AVR_DEVICE(attiny441)
-AM_CONDITIONAL(HAS_attiny441, test "x$HAS_attiny441" = "xyes")
-
-CHECK_AVR_DEVICE(attiny44a)
-AM_CONDITIONAL(HAS_attiny44a, test "x$HAS_attiny44a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny45)
-AM_CONDITIONAL(HAS_attiny45, test "x$HAS_attiny45" = "xyes")
-
-CHECK_AVR_DEVICE(attiny461)
-AM_CONDITIONAL(HAS_attiny461, test "x$HAS_attiny461" = "xyes")
-
-CHECK_AVR_DEVICE(attiny461a)
-AM_CONDITIONAL(HAS_attiny461a, test "x$HAS_attiny461a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny48)
-AM_CONDITIONAL(HAS_attiny48, test "x$HAS_attiny48" = "xyes")
-
-CHECK_AVR_DEVICE(attiny828)
-AM_CONDITIONAL(HAS_attiny828, test "x$HAS_attiny828" = "xyes")
-
-CHECK_AVR_DEVICE(attiny84)
-AM_CONDITIONAL(HAS_attiny84, test "x$HAS_attiny84" = "xyes")
-
-CHECK_AVR_DEVICE(attiny841)
-AM_CONDITIONAL(HAS_attiny841, test "x$HAS_attiny841" = "xyes")
-
-CHECK_AVR_DEVICE(attiny84a)
-AM_CONDITIONAL(HAS_attiny84a, test "x$HAS_attiny84a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny85)
-AM_CONDITIONAL(HAS_attiny85, test "x$HAS_attiny85" = "xyes")
-
-CHECK_AVR_DEVICE(attiny861)
-AM_CONDITIONAL(HAS_attiny861, test "x$HAS_attiny861" = "xyes")
-
-CHECK_AVR_DEVICE(attiny861a)
-AM_CONDITIONAL(HAS_attiny861a, test "x$HAS_attiny861a" = "xyes")
-
-CHECK_AVR_DEVICE(attiny87)
-AM_CONDITIONAL(HAS_attiny87, test "x$HAS_attiny87" = "xyes")
-
-CHECK_AVR_DEVICE(attiny88)
-AM_CONDITIONAL(HAS_attiny88, test "x$HAS_attiny88" = "xyes")
-
-CHECK_AVR_DEVICE(at86rf401)
-AM_CONDITIONAL(HAS_at86rf401, test "x$HAS_at86rf401" = "xyes")
-
-
-# avr3
-AM_CONDITIONAL(HAS_avr3, true)
-AM_CONDITIONAL(HAS_at43usb320, true)
-AM_CONDITIONAL(HAS_at43usb355, true)
-AM_CONDITIONAL(HAS_at76c711, true)
-
-#avr31
-CHECK_AVR_DEVICE(avr31)
-AM_CONDITIONAL(HAS_avr31, test "x$HAS_avr31" = "xyes")
-
-AM_CONDITIONAL(HAS_atmega103, true)
-
-
-#avr35
-CHECK_AVR_DEVICE(avr35)
-AM_CONDITIONAL(HAS_avr35, test "x$HAS_avr35" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb82)
-AM_CONDITIONAL(HAS_at90usb82, test "x$HAS_at90usb82" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb162)
-AM_CONDITIONAL(HAS_at90usb162, test "x$HAS_at90usb162" = "xyes")
-
-CHECK_AVR_DEVICE(ata5505)
-AM_CONDITIONAL(HAS_ata5505, test "x$HAS_ata5505" = "xyes")
-
-CHECK_AVR_DEVICE(ata6617c)
-AM_CONDITIONAL(HAS_ata6617c, test "x$HAS_ata6617c" = "xyes")
-
-CHECK_AVR_DEVICE(ata664251)
-AM_CONDITIONAL(HAS_ata664251, test "x$HAS_ata664251" = "xyes")
-
-CHECK_AVR_DEVICE(atmega8u2)
-AM_CONDITIONAL(HAS_atmega8u2, test "x$HAS_atmega8u2" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16u2)
-AM_CONDITIONAL(HAS_atmega16u2, test "x$HAS_atmega16u2" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32u2)
-AM_CONDITIONAL(HAS_atmega32u2, test "x$HAS_atmega32u2" = "xyes")
-
-CHECK_AVR_DEVICE(attiny167)
-AM_CONDITIONAL(HAS_attiny167, test "x$HAS_attiny167" = "xyes")
-
-CHECK_AVR_DEVICE(attiny1634)
-AM_CONDITIONAL(HAS_attiny1634, test "x$HAS_attiny1634" = "xyes")
-
-
-# avr4
-AM_CONDITIONAL(HAS_avr4, true)
-AM_CONDITIONAL(HAS_atmega8, true)
-AM_CONDITIONAL(HAS_atmega8515, true)
-AM_CONDITIONAL(HAS_atmega8535, true)
-
-CHECK_AVR_DEVICE(ata6285)
-AM_CONDITIONAL(HAS_ata6285, test "x$HAS_ata6285" = "xyes")
-
-CHECK_AVR_DEVICE(ata6286)
-AM_CONDITIONAL(HAS_ata6286, test "x$HAS_ata6286" = "xyes")
-
-CHECK_AVR_DEVICE(ata6289)
-AM_CONDITIONAL(HAS_ata6289, test "x$HAS_ata6289" = "xyes")
-
-CHECK_AVR_DEVICE(ata6612c)
-AM_CONDITIONAL(HAS_ata6612c, test "x$HAS_ata6612c" = "xyes")
-
-CHECK_AVR_DEVICE(atmega8a)
-AM_CONDITIONAL(HAS_atmega8a, test "x$HAS_atmega8a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega48)
-AM_CONDITIONAL(HAS_atmega48, test "x$HAS_atmega48" = "xyes")
-
-CHECK_AVR_DEVICE(atmega48a)
-AM_CONDITIONAL(HAS_atmega48a, test "x$HAS_atmega48a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega48pa)
-AM_CONDITIONAL(HAS_atmega48pa, test "x$HAS_atmega48pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega48pb)
-AM_CONDITIONAL(HAS_atmega48pb, test "x$HAS_atmega48pb" = "xyes")
-
-CHECK_AVR_DEVICE(atmega48p)
-AM_CONDITIONAL(HAS_atmega48p, test "x$HAS_atmega48p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega88)
-AM_CONDITIONAL(HAS_atmega88, test "x$HAS_atmega88" = "xyes")
-
-CHECK_AVR_DEVICE(atmega88a)
-AM_CONDITIONAL(HAS_atmega88a, test "x$HAS_atmega88a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega88p)
-AM_CONDITIONAL(HAS_atmega88p, test "x$HAS_atmega88p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega88pa)
-AM_CONDITIONAL(HAS_atmega88pa, test "x$HAS_atmega88pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega88pb)
-AM_CONDITIONAL(HAS_atmega88pb, test "x$HAS_atmega88pb" = "xyes")
-
-CHECK_AVR_DEVICE(atmega8hva)
-AM_CONDITIONAL(HAS_atmega8hva, test "x$HAS_atmega8hva" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm1)
-AM_CONDITIONAL(HAS_at90pwm1, test "x$HAS_at90pwm1" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm2)
-AM_CONDITIONAL(HAS_at90pwm2, test "x$HAS_at90pwm2" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm2b)
-AM_CONDITIONAL(HAS_at90pwm2b, test "x$HAS_at90pwm2b" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm3)
-AM_CONDITIONAL(HAS_at90pwm3, test "x$HAS_at90pwm3" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm3b)
-AM_CONDITIONAL(HAS_at90pwm3b, test "x$HAS_at90pwm3b" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm81)
-AM_CONDITIONAL(HAS_at90pwm81, test "x$HAS_at90pwm81" = "xyes")
-
-
-# avr5
-AM_CONDITIONAL(HAS_avr5, true)
-
-CHECK_AVR_DEVICE(at90can32)
-AM_CONDITIONAL(HAS_at90can32, test "x$HAS_at90can32" = "xyes")
-
-CHECK_AVR_DEVICE(at90can64)
-AM_CONDITIONAL(HAS_at90can64, test "x$HAS_at90can64" = "xyes")
-
-CHECK_AVR_DEVICE(at90scr100)
-AM_CONDITIONAL(HAS_at90scr100, test "x$HAS_at90scr100" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb646)
-AM_CONDITIONAL(HAS_at90usb646, test "x$HAS_at90usb646" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb647)
-AM_CONDITIONAL(HAS_at90usb647, test "x$HAS_at90usb647" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm316)
-AM_CONDITIONAL(HAS_at90pwm316, test "x$HAS_at90pwm316" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm216)
-AM_CONDITIONAL(HAS_at90pwm216, test "x$HAS_at90pwm216" = "xyes")
-
-CHECK_AVR_DEVICE(at90pwm161)
-AM_CONDITIONAL(HAS_at90pwm161, test "x$HAS_at90pwm161" = "xyes")
-
-CHECK_AVR_DEVICE(at94k)
-AM_CONDITIONAL(HAS_at94k, test "x$HAS_at94k" = "xyes")
-
-CHECK_AVR_DEVICE(ata5702m322)
-AM_CONDITIONAL(HAS_ata5702m322, test "x$HAS_ata5702m322" = "xyes")
-
-CHECK_AVR_DEVICE(ata5782)
-AM_CONDITIONAL(HAS_ata5782, test "x$HAS_ata5782" = "xyes")
-
-CHECK_AVR_DEVICE(ata5790)
-AM_CONDITIONAL(HAS_ata5790, test "x$HAS_ata5790" = "xyes")
-
-CHECK_AVR_DEVICE(ata5790n)
-AM_CONDITIONAL(HAS_ata5790n, test "x$HAS_ata5790n" = "xyes")
-
-CHECK_AVR_DEVICE(ata5795)
-AM_CONDITIONAL(HAS_ata5795, test "x$HAS_ata5795" = "xyes")
-
-CHECK_AVR_DEVICE(ata5831)
-AM_CONDITIONAL(HAS_ata5831, test "x$HAS_ata5831" = "xyes")
-
-CHECK_AVR_DEVICE(ata6613c)
-AM_CONDITIONAL(HAS_ata6613c, test "x$HAS_ata6613c" = "xyes")
-
-CHECK_AVR_DEVICE(ata6614q)
-AM_CONDITIONAL(HAS_ata6614q, test "x$HAS_ata6614q" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16)
-AM_CONDITIONAL(HAS_atmega16, test "x$HAS_atmega16" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16a)
-AM_CONDITIONAL(HAS_atmega16a, test "x$HAS_atmega16a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega161)
-AM_CONDITIONAL(HAS_atmega161, test "x$HAS_atmega161" = "xyes")
-
-CHECK_AVR_DEVICE(atmega162)
-AM_CONDITIONAL(HAS_atmega162, test "x$HAS_atmega162" = "xyes")
-
-CHECK_AVR_DEVICE(atmega163)
-AM_CONDITIONAL(HAS_atmega163, test "x$HAS_atmega163" = "xyes")
-
-CHECK_AVR_DEVICE(atmega164a)
-AM_CONDITIONAL(HAS_atmega164a, test "x$HAS_atmega164a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega164p)
-AM_CONDITIONAL(HAS_atmega164p, test "x$HAS_atmega164p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega164pa)
-AM_CONDITIONAL(HAS_atmega164pa, test "x$HAS_atmega164pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega165)
-AM_CONDITIONAL(HAS_atmega165, test "x$HAS_atmega165" = "xyes")
-
-CHECK_AVR_DEVICE(atmega165a)
-AM_CONDITIONAL(HAS_atmega165a, test "x$HAS_atmega165a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega165p)
-AM_CONDITIONAL(HAS_atmega165p, test "x$HAS_atmega165p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega165pa)
-AM_CONDITIONAL(HAS_atmega165pa, test "x$HAS_atmega165pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega168)
-AM_CONDITIONAL(HAS_atmega168, test "x$HAS_atmega168" = "xyes")
-
-CHECK_AVR_DEVICE(atmega168a)
-AM_CONDITIONAL(HAS_atmega168a, test "x$HAS_atmega168a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega168p)
-AM_CONDITIONAL(HAS_atmega168p, test "x$HAS_atmega168p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega168pa)
-AM_CONDITIONAL(HAS_atmega168pa, test "x$HAS_atmega168pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega169)
-AM_CONDITIONAL(HAS_atmega169, test "x$HAS_atmega169" = "xyes")
-
-CHECK_AVR_DEVICE(atmega169a)
-AM_CONDITIONAL(HAS_atmega169a, test "x$HAS_atmega169a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega169p)
-AM_CONDITIONAL(HAS_atmega169p, test "x$HAS_atmega169p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega169pa)
-AM_CONDITIONAL(HAS_atmega169pa, test "x$HAS_atmega169pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16hva)
-AM_CONDITIONAL(HAS_atmega16hva, test "x$HAS_atmega16hva" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16hva2)
-AM_CONDITIONAL(HAS_atmega16hva2, test "x$HAS_atmega16hva2" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16hvb)
-AM_CONDITIONAL(HAS_atmega16hvb, test "x$HAS_atmega16hvb" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16hvbrevb)
-AM_CONDITIONAL(HAS_atmega16hvbrevb, test "x$HAS_atmega16hvbrevb" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16m1)
-AM_CONDITIONAL(HAS_atmega16m1, test "x$HAS_atmega16m1" = "xyes")
-
-CHECK_AVR_DEVICE(atmega16u4)
-AM_CONDITIONAL(HAS_atmega16u4, test "x$HAS_atmega16u4" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32)
-AM_CONDITIONAL(HAS_atmega32, test "x$HAS_atmega32" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32a)
-AM_CONDITIONAL(HAS_atmega32a, test "x$HAS_atmega32a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega323)
-AM_CONDITIONAL(HAS_atmega323, test "x$HAS_atmega323" = "xyes")
-
-CHECK_AVR_DEVICE(atmega324a)
-AM_CONDITIONAL(HAS_atmega324a, test "x$HAS_atmega324a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega324p)
-AM_CONDITIONAL(HAS_atmega324p, test "x$HAS_atmega324p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega324pa)
-AM_CONDITIONAL(HAS_atmega324pa, test "x$HAS_atmega324pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega325)
-AM_CONDITIONAL(HAS_atmega325, test "x$HAS_atmega325" = "xyes")
-
-CHECK_AVR_DEVICE(atmega325a)
-AM_CONDITIONAL(HAS_atmega325a, test "x$HAS_atmega325a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega325p)
-AM_CONDITIONAL(HAS_atmega325p, test "x$HAS_atmega325p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega325pa)
-AM_CONDITIONAL(HAS_atmega325pa, test "x$HAS_atmega325pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3250)
-AM_CONDITIONAL(HAS_atmega3250, test "x$HAS_atmega3250" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3250a)
-AM_CONDITIONAL(HAS_atmega3250a, test "x$HAS_atmega3250a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3250p)
-AM_CONDITIONAL(HAS_atmega3250p, test "x$HAS_atmega3250p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3250pa)
-AM_CONDITIONAL(HAS_atmega3250pa, test "x$HAS_atmega3250pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega328)
-AM_CONDITIONAL(HAS_atmega328, test "x$HAS_atmega328" = "xyes")
-
-CHECK_AVR_DEVICE(atmega328p)
-AM_CONDITIONAL(HAS_atmega328p, test "x$HAS_atmega328p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega329)
-AM_CONDITIONAL(HAS_atmega329, test "x$HAS_atmega329" = "xyes")
-
-CHECK_AVR_DEVICE(atmega329a)
-AM_CONDITIONAL(HAS_atmega329a, test "x$HAS_atmega329a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega329p)
-AM_CONDITIONAL(HAS_atmega329p, test "x$HAS_atmega329p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega329pa)
-AM_CONDITIONAL(HAS_atmega329pa, test "x$HAS_atmega329pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3290)
-AM_CONDITIONAL(HAS_atmega3290, test "x$HAS_atmega3290" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3290a)
-AM_CONDITIONAL(HAS_atmega3290a, test "x$HAS_atmega3290a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3290p)
-AM_CONDITIONAL(HAS_atmega3290p, test "x$HAS_atmega3290p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega3290pa)
-AM_CONDITIONAL(HAS_atmega3290pa, test "x$HAS_atmega3290pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32c1)
-AM_CONDITIONAL(HAS_atmega32c1, test "x$HAS_atmega32c1" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32hvb)
-AM_CONDITIONAL(HAS_atmega32hvb, test "x$HAS_atmega32hvb" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32hvbrevb)
-AM_CONDITIONAL(HAS_atmega32hvbrevb, test "x$HAS_atmega32hvbrevb" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32m1)
-AM_CONDITIONAL(HAS_atmega32m1, test "x$HAS_atmega32m1" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32u4)
-AM_CONDITIONAL(HAS_atmega32u4, test "x$HAS_atmega32u4" = "xyes")
-
-CHECK_AVR_DEVICE(atmega32u6)
-AM_CONDITIONAL(HAS_atmega32u6, test "x$HAS_atmega32u6" = "xyes")
-
-CHECK_AVR_DEVICE(atmega406)
-AM_CONDITIONAL(HAS_atmega406, test "x$HAS_atmega406" = "xyes")
-
-CHECK_AVR_DEVICE(atmega644rfr2)
-AM_CONDITIONAL(HAS_atmega644rfr2, test "x$HAS_atmega644rfr2" = "xyes")
-
-CHECK_AVR_DEVICE(atmega64rfr2)
-AM_CONDITIONAL(HAS_atmega64rfr2, test "x$HAS_atmega64rfr2" = "xyes")
-
-CHECK_AVR_DEVICE(atmega64)
-AM_CONDITIONAL(HAS_atmega64, test "x$HAS_atmega64" = "xyes")
-
-CHECK_AVR_DEVICE(atmega64a)
-AM_CONDITIONAL(HAS_atmega64a, test "x$HAS_atmega64a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega640)
-AM_CONDITIONAL(HAS_atmega640, test "x$HAS_atmega640" = "xyes")
-
-CHECK_AVR_DEVICE(atmega644)
-AM_CONDITIONAL(HAS_atmega644, test "x$HAS_atmega644" = "xyes")
-
-CHECK_AVR_DEVICE(atmega644a)
-AM_CONDITIONAL(HAS_atmega644a, test "x$HAS_atmega644a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega644p)
-AM_CONDITIONAL(HAS_atmega644p, test "x$HAS_atmega644p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega644pa)
-AM_CONDITIONAL(HAS_atmega644pa, test "x$HAS_atmega644pa" = "xyes")
-
-CHECK_AVR_DEVICE(atmega645)
-AM_CONDITIONAL(HAS_atmega645, test "x$HAS_atmega645" = "xyes")
-
-CHECK_AVR_DEVICE(atmega645a)
-AM_CONDITIONAL(HAS_atmega645a, test "x$HAS_atmega645a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega645p)
-AM_CONDITIONAL(HAS_atmega645p, test "x$HAS_atmega645p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6450)
-AM_CONDITIONAL(HAS_atmega6450, test "x$HAS_atmega6450" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6450a)
-AM_CONDITIONAL(HAS_atmega6450a, test "x$HAS_atmega6450a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6450p)
-AM_CONDITIONAL(HAS_atmega6450p, test "x$HAS_atmega6450p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega649)
-AM_CONDITIONAL(HAS_atmega649, test "x$HAS_atmega649" = "xyes")
-
-CHECK_AVR_DEVICE(atmega649a)
-AM_CONDITIONAL(HAS_atmega649a, test "x$HAS_atmega649a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega649p)
-AM_CONDITIONAL(HAS_atmega649p, test "x$HAS_atmega649p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6490)
-AM_CONDITIONAL(HAS_atmega6490, test "x$HAS_atmega6490" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6490a)
-AM_CONDITIONAL(HAS_atmega6490a, test "x$HAS_atmega6490a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega6490p)
-AM_CONDITIONAL(HAS_atmega6490p, test "x$HAS_atmega6490p" = "xyes")
-
-CHECK_AVR_DEVICE(atmega64c1)
-AM_CONDITIONAL(HAS_atmega64c1, test "x$HAS_atmega64c1" = "xyes")
-
-CHECK_AVR_DEVICE(atmega64hve)
-AM_CONDITIONAL(HAS_atmega64hve, test "x$HAS_atmega64hve" = "xyes")
-
-CHECK_AVR_DEVICE(atmega64hve2)
-AM_CONDITIONAL(HAS_atmega64hve2, test "x$HAS_atmega64hve2" = "xyes")
-
-CHECK_AVR_DEVICE(atmega64m1)
-AM_CONDITIONAL(HAS_atmega64m1, test "x$HAS_atmega64m1" = "xyes")
-
-CHECK_AVR_DEVICE(atmega128rfa1)
-AM_CONDITIONAL(HAS_atmega128rfa1, test "x$HAS_atmega128rfa1" = "xyes")
-
-CHECK_AVR_DEVICE(m3000)
-AM_CONDITIONAL(HAS_m3000, test "x$HAS_m3000" = "xyes")
-
-
-
-#avr51
-CHECK_AVR_DEVICE(avr51)
-AM_CONDITIONAL(HAS_avr51, test "x$HAS_avr51" = "xyes")
-
-AM_CONDITIONAL(HAS_atmega128, true)
-
-CHECK_AVR_DEVICE(atmega128a)
-AM_CONDITIONAL(HAS_atmega128a, test "x$HAS_atmega128a" = "xyes")
-
-CHECK_AVR_DEVICE(atmega1280)
-AM_CONDITIONAL(HAS_atmega1280, test "x$HAS_atmega1280" = "xyes")
-
-CHECK_AVR_DEVICE(atmega1281)
-AM_CONDITIONAL(HAS_atmega1281, test "x$HAS_atmega1281" = "xyes")
-
-CHECK_AVR_DEVICE(atmega1284)
-AM_CONDITIONAL(HAS_atmega1284, test "x$HAS_atmega1284" = "xyes")
-
-CHECK_AVR_DEVICE(atmega1284p)
-AM_CONDITIONAL(HAS_atmega1284p, test "x$HAS_atmega1284p" = "xyes")
-
-CHECK_AVR_DEVICE(at90can128)
-AM_CONDITIONAL(HAS_at90can128, test "x$HAS_at90can128" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb1286)
-AM_CONDITIONAL(HAS_at90usb1286, test "x$HAS_at90usb1286" = "xyes")
-
-CHECK_AVR_DEVICE(at90usb1287)
-AM_CONDITIONAL(HAS_at90usb1287, test "x$HAS_at90usb1287" = "xyes")
-
-CHECK_AVR_DEVICE(atmega1284rfr2)
-AM_CONDITIONAL(HAS_atmega1284rfr2, test "x$HAS_atmega1284rfr2" = "xyes")
-
-CHECK_AVR_DEVICE(atmega128rfr2)
-AM_CONDITIONAL(HAS_atmega128rfr2, test "x$HAS_atmega128rfr2" = "xyes")
-
-
-# avr6
-CHECK_AVR_DEVICE(avr6)
-AM_CONDITIONAL(HAS_avr6, test "x$HAS_avr6" = "xyes")
-
-CHECK_AVR_DEVICE(atmega2560)
-AM_CONDITIONAL(HAS_atmega2560, test "x$HAS_atmega2560" = "xyes")
-
-CHECK_AVR_DEVICE(atmega2561)
-AM_CONDITIONAL(HAS_atmega2561, test "x$HAS_atmega2561" = "xyes")
-
-CHECK_AVR_DEVICE(atmega2564rfr2)
-AM_CONDITIONAL(HAS_atmega2564rfr2, test "x$HAS_atmega2564rfr2" = "xyes")
-
-CHECK_AVR_DEVICE(atmega256rfr2)
-AM_CONDITIONAL(HAS_atmega256rfr2, test "x$HAS_atmega256rfr2" = "xyes")
-
-
-# avrxmega2
-CHECK_AVR_DEVICE(avrxmega2)
-AM_CONDITIONAL(HAS_avrxmega2, test "x$HAS_avrxmega2" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega8e5)
-AM_CONDITIONAL(HAS_atxmega8e5, test "x$HAS_atxmega8e5" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega16a4)
-AM_CONDITIONAL(HAS_atxmega16a4, test "x$HAS_atxmega16a4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega16a4u)
-AM_CONDITIONAL(HAS_atxmega16a4u, test "x$HAS_atxmega16a4u" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega16c4)
-AM_CONDITIONAL(HAS_atxmega16c4, test "x$HAS_atxmega16c4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega16d4)
-AM_CONDITIONAL(HAS_atxmega16d4, test "x$HAS_atxmega16d4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega32a4)
-AM_CONDITIONAL(HAS_atxmega32a4, test "x$HAS_atxmega32a4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega32a4u)
-AM_CONDITIONAL(HAS_atxmega32a4u, test "x$HAS_atxmega32a4u" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega32c3)
-AM_CONDITIONAL(HAS_atxmega32c3, test "x$HAS_atxmega32c3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega32c4)
-AM_CONDITIONAL(HAS_atxmega32c4, test "x$HAS_atxmega32c4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega32d3)
-AM_CONDITIONAL(HAS_atxmega32d3, test "x$HAS_atxmega32d3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega32d4)
-AM_CONDITIONAL(HAS_atxmega32d4, test "x$HAS_atxmega32d4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega32e5)
-AM_CONDITIONAL(HAS_atxmega32e5, test "x$HAS_atxmega32e5" = "xyes")
-
-
-# avrxmega3
-CHECK_AVR_DEVICE(avrxmega3)
-AM_CONDITIONAL(HAS_avrxmega3, test "x$HAS_avrxmega3" = "xyes")
-
-
-# avrxmega4
-CHECK_AVR_DEVICE(avrxmega4)
-AM_CONDITIONAL(HAS_avrxmega4, test "x$HAS_avrxmega4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64a3)
-AM_CONDITIONAL(HAS_atxmega64a3, test "x$HAS_atxmega64a3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64a3u)
-AM_CONDITIONAL(HAS_atxmega64a3u, test "x$HAS_atxmega64a3u" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64a4u)
-AM_CONDITIONAL(HAS_atxmega64a4u, test "x$HAS_atxmega64a4u" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64b1)
-AM_CONDITIONAL(HAS_atxmega64b1, test "x$HAS_atxmega64b1" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64b3)
-AM_CONDITIONAL(HAS_atxmega64b3, test "x$HAS_atxmega64b3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64c3)
-AM_CONDITIONAL(HAS_atxmega64c3, test "x$HAS_atxmega64c3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64d3)
-AM_CONDITIONAL(HAS_atxmega64d3, test "x$HAS_atxmega64d3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64d4)
-AM_CONDITIONAL(HAS_atxmega64d4, test "x$HAS_atxmega64d4" = "xyes")
-
-
-# avrxmega5
-CHECK_AVR_DEVICE(avrxmega5)
-AM_CONDITIONAL(HAS_avrxmega5, test "x$HAS_avrxmega5" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64a1)
-AM_CONDITIONAL(HAS_atxmega64a1, test "x$HAS_atxmega64a1" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega64a1u)
-AM_CONDITIONAL(HAS_atxmega64a1u, test "x$HAS_atxmega64a1u" = "xyes")
-
-
-# avrxmega6
-CHECK_AVR_DEVICE(avrxmega6)
-AM_CONDITIONAL(HAS_avrxmega6, test "x$HAS_avrxmega6" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128a3)
-AM_CONDITIONAL(HAS_atxmega128a3, test "x$HAS_atxmega128a3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128a3u)
-AM_CONDITIONAL(HAS_atxmega128a3u, test "x$HAS_atxmega128a3u" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128b1)
-AM_CONDITIONAL(HAS_atxmega128b1, test "x$HAS_atxmega128b1" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128b3)
-AM_CONDITIONAL(HAS_atxmega128b3, test "x$HAS_atxmega128b3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128c3)
-AM_CONDITIONAL(HAS_atxmega128c3, test "x$HAS_atxmega128c3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128d3)
-AM_CONDITIONAL(HAS_atxmega128d3, test "x$HAS_atxmega128d3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128d4)
-AM_CONDITIONAL(HAS_atxmega128d4, test "x$HAS_atxmega128d4" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega192a3)
-AM_CONDITIONAL(HAS_atxmega192a3, test "x$HAS_atxmega192a3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega192a3u)
-AM_CONDITIONAL(HAS_atxmega192a3u, test "x$HAS_atxmega192a3u" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega192c3)
-AM_CONDITIONAL(HAS_atxmega192c3, test "x$HAS_atxmega192c3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega192d3)
-AM_CONDITIONAL(HAS_atxmega192d3, test "x$HAS_atxmega192d3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega256a3)
-AM_CONDITIONAL(HAS_atxmega256a3, test "x$HAS_atxmega256a3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega256a3u)
-AM_CONDITIONAL(HAS_atxmega256a3u, test "x$HAS_atxmega256a3u" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega256a3b)
-AM_CONDITIONAL(HAS_atxmega256a3b, test "x$HAS_atxmega256a3b" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega256a3bu)
-AM_CONDITIONAL(HAS_atxmega256a3bu, test "x$HAS_atxmega256a3bu" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega256c3)
-AM_CONDITIONAL(HAS_atxmega256c3, test "x$HAS_atxmega256c3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega256d3)
-AM_CONDITIONAL(HAS_atxmega256d3, test "x$HAS_atxmega256d3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega384c3)
-AM_CONDITIONAL(HAS_atxmega384c3, test "x$HAS_atxmega384c3" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega384d3)
-AM_CONDITIONAL(HAS_atxmega384d3, test "x$HAS_atxmega384d3" = "xyes")
-
-# avrxmega7
-CHECK_AVR_DEVICE(avrxmega7)
-AM_CONDITIONAL(HAS_avrxmega7, test "x$HAS_avrxmega7" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128a1)
-AM_CONDITIONAL(HAS_atxmega128a1, test "x$HAS_atxmega128a1" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128a1u)
-AM_CONDITIONAL(HAS_atxmega128a1u, test "x$HAS_atxmega128a1u" = "xyes")
-
-CHECK_AVR_DEVICE(atxmega128a4u)
-AM_CONDITIONAL(HAS_atxmega128a4u, test "x$HAS_atxmega128a4u" = "xyes")
-
-
-# avrtiny
-CHECK_AVR_DEVICE(avrtiny)
-AM_CONDITIONAL(HAS_avrtiny, test "x$HAS_avrtiny" = "xyes")
-
-CHECK_AVR_DEVICE(attiny4)
-AM_CONDITIONAL(HAS_attiny4, test "x$HAS_attiny4" = "xyes")
-
-CHECK_AVR_DEVICE(attiny5)
-AM_CONDITIONAL(HAS_attiny5, test "x$HAS_attiny5" = "xyes")
-
-CHECK_AVR_DEVICE(attiny9)
-AM_CONDITIONAL(HAS_attiny9, test "x$HAS_attiny9" = "xyes")
-
-CHECK_AVR_DEVICE(attiny10)
-AM_CONDITIONAL(HAS_attiny10, test "x$HAS_attiny10" = "xyes")
-
-CHECK_AVR_DEVICE(attiny20)
-AM_CONDITIONAL(HAS_attiny20, test "x$HAS_attiny20" = "xyes")
-
-CHECK_AVR_DEVICE(attiny40)
-AM_CONDITIONAL(HAS_attiny40, test "x$HAS_attiny40" = "xyes")
-
-
-
-
-# Generate all files from *.in sources.
-
-AC_CONFIG_FILES([
- Makefile
- avr-libc.spec
- avr/Makefile
- avr/lib/Makefile
- common/Makefile
- crt1/Makefile
- crt1/iosym/Makefile
- doc/Makefile
- doc/api/Makefile
- doc/examples/Makefile
- include/Makefile
- include/avr/Makefile
- include/avr/builtins.h
- include/compat/Makefile
- include/util/Makefile
- include/util/delay.h
- include/sys/Makefile
- libc/Makefile
- libc/misc/Makefile
- libc/pmstring/Makefile
- libc/stdio/Makefile
- libc/stdlib/Makefile
- libc/string/Makefile
- libc/time/Makefile
- libm/Makefile
- libm/fplib/Makefile
- scripts/Makefile
- devtools/Makefile
-])
-
-#avr1 and avr2
-AC_CONFIG_FILES([
- avr/lib/avr2/Makefile
- avr/lib/avr2/at90s1200/Makefile
- avr/lib/avr2/at90s4414/Makefile
- avr/lib/avr2/at90s4434/Makefile
- avr/lib/avr2/at90s8515/Makefile
- avr/lib/avr2/at90c8534/Makefile
- avr/lib/avr2/at90s8535/Makefile
- avr/lib/avr2/attiny11/Makefile
- avr/lib/avr2/attiny12/Makefile
- avr/lib/avr2/attiny15/Makefile
- avr/lib/avr2/attiny28/Makefile
-])
-
-#avr2/tiny-stack
-AC_CONFIG_FILES([
- avr/lib/avr2/tiny-stack/Makefile
- avr/lib/avr2/tiny-stack/at90s2313/Makefile
- avr/lib/avr2/tiny-stack/at90s2323/Makefile
- avr/lib/avr2/tiny-stack/at90s2333/Makefile
- avr/lib/avr2/tiny-stack/at90s2343/Makefile
- avr/lib/avr2/tiny-stack/attiny22/Makefile
- avr/lib/avr2/tiny-stack/attiny26/Makefile
@@ Diff output truncated at 153600 characters. @@
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [avr-libc-commit] [2557] Release avr-libc 2.1.0,
j <=