Hi,
Since CW 10.1 should be GCC based, i thought that this should work:
void
FuncInRam(void) __attribute__ ((section(".data")));
int
main()
{
FuncInRam();
}
void
FuncInRam(void)
{
...
}
But it doesn't. First of all, i wonder why the compiler complains about __attribute__ line. Secondly both going through the MAP-file and a debug session, shows me that the function is actually placed in .text section.
I have tried what was surgested in this thread:
https://community.freescale.com/thread/89042
With the same result, but this time the compiler complains about the #pragma line.
I am using CW 10.1 for microcontrollers (windows hosted) Standard Edition.
Also, I am unable to activate the GCC extensions, through the compiler settings. It says it doesn't know the -gcc flag.
Any help is appreciated, thank you.
Solved! Go to Solution.
Further study at the infocenter and MCU_Kinetis_Compiler.pdf let me com to this solution:
#pragma define_section FUNCRAM ".data" far_abs RX
#pragma section FUNCRAM begin
void
FuncInRam(void)
{
...
}
#pragma section FUNCRAM end
int
user_main()
{
FuncInRam();
}
Further study at the infocenter and MCU_Kinetis_Compiler.pdf let me com to this solution:
#pragma define_section FUNCRAM ".data" far_abs RX
#pragma section FUNCRAM begin
void
FuncInRam(void)
{
...
}
#pragma section FUNCRAM end
int
user_main()
{
FuncInRam();
}
For the variables part, I ofcourse mean, how to place variables in custom defined sections.