为什么为片上存储器生成的hex文件包含全零?-Altera-Intel社区-FPGA CPLD-ChipDebug

为什么为片上存储器生成的hex文件包含全零?

当尝试为具有片上存储器的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

请登录后发表评论

    没有回复内容