在nios里下载软件程序时,出现
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Pausing target processor: not responding.
Resetting and trying again: FAILED
Leaving target processor paused
这个错误在可编程部分的原因大多是引脚分配错误。网上有人说要在quartus将没有用到的FPGA的引脚设为“input tri-state”,但是我并没有发现这是必须的,可能只是一些特定地器件需要这样设置。
经过这次调试,感觉自己增长了不少调试经验,虽然之前调试过51板子,但是画那块板子时,参考电路有很多,所以调试起来比较顺利,没出太多问题。这次就不同了,问题出了一大堆,真有点不知所措。总结一下调试有主控芯片的电路,首先要保证电源没有问题,不仅是电源模块地输出没有问题,还有芯片地电源不能接错,因为电源一错,所以一切都要玩儿完,就像我们这次就因为电源的问题烧了几百块钱的芯片。在电源没有问题的情况下,就要看看主控芯片的晶振有没有问题,很多问题都是晶振引起的,我之前调试51板子的时候也是因为用了一个已经坏掉的晶振导致不能下载程序。遇到硬件方面的问题时需要一点一点地排查,在确定前面的模块是正确的情况下再进行后面的部分。
关于FPGA的调试,我想要分为以下几步,首先要保证FPGA芯片的几个电源是正确的,然后先用一个最简单地用硬件描述语言写的小程序测试FPGA芯片是否能够正常下载并工作正常。然后用nios建立软件工程并把程序放在onchip-memory上下载。接下来再继续调试外围的电路。
在nios里把程序放到onchip-memory上进行编译时,很多时候都会遇到错误,提示onchip-memory的空间不足。这是因为程序是用main作为主函数,这样的话nios会在程序进入main函数前进行一些系统的初始化工作,这做占用不少的空间。要在onchip-memory上跑程序,最好是采用alt_main作为主函数,例如采用下面的程序:
#include
#include
#include
#include
#include "system.h"
#include "sys/alt_sys_init.h"
#include "sys/alt_irq.h"
#include "priv/alt_file.h"
#include "altera_avalon_pio_regs.h"
int main (void) __attribute__ ((weak, alias ("alt_main")));
int alt_main(void)
{
alt_irq_init (ALT_IRQ_BASE);
alt_sys_init();
alt_io_redirect (ALT_STDOUT, ALT_STDIN, ALT_STDERR);
while(1)
{
IOWR(TEST_PIO_BASE,0,1);
usleep(1000);
IOWR(TEST_PIO_BASE,0,0);
usleep(1000);
}
return 0;
}
顶一下 0
踩一下
相关文章
用户评论
已有0位网友发表了看法



发表评论