junyangliu

【转】Qsys或RTL做修改后,Nios II SBT该如何面对新的硬件? (SOC) (Nios II) (Qsys)

0
阅读(2588)

Abstract
SOPC最可贵之处就是它的弹性,所以尽管已经建立了Nios II SBT project,你还可以去更改FPGA的RTL或者Qsys的架构与IP,此时Nios II SBT project该做哪些步骤才能反映出更改过的硬件架构呢?是该Generate BSP?还是该BSP Editor?或者该Build Project?其执行顺序又是如何呢?

Introduction
使用环境:Windows XP SP3 + VirtualBox 4.1.2 + Quartus II 11.0

自从使用Nios II SBT,每次Qsys或者FPGA的RTL做修改后,就一直犹豫到底要只执行Build Project就好?还是要先Clean Project?还是必须先执行Generate BSP?那BSP Editor也要执行吗?因为有时总会有些不可预期的错误产生,一直到我看到[1] Nios II Software Build Tools的p.4-30的Revising Your BSP章节,所有的疑问才豁然开朗。建议你也完整的看一下[1] Nios II Software Build ToolsRevising Your BSP章节。本文只是个人理解下的总结,不能取代Altera的官方资料。

Generate BSP:其执行流程如下:

clip_image001

值得注意的是Generate BSP会重新根据*.sopcinfo去产生drivers /HAL,也就是说若你在Qsys移除了某个IP,Generate BSP会自动帮你删除drivers / HAL相关的档案,且你之前若手动对drivers / HAL的C code做了修改,Generate BSP也会重新覆盖过去,所以不建议手动去修改drivers / HAL的C code,应该由Generate BSP自动去产生即可。

BSP Editor:修改settings.bsp的设定,主要是偏韧体方面的设定。

Clean Project:相当于make clean,会将所有的object files删除,由于若你在Qsys删除某个IP,在Generate BSP会删除该IP的drivers / HAL档案,却不会删除该IP的object files,因此必须手动用Clean Project删除。

Build Project:相当于make all,会重新根据Makefile编译所有档案。

Conclusion
大部分的人都知道最后是Clean Project与Build Project,这点问题不大,但Generate BSP与BSP Editor该谁先执行呢?答案是应先执行Generate BSP再执行BSP Editor,因为若先执行BSP Editor,你所做的设定是根据旧*.sopcinfo的settings.bsp所做的设定,并无法反映出最新的硬件,所以必须先执行Generate BSP后,先产生出反应最新硬件的settings.bsp,然后再执行BSP Editor。

总结其流程如下:

clip_image002

See Also
(原创) 如何解决目录改变时,Nios II project无法编译的问题? (SOC) (Nios II) (DE2-70)

Reference
[1] Nios II Software Build Tools
[2] Nios II Software Build Tools Reference

全文完。