portBYTE_ALIGNMENT_MASK

kenmosher wrote on Friday, 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: portBYTE_ALIGNMENT_MASK undeclared (first use in this function)”

I can’t for the life of me find where portBYTE_ALIGNMENT_MASK 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!

markwrichardson wrote on Friday, 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 portBYTE_ALIGNMENT_MASK
	#error "Invalid portBYTE_ALIGNMENT definition"
#endif