文章 ID: 000081636 内容类型: 故障排除 上次审核日期: 2021 年 08 月 28 日

当我在代码中__attribute__(部分(".rwdata")时,为什么我的链接器脚本不包含在目标内存部分?

环境

  • 英特尔® Nios® II 处理器
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    Nios® II IDE 中的链接器不会自动将子程序放入内存中,而该内存不指定为 .text。

    为了将子程序包括在 .text(在此示例中,.rwdata)以外的特定内存部分中,执行以下操作:

    1. 定义此特定例程的自定义部分,例如:无效my_subroutine(空)__attribute__(部分(".usersection"));
    2. 打开位于您_syslib/调试/system_description 文件夹中的生成的.x 文件,并查找__ram_rwdata_end
    3. 将以下行添加到生成的.x 文件:


    .usersection:AT (LOADADDR (.rwdata) SIZEOF (.rwdata)

    {
    提供 (_alt_partition_usersection_start = 绝对 (.));
    *(.usersection .usersection.*)
    .= 对齐(4);
    提供 (_alt_partition_usersection_end = 绝对 (.));

    } >onchip_ram

    提供 (__flash_alt_partition_usersection_start = LOADADDR(.usersection));

    1. 修改 alt_load.c 以执行自定义部分复制操作。参见下文以供参考:

    外部无效__flash_alt_partition_usersection_start;
    外部无效_alt_partition_usersection_end;
    外部无效_alt_partition_usersection_start;

    /*

    * 复制 .usersection 部分。

    */
          
    alt_load_section (&__flash_alt_partition_usersection_start,
    &_alt_partition_usersection_start,
    &_alt_partition_usersection_end);

    相关产品

    本文适用于 1 产品

    英特尔® 可编程设备

    本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。