当尝试为具有片上存储器的SOPC Builder系统构建Nios®II应用软件项目时,您可能会遇到这样的问题,导致生成错误的hex文件,特别是如果您在设计中有多个片上存储器。这是因为Nios II SBT for Eclipse对您的具体目的一无所知,因此无法生成link.x以满足您的要求。
每个部分的加载内存地址(LMA)都会影响elf2hex命令的操作,因此解决方法是检查link.x并确保片上内存的LMA和虚拟内存地址(VMA)具有相同的价值。
例如,原始link.x的摘录可以如下所示:
.onchip_mem_1:AT(LOADADDR(.bss)+ SIZEOF(.bss))
{
PROVIDE(_alt_partition_onchip_mem_1_start = ABSOLUTE(。));
*(。onchip_mem_1。onchip_mem_1。*)
。 = ALIGN(4);
PROVIDE(_alt_partition_onchip_mem_1_end = ABSOLUTE(。));
}> onchip_mem_1
所需的修改是删除第一行中AT关键字后面的部分,该部分用于为.onchip_mem_1部分分配特定的LMA,如下所示:
.onchip_mem_1
{
PROVIDE(_alt_partition_onchip_mem_1_start = ABSOLUTE(。));
*(。onchip_mem_1。onchip_mem_1。*)
。 = ALIGN(4);
PROVIDE(_alt_partition_onchip_mem_1_end = ABSOLUTE(。));
}> onchip_mem_1
没有回复内容