ASF Bugzilla – Full Text Bug Listing
|Summary:||PROGMEM_PAGE_SIZE define missing for atxmega64a3u|
|Product:||Atmel Software Framework||Reporter:||Anthony <anthonyandriano>|
|Component:||xmega||Assignee:||ASF Maintainers <DL-Global-ASF-Maintainers>|
|Public Description:||Development Branch:|
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\22.214.171.1242\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.