浅谈SOPC中的“system_id”和“time_stamp”不符的原因和解决

来源:互联网 发布:热血无赖mac存档位置 编辑:程序博客网 时间:2024/05/18 02:16

在新搭建的Qsys上运行NIOS SBT(简称eclipse),往往运行的第一个程序就有问题(哪怕是hello_world)。问题一般是:configuration界面的“System_ID”和“Time_Stamp”提示信息不符。经过数次摸爬滚打之后,我基本找出了这俩家伙的原因。“System_ID”是这套Qsys硬件系统的身份证,在QSYS下搭建好了一个SOPC系统就拥有一个独一无二的ID(自动分配),在eclipse上搭建C工程的时候,就会比较BSP文件中提供的ID和板子里烧录的ID是否一样。这样可以确定,板子是不是烧录了别的SOPC系统(跑错了片场)以及板子里烧录的系统是不是最新的SOPC系统。通常出现“System_ID”不符合的情况,有两种极大的可能:1,你在eclipse新建C工程的时候用的sopcinfoFPGA里面烧录的不是对应的;

                         2,你在建立C工程之后又修改了QSYS,并且在Quartus上编译了。“System_ID”代表了这时刻的QSYS系统,只要有QSYS                                                                    有变动(哪怕只是新添加一个组件),“System_ID”也会改变,最后导致“System_ID不符”。

解决办法:保证QSYS不会改变再编译Quartus烧录,再打开eclipse新建工程(选用对应的sopcinfo文件)。如果已经改变了,可以重建eclipse工程。

Time_Stamp”就是时间戳的意思,可以理解为用时间盖章。一般sopcinfo会随着Quartus编译而更新,如果硬件改动,那么更新硬件信息,如果硬件没有改动,那么就会更新“Time_Stamp”,就是更新的时候盖个章,把时间记录一下。“Time_Stamp不符合”这个问题通常出现在你建立eclipse工程之后,手贱又编译了quartus,再运行eclipse工程时就会提示你“Time_Stamp不符合”,不过如果只要你硬件信息没改变,直接在忽略“Time_Stamp”那里打钩就行了,不影响软件的运行。

阅读全文
1 0
原创粉丝点击