portBYTE_ALIGNMENT_MASK

Hopefully this is a “forehead slap” type of question… We’ve been moving an ARM7 project using FreeRTOS 5.4.0 that was previously on CrossWorks 2.0 to a new repository and build environment using CrossWorks 2.1.1 starting with a new Project template and imported everything. We’ve sorted through a bunch of stuff with the includes for the project, setting ANSI checking to NO and arm-unknown-elf for the GCC Target. All compiles and then when it gets to heap_2.c in the linker we get

“error: portBYTEALIGNMENTMASK undeclared (first use in this function)”

I can’t for the life of me find where portBYTEALIGNMENTMASK is declared, so I’m not sure if we are missing something or if I still have a path that’s not included in the project (most likely). I have found portBYTE_ALIGNMENT in portmacro.h (which makes perfect sense). Once I get this to build cleanly and test out on the target, then I can introduce the next level of the port to get it up to a later version of FreeRTOS. Thanks for any insights!

portBYTE_ALIGNMENT_MASK

In my port I have a section in “portable.h” that decodes portBYTE_ALIGNMENT into a mask value. ~~~~~~

if portBYTE_ALIGNMENT == 8

#define portBYTE_ALIGNMENT_MASK ( 0x0007 )

endif

if portBYTE_ALIGNMENT == 4

#define portBYTE_ALIGNMENT_MASK ( 0x0003 )

endif

if portBYTE_ALIGNMENT == 2

#define portBYTE_ALIGNMENT_MASK ( 0x0001 )

endif

if portBYTE_ALIGNMENT == 1

#define portBYTE_ALIGNMENT_MASK ( 0x0000 )

endif

ifndef portBYTEALIGNMENTMASK

#error "Invalid portBYTE_ALIGNMENT definition"

endif

~~~~~~