问题一: “搞定 NiosII 工程文件夹目录路径改变”的过程中,按照《NiosII的奇幻漂流-v2.0.pdf》这本书附录一章《20.2 四步搞定 NiosII 工程文件夹目录路径改变》所说的方法进行问题解决的时候,总是会出现一些小问题,例如有一个问题“xxx.sopcinfo could not be found.”最后只能删掉工程,重建project,copy源码。虽然最后能够解决路径问题,但花费精力过多,无数次的删除原工程下的project,无数次的自己重建,虽然也能解决问题,但过程繁琐,总是怀疑自己是否有搞丢哪个源文件。
解决办法:按照《NiosII的奇幻漂流-v2.0.pdf》这本书中所说的方法,照做就可以了。其中我所犯错的地方在于,在第三步中“重新 Generate BSP 工程”这个过程中,没有找到文中所说的Generate BSP这个选项,这个怪自己大意了,最终的解决办法是在pwm_1_BSP下右键选择NIOS II——Generate BSP。之前一直以为在pwm_1下右键,没有找到,于是走了弯路选择NIOS II——BSP Editor重新生成settings.bsp文件,浪费了无数精力。
问题二:出现错误“Connected system ID hash not found on target at expected base address”。并且如果在“Run Configurations”中忽略ID检测继续RUN,弹出如下对话框:
解决办法:参见博文:http://www.cnblogs.com/ic90/p/3608115.html。
文中对这一错误进行了总结:
1) unused pin没有设置,可能会收到外部信号的干扰;设置未用引脚为As input tri-stated with weak pull-up.
2) 系统时钟信号没有约束,或者SDRAM等存储设备的时钟没有配置正确;
3) 系统复位信号没有连接外部复位开关;
4) 可能某些PIN分配了错误管脚;逐一检查设计PIN的分配。
5) SOPC系统中没有添加system ID组件。
文中给出了作者错误的原因:“ 按这个流程走了一遍,发现输入时钟信号的管脚分配错误!修正后,重新编译工程。在Nios eclipse中重新生成BSP文件,再compile all。再次运行,ID检测问题解决”
由那篇博文作者的说法,他的错误出现在第4条。我按照上面说的,也按照这个流程走了一遍,在检查pin分配的时候,发现复位信号引脚分配给了sw1,于是发现这是一个拨动开关,联想到博文里面罗列的5条解决问题。猜想问题可能出现在复位开关上,需要说明的是这里是开关,而不是按键。我为什么会强调这里:复位信号低电平有效,当复位信号处于高电平时,是没有问题的。而复位信号处于低电平时则会出问题,产生该错误。所以估计此时开关使处于低电平状态,故波动开关,此时电平应是高电平。再次再次运行,ID检测问题解决。
花了好几天的时间,问题终究是解决了,辛苦是值得的!