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

spl_nand.c:36:未定义的参考 .elf'警告:忽略针对目标nios_output_memory_access的旧命令',在 config/nios/nios.c:2540

环境

BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

Nios® 处理器的 GNU 编译器中的此内部错误生成与以下类似的编译器消息:


arche_ds_01.c:在功能"dispatch"中:
arche_ds_01.c:876:st/st8d/st16d 的偏移量必须在 -1024 到 1023 之间:
(insn 106 1749 107(设置 (mem:QI (plus:SI (reg:SI 16 %l0)
(const_int -13476 [0xffffcb5c])0)
(reg:QI 2 %g2))1 {*movqi_internal} (nil)
(expr_list:REG_DEAD (reg:QI 2 %g2)
(expr_list:REG_DEAD (reg:SI 16 %l0)
(nil)))
arche_ds_01.c:876:config/nios/nios.c:2540 上的"nios_output_memory_access"内部编译器错误
请提交一份完整的错误报告。
有关说明,请参阅 。
在行 85 处激活。

解决方法是将本地变量的大小降低到 1024 字限制以下。 要做到这一点,在声明大型本地变量时,使用 alloca() 例程。

例如,而不是以下声明

char dummy_string[buffer_length];

使用此声明:

char* dummy_string = alloca(buffer_length);

相关产品

本文适用于 1 产品

英特尔® 可编程设备

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