Hi,
Was wondering about a curious thing that the compiler does.
For the code
static void createX()
{
static char xxxx;
static uint8_t y;
printf("%c %c\r\n", y, xxxx);
}
I am getting the following lines in the memory map:
.bss._ZZL7createXvE4xxxx
0x200024c0 0x1
.bss._ZZL7createXvE11y
0x200024c1 0x1
If I change y to
static uint8_t y[1];
I am getting the following memory map:
.bss._ZZL7createXvE4xxxx
0x200024c0 0x1
*fill* 0x200024c1 0x3
.bss._ZZL7createXvE11y
0x200024c4 0x1
Is this a well known behaviour that GCC will always align the start address for
an array?
Thanks,
Oren