Dear All,
I'm trying to align an object at a 512 byte boundary using the following (fragment) in the linker file:
.usbram : { . = ALIGN (512); *(.bdts) . = ALIGN (0x4); } >> userram
This appears to work as I expected it to but produces the following warning message:
All segments to userram have to begin at address aligned to 512 Please add ".=ALIGN(512);" before every "} >> userram"
Is this message correct or spurious as I hope?
Using CW v10.1 on Win32 with a MCF51JM64 target device if thats relevent.
bye
Hello
I would need the whole .lcf file to check what is going on here.
I cannot analyze or reproduce anything with the fragment you have provided.
CrasyCat
I have the same issue.
.main_application_bss :
{
__START_SBSS = .;
*(.sbss)
*(SCOMMON)
__END_SBSS = .;
__START_BSS = .;
m52259unc_regabi.a(.bss)
mqx_regabi.a(.bss)
rtcs_regabi.a(.bss)
crc.c(.bss)
unc500_gpio5.c(.bss)
Flash_Upgrade_Task.c(.bss)
*(.bss)
*(COMMON)
. = ALIGN(0x20);
__END_BSS = .;
} >> ram
.kernel_data : AT(ADDR(.main_application_bss) + SIZEOF(.main_application_bss) )
{
___KERNEL_DATA_START = ALIGN(0x20);
}
.end_of_kernel_data :
{
___KERNEL_DATA_END = .;
} > end_of_kd
.boot
I dont see any issues with the load and everything seems to line up according to plan.
I get the warning message with the value of the ALIGN used in the .bss segment.
If I omit the ALIGN in the kernel data I dont get the message.