2
鏈接描述文件中的位置計數器出現問題。不知道這是一個錯誤還是我期望輸出錯誤。鏈接描述文件中的位置計數器(。)更新
我有一個BSS部分
/* Program bss, zeroed out during init. */
.bss :
{
. = ALIGN(4);
__bss_start = .;
*(.bss*)
*(.COMMON*)
. = ALIGN(4);
__bss_end = .;
__heap_start = .;
} >sram_u
__bss_size = SIZEOF(.bss);
我的問題是(__bss_end - __bss_start)不等於__bss_size。如果我將__bss_end分配給.bss節外部,我會得到期望的值。如果我用elfread檢查部分標題,我會得到預期的.bss大小。
我使用的接頭爲:
GNU ld (GNU Tools for ARM Embedded Processors) 2.23.2.20131129
Copyright 2012 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
和GCC
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.8.3 20131129 (release)
[ARM/embedded-4_8-branch revision 205641]
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
所以現在的問題是,如果位置計數器應節定義中被更新或我只是(。)使用它錯了?
PS:希望我使用正確的術語...