There are several link errors after adding Head.s:
[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
'__bss_start [___bss_start]' referenced from 'corea.dlb[head.doj]'
'__bss_stop [___bss_stop]' referenced from 'corea.dlb[head.doj]'
Where __bss_start and __bss_stop are defined in Vmlinus.lds:
.bss :
{
. = ALIGN(4);
___bss_start = .;
*(.bss .bss.*)
*(COMMON)
. = ALIGN(4);
___bss_stop = .;
__end = .;
}
It is an integer that points to the beginning of the. BSS segment, and we need to modify the corresponding definition in LDF:
bsz_sdram ZERO_INIT
{
INPUT_SECTION_ALIGN(4)
. = (. + 3) / 4 * 4;
___bss_start = .;
INPUT_SECTIONS($OBJECTS_CORE_A(sdram_bsz) $LIBRARIES_CORE_A(sdram_bsz))
INPUT_SECTIONS($LIBRARIES_CORE_A(.bss .bss.*))
INPUT_SECTIONS($LIBRARIES_CORE_A(COMMON))
INPUT_SECTION_ALIGN(4)
. = (. + 3) / 4 * 4;
___bss_stop = .;
__end = .;
} > MEM_SDRAM