FPGA Notes

Bootloader和SREC

0
阅读(3995)

在Xilinx Forum上有一则关于Bootloader的讨论,人们说为什么用了Bootloader以后interrupt就不起作用了呢?

很久之前回了贴,回头一看竟变成了热贴。跟人讨论了之后才发现我原来把EDK自带的bootloader和Xapp1053中的Bootloader搞混淆了。

还记得我在《跟着Xapp1053继续做》一文中种种Customize吗?在那时我就提过Xapp1053中的Bootloader是不能处理中断的,于是忙乎了老半天把中断的相关内容复制到BRAM中。

忙乎了老半天,发现标准的Bootloader其实并没有这个缺陷。

关键在于标准bootloader使用SREC保存ELF信息。而Xapp1053的实现则使用了二进制bin的方式。
SREC中同时包含地址信息和数据;
BIN文件中只有数据没有地址。

因此用标准bootloader解析SREC后复制到目标地址,就跟直接用XMD下载ELF是一样的结果;
而用Xapp1053 Bootloader时,目标地址是手动指定的,并不是ELF中原生的地址,这样就有可能产生错误了。

【参考资料】
SREC: http://en.wikipedia.org/wiki/SREC_(file_format)

Baidu
map