描述
我的启动映像包括Zynq FSBL和用户应用程序。
在FSBL之后,用户应用程序似乎挂起了。
当我查看CPU寄存器时,我可以看到数据中止正在发生。
解
出现此问题是由于分区标头中的加载地址不正确。
这是启动映像的分区标头。
0xC80 0xCBF:FSBL的分区标头0xCC0 0xCFF:用户应用程序第一部分的分区标头0xD00 0xD3F:用户应用程序第二部分的分区标头
第三个分区中的加载地址不正确。
下面是用户应用程序精灵的节头。
有2个部分。
程序标题:LOAD off 0x00000074 vaddr 0x0fc00000 paddr 0x0fc00000 align 2 ** 2filesz 0x000031e8 memsz 0x000031f0标志rwxLOAD off 0x0000325c vaddr 0x01800000 paddr 0x0fc031f0 align 2 ** 2filesz 0x00073ef0 memsz 0x0008db70 flags rw-
对于第二部分,加载地址应为“paddr 0x0fc031f0”,但在分区标头中使用“vaddr 0x01800000”。
如果加载地址更正为0x0fc031f0,则可以正确加载用户应用程序。
此问题已在Vivado 2014.3中修复。
对于IDS用户,有一个针对IDS 14.7的补丁。
将相应的平台二进制文件/可执行文件解压缩并复制到相应的安装路径:
<安装文件夹> \ 14.7 \ ISE_DS \ ISE \ bin \ <platform> \
附件
相关附件
名称 | 文件大小 | 文件类型 |
---|---|---|
14.7_bootgen_patch.zip | 1 MB | 压缩 |
没有回复内容