赛灵思
直播中

h1654155275.5916

7年用户 993经验值
私信 关注
[问答]

正确的iMPACT配置但是SDK配置不正确是为什么?

大家好。
所以我在JTAG链中有一个带有PROM和Spartan 6 LX45的定制PCB
我可以从iMPACT配置FPGA,完全没有问题。
下载的.bit文件完全是opperational。
该设计包含一个EDK Microblaze项目,因此我们使用SDK编写嵌入式C.当我以前使用Digilent Nexys3板时,我可以通过SDK编程FPGA(FPGA架构配置.bit和SDK .elf)并使用
micrlaze UART IPcore将microblaze STDIO输出到SDK终端窗口。
然而,SDK报告(一个相当模糊的错误),即:
无法下载位文件
无法使用比特流C对设备2进行编程:/ Users /.../ SDK / SDK_Workspace / XpsMBprjFlites_hw_platform_1 / download.bit
程序FPGA失败
由于这种模糊的错误,很难看出问题出在哪里。
我不认为这是配置文件(.bit),因为iMPACT可以配置这个没问题,适当的LED,扩展头信号和时钟都被激活。
这可能是关于微型BRAMs的程序问题吗?
我应该注意两个软件配置流之间的.bit文件完全相同,所以它必须是以下两者之一:
- SDK编程设置
- 链接器脚本,.elf编译设置等
现在.elf实际上是一个工作的.c文件,它是作为XUP教程的一部分开发的,在这种情况下通过UART对一些LED和STDIO输出进行通用闪存。
这在Digilent Nexys 3上运行正确,具有相同的Microblaze EDK设计。
有什么想法吗?
谢谢,艾德

回帖(3)

陈光琦

2020-5-29 17:04:21
解决了:
首先,我检查了XMP控制台终端,在这种情况下显示了更多细节“错误的设备”,因为Digilent使用LX16,很明显该项目选择了错误的.bit(无论是否成功导出到SDK
“)。
对此的解决方案是,尽管ISE / EDK通过比特流导出到SDK,但SDK本地将.bit文件命名为system.bit或download.bit。
在创建硬件平台规范时,您可以正确地获取EDKprj.xlm,但是我需要强制它获取正确的.bit文件,尽管.bmm文件很好。
完成后,我重新创建了BSP并使用此BSP和HPS文件重新编译了.elf。
现在这样做可以让FPGA配置继续进行,在工作台上.bit显然可以正确加载。
我希望这有助于其他人。
埃德
在原帖中查看解决方案
举报

陈光琦

2020-5-29 17:19:58
附加说明:
- .elf通过elfcheck没有任何问题,并在Digilent Nexys 3上正常运行
- 链接器脚本与EDK项目相同,与在Digilent Nexys 3上正确运行的相同
- 手动SDK JTAG设置: 
- PROM XCF16P IDcode 0xF5058093,JTAG IR长度= 16位 
- FPGA S5 LX45 IDcode 0x04008093,JTAG IR长度= 6位(DS表示0xX4008093,但此自动完成为0x0,但由于DS指示X为4位,可以忽略,我将它们设置为0)
然而,这也不起作用,返回与上面相同的错误。
谢谢。
埃德
举报

陈光琦

2020-5-29 17:28:45
解决了:
首先,我检查了XMP控制台终端,在这种情况下显示了更多细节“错误的设备”,因为Digilent使用LX16,很明显该项目选择了错误的.bit(无论是否成功导出到SDK
“)。
对此的解决方案是,尽管ISE / EDK通过比特流导出到SDK,但SDK本地将.bit文件命名为system.bit或download.bit。
在创建硬件平台规范时,您可以正确地获取EDKprj.xlm,但是我需要强制它获取正确的.bit文件,尽管.bmm文件很好。
完成后,我重新创建了BSP并使用此BSP和HPS文件重新编译了.elf。
现在这样做可以让FPGA配置继续进行,在工作台上.bit显然可以正确加载。
我希望这有助于其他人。
埃德
举报

更多回帖

发帖
×
20
完善资料,
赚取积分