Bug 3256 - PROGMEM_PAGE_SIZE define missing for atxmega64a3u
: PROGMEM_PAGE_SIZE define missing for atxmega64a3u
Status: NEW
Product: Atmel Software Framework
xmega
: v3.4.x
: Other Standalone
: normal priority major (vote)
: ---
Assigned To: ASF Maintainers
:
:
:
:
  Show dependency treegraph
 
Reported: 2013-11-03 03:36 CET by Anthony
Modified: 2013-11-03 04:09 CET (History)
1 user (show)

See Also:
Public Description:
Development Branch:
Whiteboard:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anthony 2013-11-03 03:36:44 CET
The PROGMEM_PAGE_SIZE define is missing from the iox64a3u.h file. A very
similar MCU, atxmega64a3, has all of the same defines with the addition of the
PROGMEM_PAGE_SIZE at basically the same logical place in its own header file.
My bootloader fails to compile because this define is missing, so I know it
should be there because none of the other Xmegas that I've tried have failed at
this point.

From iox64a3.h:

/* ========== Constants ========== */

#define PROGMEM_START     (0x0000)
#define PROGMEM_SIZE      (69632)
#define PROGMEM_PAGE_SIZE (256)
#define PROGMEM_END       (PROGMEM_START + PROGMEM_SIZE - 1)


From iox64a3u.h:

/* ========== Constants ========== */

#define PROGMEM_START     (0x0000)
#define PROGMEM_SIZE      (69632)
#define PROGMEM_END       (PROGMEM_START + PROGMEM_SIZE - 1)


Adding this to my .c file fixes the issue and leads to successful compilation:

#define PROGMEM_PAGE_SIZE (256)
Comment 1 Anthony 2013-11-03 04:04:26 CET
Actually, many other headers are missing the define as well. Here's the list of
Xmegas that don't have PROGMEM_PAGE_SIZE defined:

iox128a1u.h
iox128a3u.h
iox128a4u.h
iox128b1.h
iox128b3.h
iox128c3.h
iox128d4.h
iox16a4u.h
iox16c4.h
iox16e5.h
iox192a3u.h
iox192c3.h
iox256a3bu.h
iox256a3u.h
iox256c3.h
iox32a4u.h
iox32c3.h
iox32c4.h
iox32d3.h
iox32e5.h
iox384c3.h
iox384d3.h
iox64a1u.h
iox64a3u.h
iox64a4u.h
iox64b1.h
iox64b3.h
iox64c3.h
iox64d4.h
iox8e5.h


This is my toolchain: C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8
GCC\Native\3.4.2.1002\avr8-gnu-toolchain\avr\include\avr


Please let me know if this bug isn't filed in the right place. I wasn't sure
how to select the toolchain instead of the framework version.
Comment 2 Anthony 2013-11-03 04:09:40 CET
One additional piece of information related to this:

In the files that have the PROGMEM_PAGE_SIZE define included, the SPM_PAGESIZE
define uses it as follows:

#define SPM_PAGESIZE PROGMEM_PAGE_SIZE


In the header files missing the PROGMEM_PAGE_SIZE define, the value of the
SPM_PAGESIZE define is set directly:

#define SPM_PAGESIZE 256


I'm not sure why this would be the intended behavior, so I'm guessing this was
an oversight or mistake.