After the above processing, VDSP prompts the error:
[Warning li2060] The following input section(s) that contain program code
and/or data have not been placed into the executable for processor 'p0'
as there are no relevant commands specified in the LDF:
corea.dlb[coreA.doj](.init.text)
In the Uclinux kernel. The init.* segment is placed behind the data segment so that the memory space can be recycled after the system is started, as follows:
___init_begin = .;
.init.text :
{
. = ALIGN(PAGE_SIZE);
__sinittext = .;
*(.init.text)
__einittext = .;
}
.init.data :
{
. = ALIGN(16);
*(.init.data)
}
Here ___init_begin is used to store the starting address of the initialization segment, but the symbol definition can only be placed inside the segment, so it is modified in the LDF file:
.init
{
___init_begin = .;
//.init.text
INPUT_SECTION_ALIGN(4096)
. = (. + 4095) / 4096 * 4096;
__sinittext = .;
INPUT_SECTIONS($LIBRARIES_CORE_A(.init.text))
__einittext = .;
//.init.data
INPUT_SECTION_ALIGN(16)
INPUT_SECTIONS($LIBRARIES_CORE_A(.init.data))
} > MEM_SDRAM