portBYTE_ALIGNMENT_MASK

Posted by kenmosher on October 10, 2014

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

Posted by markwrichardson on October 10, 2014

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

~~~~~~