Nios® II IDE 中的链接器不会自动将子程序放入内存中,而该内存不指定为 .text。
为了将子程序包括在 .text(在此示例中,.rwdata)以外的特定内存部分中,执行以下操作:
- 定义此特定例程的自定义部分,例如:无效my_subroutine(空)__attribute__(部分(".usersection"));
- 打开位于您_syslib/调试/system_description 文件夹中的生成的.x 文件,并查找__ram_rwdata_end
- 将以下行添加到生成的.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));
- 修改 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);