歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

uclinux-2008R1-RC8(bf561)到VDSP5的移植(18):.init.text和.init.data

經過前述處理,VDSP提示錯誤:

[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)

在uclinux內核中.init.*段是放在數據段的後面的,這樣在系統啟動完成後,這一段內存空間將可以進行回收,如下所示:

___init_begin = .;

.init.text :
{
. = ALIGN(PAGE_SIZE);
__sinittext = .;
*(.init.text)
__einittext = .;
}
.init.data :
{
. = ALIGN(16);
*(.init.data)
}

在這裡用了___init_begin來存儲初始化段的起始地址,但在符號定義只能放在段的內部,因此在LDF文件中相應修改:

.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

Copyright © Linux教程網 All Rights Reserved