网站重新上线,多谢朋友们的关心
Jun
11
XMD的Verify ELF功能在一次调试中帮了大忙。
出问题的情况很奇怪:
- 把Application Initialize to BRAM的时候程序工作不正常
- 用XMD再把程序dow一次,又正常了。
怀疑data2mem出问题,可以BRAM里面又是有值的。
于是怀疑这些值的正确性。用XMD的Verify ELF功能比较BRAM的内容和ELF的内容,结果发现的确有不相符的地方。那就确认是DATA2MEM的过程中出问题了。
此外,Verify ELF还可以用在Flash Writer烧写Flash后检查烧写是否正确:
- 在Bootloader完成,要进行PC指针跳转的最后一步设断点把程序停住,此时Flash中的SREC已经被Bootloader放到了DDR中
- 在XMD中运行Verify ELF检查DDR中的内容是否正确。
出问题的情况很奇怪:
- 把Application Initialize to BRAM的时候程序工作不正常
- 用XMD再把程序dow一次,又正常了。
怀疑data2mem出问题,可以BRAM里面又是有值的。
于是怀疑这些值的正确性。用XMD的Verify ELF功能比较BRAM的内容和ELF的内容,结果发现的确有不相符的地方。那就确认是DATA2MEM的过程中出问题了。
此外,Verify ELF还可以用在Flash Writer烧写Flash后检查烧写是否正确:
- 在Bootloader完成,要进行PC指针跳转的最后一步设断点把程序停住,此时Flash中的SREC已经被Bootloader放到了DDR中
- 在XMD中运行Verify ELF检查DDR中的内容是否正确。
Jul
11
原来还有这么个小工具,可以把XPS所管理的文件备份并压缩成zip文件,包含重建一个EDK工程所需要的最少量的文件,方便重建工程、版本管理、工程分享。
叫啥名 - xps_archiver
在哪里 - EDK安装目录下bin/nt/
都谁有 - 我看到9.1 9.2 10.1都有,8不知道
怎么用 - 打开cmd,cd到工程目录,xps_archiver -o xx.zip xx.xmp
产生啥 - archiver目录下产生xx.zip
叫啥名 - xps_archiver
在哪里 - EDK安装目录下bin/nt/
都谁有 - 我看到9.1 9.2 10.1都有,8不知道
怎么用 - 打开cmd,cd到工程目录,xps_archiver -o xx.zip xx.xmp
产生啥 - archiver目录下产生xx.zip
Nov
21
问题: EDK找不到ModelSim怎么办?
Issue: 系统里明明装了ModelSim PE,而且也是可以用的,可是无论是用EDK编译库(compedklib)还是生成仿真模型(simgen),都提示找不到ModelSim。
Solution: 把ModelSim PE/SE的win32目录的路径放到PATH的环境变量中,然后重新启动compedklib或者EDK,就可以找到了。
后续问题1:
Issue: compedklib出莫名问题,想同时编译ISE和EDK的库,ISE的库编译只做了smartmodel部分,unisim, simprim都没编译成功,于是EDK的库由于缺少unisim也编译失败。
Solution: 用compxlib先编译ISE的库。
发现一个官方Solution,还没试过:AR24097
后续问题2:
Issue: 用compxlib编译出来的库,没有ModelSim.ini
Solution: 原来compxlib中指定的输出目录没起作用,ModelSim.ini被放到C:\Documents and Settings\目录中去了
后续问题3:
Issue: 库编译完成,要用Simgen生成仿真模型,结果说ISE库的目录里没有找到需要的内容
Solution: 在EDK库目录中有个.compedklib_edk_info的文件,ISE库目录没有。Copy过来,改名为.compedklib_ise_info。
后续问题4:
Issue: Windows的Explorer不支持改名为以.开头的文件名
Solution: 用EDK带的Cygwin Shell。CD到这个目录,用mv命令改名。
使用版本ISE 9.1.03, EDK 9.1.02
Update 10.1:
AR24097: http://www.xilinx.com/support/answers/24097.htm
Method2 - 将cygwin的路径添加到path,然后运行compxlib,就不会有以上问题
AR22214: http://www.xilinx.com/support/answers/22214.htm
设置Smartmodel的方法
10.1 SP2 更新:现在只需要将%LMC_HOME%/lib/pcnt.lib添加到path环境变量中,modelsim.ini已经不需要手动更改了。Launch HDL Simulator中已经有do文件可以自动更改modelsim.ini。只需要在"c"后运行"m",modelsim.ini中的swift接口就已经设置妥当拉。
Issue: 系统里明明装了ModelSim PE,而且也是可以用的,可是无论是用EDK编译库(compedklib)还是生成仿真模型(simgen),都提示找不到ModelSim。
Solution: 把ModelSim PE/SE的win32目录的路径放到PATH的环境变量中,然后重新启动compedklib或者EDK,就可以找到了。
后续问题1:
Issue: compedklib出莫名问题,想同时编译ISE和EDK的库,ISE的库编译只做了smartmodel部分,unisim, simprim都没编译成功,于是EDK的库由于缺少unisim也编译失败。
Solution: 用compxlib先编译ISE的库。
发现一个官方Solution,还没试过:AR24097
后续问题2:
Issue: 用compxlib编译出来的库,没有ModelSim.ini
Solution: 原来compxlib中指定的输出目录没起作用,ModelSim.ini被放到C:\Documents and Settings\
后续问题3:
Issue: 库编译完成,要用Simgen生成仿真模型,结果说ISE库的目录里没有找到需要的内容
Solution: 在EDK库目录中有个.compedklib_edk_info的文件,ISE库目录没有。Copy过来,改名为.compedklib_ise_info。
后续问题4:
Issue: Windows的Explorer不支持改名为以.开头的文件名
Solution: 用EDK带的Cygwin Shell。CD到这个目录,用mv命令改名。
使用版本ISE 9.1.03, EDK 9.1.02
Update 10.1:
AR24097: http://www.xilinx.com/support/answers/24097.htm
Method2 - 将cygwin的路径添加到path,然后运行compxlib,就不会有以上问题
AR22214: http://www.xilinx.com/support/answers/22214.htm
设置Smartmodel的方法
10.1 SP2 更新:现在只需要将%LMC_HOME%/lib/pcnt.lib添加到path环境变量中,modelsim.ini已经不需要手动更改了。Launch HDL Simulator中已经有do文件可以自动更改modelsim.ini。只需要在"c"后运行"m",modelsim.ini中的swift接口就已经设置妥当拉。
Dec
7
EDK8.2的Flash Writer (Device Configuration -> Program Flash Memory)可以直接往Flash中烧写文件。而且这个文件可以是任何类型的。
拿ML403举例,EDK8.2.01
1、用BSB Wizard新建ML403的Project,选上Flash的peripherial。
2、编译工程,下载到FPGA
3、打开FlashWriter,选择要下载文件,下载。(这里面Scratch Memory是临时内存,不可以和目标内存相同)
4、验证下载。打开XMD,运行命令mrd 0xe8000000 10,即读取地址为0xe8000000的连续10byte。内容应该和下载文件的二进制相同。
注意:必须先下载一个有EMC Core的工程到FPGA。
关于SREC文件
1、FlashWriter可以选择AutoConvert ELF files into SREC files,这样可以让bootloader的尺寸减小,就节省了FPGA资源;同时,SREC文件基本也比ELF文件小。
2、选择AutoConvert的时候同时选择下面的自动生成一个Bootloader_0。
3、对Bootloader_0生成linkscript
4、重新compile bootloader_0,并设成download
注意,AutoConvert其实是使用了objcopy这个程序,在GNU文件夹下。
相关资料:
Overview of Flash Memory Programming in XPS
Programming Flash Memory
est_rm.pdf Chapter 9
S-record format file
objcopy help
拿ML403举例,EDK8.2.01
1、用BSB Wizard新建ML403的Project,选上Flash的peripherial。
2、编译工程,下载到FPGA
3、打开FlashWriter,选择要下载文件,下载。(这里面Scratch Memory是临时内存,不可以和目标内存相同)
4、验证下载。打开XMD,运行命令mrd 0xe8000000 10,即读取地址为0xe8000000的连续10byte。内容应该和下载文件的二进制相同。
注意:必须先下载一个有EMC Core的工程到FPGA。
关于SREC文件
1、FlashWriter可以选择AutoConvert ELF files into SREC files,这样可以让bootloader的尺寸减小,就节省了FPGA资源;同时,SREC文件基本也比ELF文件小。
2、选择AutoConvert的时候同时选择下面的自动生成一个Bootloader_0。
3、对Bootloader_0生成linkscript
4、重新compile bootloader_0,并设成download
注意,AutoConvert其实是使用了objcopy这个程序,在GNU文件夹下。
相关资料:
Overview of Flash Memory Programming in XPS
Programming Flash Memory
est_rm.pdf Chapter 9
S-record format file
objcopy help






