I am building using the GNU toolchain for a BF518. I have a warning message that I do not understand enough to solve.
bfin-elf-ldr.exe: count is not 4 byte aligned (0x11E6 % 4 = 2)
bfin-elf-ldr.exe: going to pad the end with zeros, but you should fix this
It seems that I have not padded a section or something like that. Can anyone help me understand the issue better so I can resolve it.
Here is the LDF file:
/* GNU Linker File */
/* Created based on the default linker script for single core blackfin standalone executables */
MEMORY
{
MEM_L1_CODE : ORIGIN = 0xFFA00000, LENGTH = 0x7FFF
MEM_L1_CODE_CACHE : ORIGIN = 0xFFA10000, LENGTH = 0x3FFF
MEM_L1_SCRATCH : ORIGIN = 0xFFB00000, LENGTH = 0xFFF
MEM_L1_DATA_B : ORIGIN = 0xFF900000, LENGTH = 0x7FFF
MEM_L1_DATA_A : ORIGIN = 0xFF800000, LENGTH = 0x7FFF
MEM_SDRAM : ORIGIN = 0x00000004, LENGTH = 0xFFFFEC
MEM_L2 : ORIGIN = 0xFEB00000, LENGTH = 0x0
default : ORIGIN = 0x00000004, LENGTH = 0xFFFFEC
}
OUTPUT_FORMAT("elf32-bfin", "elf32-bfin", "elf32-bfin")
OUTPUT_ARCH(bfin)
ENTRY(__start)
SECTIONS
{
/* Read-only sections, merged into text segment: */
PROVIDE (__executable_start = 0x4); . = 0x4;
.init :
{
KEEP (*(.init))
*(program interrupts dmaDescriptors)
} >MEM_L1_CODE =0
.sdram.data :
{
. = 0x10000;
*(.sdram.data TASK_STACKS)
} >MEM_SDRAM =0
.l2 :
{
*(.l2 .l2.*)
} >MEM_L2 =0
.text :
{
*(.text .text.* .l1.text .l1.text.*)
KEEP (*(.text.*personality*))
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
} >MEM_SDRAM =0
.fini :
{
KEEP (*(.fini))
} >MEM_L1_CODE =0
.rodata :
{
*(.rodata .rodata.*)
} >MEM_SDRAM =0
.data :
{
*(.data .data.* .l1.data .l1.data.*)
KEEP (*(.*personality*))
} >MEM_SDRAM =0
.bss :
{
__bss_start = .;
*(.bss .bss.*)
*(COMMON)
__bss_end = .;
} >MEM_SDRAM =0
. = ALIGN(32 / 8);
. = ALIGN(32 / 8);
__end = .; PROVIDE (_end = .);
__stack_start = ORIGIN(MEM_L1_SCRATCH);
__stack_end = ORIGIN(MEM_L1_SCRATCH) + 0x200;
/DISCARD/ : { *(.note.GNU-stack) }
}