【问题标题】:size of a input section GNU ld输入部分的大小 GNU ld
【发布时间】:2021-12-11 08:44:35
【问题描述】:

如何获得 ld 中输入节的大小?我会假设它只是SIZEOF(.section); 但是 ld 在尝试运行它时会出错。有什么办法可以做到这一点吗? .section 会像这样在 .asm 文件中定义

section .section
    mov al, 15

这是我目前拥有的链接器脚本:

SECTIONS {
    boot : {
        *( .boot );
        . += SECTOR_SIZE - SIZEOF( .boot_header );
        *( .boot_header );
    }
}

【问题讨论】:

    标签: linker ld


    【解决方案1】:

    SIZEOF 没有问题。

    刚刚测试:

      .data : 
      {
        . = ALIGN(4);
        _sdata = .;        /* create a global symbol at data start */
        *(.data)           /* .data sections */
        *(.data*)          /* .data* sections */
    
        . = ALIGN(4);
        _edata = .;        /* define a global symbol at data end */
      } >RAM AT> FLASH
      
        _datasize = SIZEOF(.data); 
    

    按预期工作。

    【讨论】:

    • 抱歉,我的沟通有误。我的意思是在文件中定义的部分(例如.asm)。我相应地调整了问题。
    • 您还需要在链接描述文件中定义它。你使用什么语言并不重要。可以是asm、C、fortran、ADA……
    猜你喜欢
    • 1970-01-01
    • 2011-02-10
    • 2018-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 2013-11-23
    • 2012-02-10
    相关资源
    最近更新 更多