- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
quartus9.1sp2NIOSsp2中添加EPCS模块,程序挂起了?
quartus9.1 sp2+NIOS sp2中添加EPCS模块,程序挂起了?问题描述:系统平台:quartus9.1 sp2+NIOS sp2+XP SP3.在一个简单的NIOS系统(一个PIO)中,添加EPCS模块,当在BSP设置中勾选“enable reduced device driver”时,正常运行;当取消勾选时,程序不能运行,debug,程序指针到不了main()中。解决办法:把system.h中的EPCS_FLASH_CONTROLLER_0_REGISTER_OFFSET值由512改为1024.重新生成BSP,编译程序,OK了。原因分析:这个问题搞了好几天了,终于在网上找到了解决办法。先说下我的思路,我在alt_main()中设置断点,然后发现程序停在了altera_avalon_spi.c中的do{ status = IORD_ALTERA_AVALON_SPI_STATUS(base);}while (((status ALTERA_AVALON_SPI_STATUS_TRDY_MSK) == 0 || credits == 0) (status ALTERA_AVALON_SPI_STATUS_RRDY_MSK) == 0);处。查了好多资料,没头绪,阿里巴巴的电子论坛上有个类似的问题,但没有解决方案,后来又去google上搜这个EPCS do-while循环,终于找到了。原因是NIOS9.1编译器的bug,它认为你的FPGA是老版本的,它认不出Cyclone 4,而4的boot-loader ROM占用1024Byte,后边紧接着的地址才是分配给SPI控制器用的。system.h中的EPCS_FLASH_CONTROLLER_0_REGISTER_OFFSET自动生成的值是512,改为1024,就OK了。所以,使用新版本的编译软件还是有道理的啊,这种BUG太烦人了。还有,为什么BSP设置中勾选“enable reduced device driver”时,没有问题。这时因为勾选后使用精简器件驱动,会关闭掉EPCS功能,都关掉了,EPCS_FLASH_CONTROLLER_0_REGISTER_OFFSET的值对不对也就没关系了,所以不影响程序运行。下边的是那个网址,是altera的官方论坛:/forum/showthread.php?t=28678有这个外国兄弟遇到同样的问题,很共鸣啊,不过还是这位兄弟厉害,解决了问题。scottw??epcs initialization hangs in an endless loop.Hello.I am building a Nios2 system on a Cyclone4E EP4CE30F23 using Quartus 9.1sp2.I have instantiated an epcs controller in sopc builder so that I can write to my configuration device. I specified that the controller should use the dedicated AS interface.My problem is that when the HAL initializes the epcs controller, it ultimately hangs in an endless loop because the epcs SPI port is not indicating that an SPI transmit completed.The stack trace is_start()alt_main()alt_sys_init()alt_epcs_flash_init()alt_epcs_flash_query()epcs_read_electronic_signature()alt_avalon_spi_command()The loop is in alt_avalon_spi_command() is as follows:do{status = IORD_ALTERA_AVALON_SPI_STATUS(base);}while (((status ALTERA_AVALON_SPI_STATUS_TRDY_MSK) == 0 || credits == 0) (status ALTERA_AVALON_SPI_STATUS_RRDY_MSK) == 0);Any help with this would be greatly appreciated.Thank youScott WildReply With QuoteMarch 24t
文档评论(0)