打印
[matlab]

请教如何在Project Navigator中加载bootloop

[复制链接]
4243|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zuphen|  楼主 | 2011-12-19 20:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在XPS中使用MicroBlaze软核,以这个软核作为顶层设计。完成软件的开发后,可以先向FPGA中写入bootloop,然后再通过XMD向指定的存储器中写入SDK生成的ELF文件,然后运行。以上步骤是从XILINX的大学教程中获知,我可以做到。

但是,我的应用是需要把MicroBlaze软核作为顶层设计的一个子模块来应用。现在仍然希望能使用XMD来下载调试代码(ELF文件),所以需要先在Project Navigator中加载bootloop。我应该如何在Project Navigator中加载bootloop呢?

我不晓得有没有把我的问题描述清楚。。。。语文差。。。。

相关帖子

沙发
GoldSunMonkey| | 2011-12-19 21:16 | 只看该作者
什么意思?ISE里面添加EDK?

使用特权

评论回复
板凳
zuphen|  楼主 | 2011-12-19 21:20 | 只看该作者
Project Navigator里面用ADD source...可以加入ELF文件。如果软件程序完全是放置在on-chip memory,那么可以直接指定SDK生成的ELF文件,最后生成BIT文件。
但问题是我的代码比较大,on-chip memory放不下,需要配置完FPGA后再用XMD写进去,所以需要先加载bootloop。
这样的。

使用特权

评论回复
地板
GoldSunMonkey| | 2011-12-19 21:23 | 只看该作者
bootloader?

使用特权

评论回复
5
GoldSunMonkey| | 2011-12-19 21:23 | 只看该作者
你说的我很迷糊

使用特权

评论回复
6
zuphen|  楼主 | 2011-12-19 21:25 | 只看该作者
1、If your application executable resides in on-chip memory regions, you can merge the Executable and Linkable Format (ELF) file into the hardware bitstream so that it gets loaded into on-chip memory, ready to execute, every time the FPGA is configured.


2、During prototyping, XPS can dynamically download your executable to the board via the JTAG cable connected to the FPGA. In this case, you select a bootloop to be merged into the bitstream to initialize on-chip memory so that the processor remains in a static state until software downloading can be completed.

3、For production systems, you can store executables residing in off-chip memory regions in a non-volatile memory device, such as flash Programmable ROM (PROM) or along with the configuration bitstream in a System ACE™ device. In this case, you would configure a bootloader executable to be merged into the hardware bitstream to initialize on-chip memory. Then each time the FPGA is configured or reset, the bootloader copies the application executable to a suitable (volatile) memory device and starts it running.

我就是想用第二种方法,在把MicroBlaze作为顶层设计的子模块的时候。

使用特权

评论回复
7
zuphen|  楼主 | 2011-12-19 21:26 | 只看该作者
我的语文果然很差啊。。。。。

使用特权

评论回复
8
GoldSunMonkey| | 2011-12-19 21:27 | 只看该作者
本帖最后由 GoldSunMonkey 于 2011-12-19 21:31 编辑

完全没有ISE的事情嘛。。。

使用特权

评论回复
9
GoldSunMonkey| | 2011-12-19 21:29 | 只看该作者
bootloop是为了不让空的MicroBlaze乱跳而存在的。
我们知道FPGA是基于SRAM的,LUT和RAM中的内容上电后为未知状态。
MB上电后会读取0x0地址的内容,然后跳转。
0x0的内容默认是未知,如果正好是一些指令之类的,会造成总线卡死或者MB死掉之类的问题。
Bootloop的内容只有一条,就是跳转到自己的地址,那么MB就会运行在一个已知的状态了。需要下载什么程序可以再通过XMD下载。

使用特权

评论回复
10
zuphen|  楼主 | 2011-12-19 21:30 | 只看该作者
是啊是啊,ISE怎样“select a bootloop to be merged into the bitstream to initialize on-chip memory so that the processor remains in a static state until software downloading can be completed.

使用特权

评论回复
11
GoldSunMonkey| | 2011-12-19 21:31 | 只看该作者
没有ISE的事情。

使用特权

评论回复
12
GoldSunMonkey| | 2011-12-19 21:31 | 只看该作者
刚刚写错了。

使用特权

评论回复
13
GoldSunMonkey| | 2011-12-19 21:44 | 只看该作者
还有,不好意思,我对这个EDK的东西也不是特别懂。
没办法,你找个教程或者其他的吧。

没能帮到你不好意思。

使用特权

评论回复
14
zuphen2| | 2011-12-19 21:46 | 只看该作者
我只能发5个回帖,说不了话了。。。
SDK里完成这个工作如下步骤:
可以看到选择了bootloop,然后用XMD工具写入实际的应用软件程序。

但如果MicroBlaze是作为顶层设计的一个子模块,就需要在ISE界面下进行操作,不知道如何去操作了。求指教!!!

使用特权

评论回复
15
GoldSunMonkey| | 2011-12-19 21:54 | 只看该作者
:L那是在ISE下面建一个EDK,就和你add newsource,然后加入EDK即可。
和你说的bootloop没有关系。

使用特权

评论回复
16
summerxue| | 2011-12-19 22:03 | 只看该作者
其实你已经说了解决的方法了,就是自己写一个bootloop,把它成elf文件,然后... 至于bootloop的内容,随便一个空操作就可以了,就是让cpu保持在一个确定的状态。

使用特权

评论回复
17
zuphen|  楼主 | 2011-12-20 08:15 | 只看该作者
自己写bootloop?
这个我没有考虑过,空操作就可以了吗?我试试看。

使用特权

评论回复
18
yyzhong_520| | 2011-12-20 19:13 | 只看该作者
呵呵

使用特权

评论回复
19
yyzhong_520| | 2011-12-20 19:14 | 只看该作者
呵呵

使用特权

评论回复
20
381842| | 2011-12-20 19:26 | 只看该作者
如何在Project Navigator中加载bootloop

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

34

帖子

1

粉丝