原创 学习NIOS-II的经验分享(二)

2009-4-2 23:10 6631 18 17 分类: FPGA/CPLD


学习NIOS-II的流程-2——初体验


——艾米电子工作室







2——初步学习体验NIOS


这里包括 LED、 串口、 LCD、 按键输入、 中断、 定时器等等,这个过程跟单片机开发其实没什么区别,只是注意一下NIOS 中软件的开发特点即可,比如对IO的输入输出控制、方向控制等等。


 IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, led);】







附一个程序如下:


#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"


int main (void) __attribute__ ((weak, alias ("alt_main")));



int alt_main (void)
{
  alt_u8 led = 0x2;
  alt_u8 dir = 0;
  volatile int i;
    
 
  while (1)
  {
    if (led & 0x81)
    {
      dir = (dir ^ 0x1);
    }


    if (dir)
    {
      led = led >> 1;
    }
    else
    {
      led = led << 1;
    }
    IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, led);



    i = 0;
    while (i<200000)
      i++;
  }


  return 0;
}


 


点击看大图


如图所示,程序中的


IOWR_ALTERA_AVALON_PIO_DATA(LED_BASE, led);


对端口的输出进行操作,里面的base 对应Quartus中的


out_port_from_the LED[7..0]


注意,NIOS 编程时这个地址一定要大写,而在SOPC Builder中可以小写命名。比如——SM_bit,而程序中必须大写,如下:


 IOWR_ALTERA_AVALON_PIO_DATA(SM_SEGMENT_BASE, leddata[i+1]);
 IOWR_ALTERA_AVALON_PIO_DATA(SM_BIT_BASE, bit_sel);







NIOS 一个工程的操作步骤顺序:


第一步,建立Quartus工程


这里面包括,在SOPC Builder中建立 NIOS的软核,并定制系统外设,完成基本编译,配置引脚之后,修改一些没有用到的IO属性为三态输入,最后完全编译系统。此时生成系统的配置文件sof。


点击看大图


 


第二步,建立NIOS IDE开发环境


写C语言代码,并编译工程,开始仿真或者直接调试,调试的技巧需要一点一点的积累总结。不过玩过单片机的朋友,我相信都很熟悉这个的设置与技巧。


 


点击看大图


 


第三步:系统的下载


系统编译调试通过后,我们需要把 sof文件和elf文件下载到EPCS配置芯片中,这样下次上电时候才能运行程序。


点击 tools》flash programer 》


点击看大图


第四步-重新定制系统


如果在前三步发现问题,返回差错,然后分别重新编译工程,如果期间需要加入新的模块,也需要重新定制系统,然后重新编译。


这期间由三个步骤的时间耗时非常长,所以为了节省开发时间,尽量不要反复编译工程


1 quartus的完全编译


2 SOPC Builder 生成系统文件


3 NIOS的第一次 Build


硬件系统完成后,NIOS也完成了第一次的完全编译,之后的软件开发工作就相对简单多了,每次只需要简单编译,很快就ok!







补充:run或者debug的时候 有可能会出现如下界面。


nios2-terminal: connected to hardware target using JTAG UART on cable
nios2-terminal: "USB-Blaster [USB-0]", device 1, instance 0


nios2-terminal: Warning: The JTAG cable you are using is not supported for Nios
nios2-terminal: II systems.  You may experience intermittent JTAG communication
nios2-terminal: failures with this cable.  Please use a USB Blaster revision B
nios2-terminal: cable or another supported cable.  Please refer to the file
nios2-terminal: errata.txt included in the Nios II development kit documents
nios2-terminal: directory for more information.


nios2-terminal: (Use the IDE stop button or Ctrl-C to terminate)


 


提示 JTAG的类型不匹配,但不影响使用,这里面用公版的USB-Blaster就没有问题的,具体的就不多说了,有可能是软件里面做的手脚。

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1278632 2009-8-11 16:16

博主能不能将以上的整个工程代码文件上传或者发到我的邮箱 eeliu88@gmail.com 我是初学NIOS C代码通过JTAG在OnChipRam里可以运行,但是不能执行Flash Programer ,Flash Programer按钮是灰色的,不知是哪里配制有问题。 先谢谢了

用户398455 2009-6-25 10:33

现在的问题是我用USB的都出现了这样的错误.郁闷啊.
相关推荐阅读
zhaoliang_0801_926809075 2009-07-28 09:13
基于FPGA和avr单片机的DDS信号发生器
基于FPGA和avr单片机的DDS信号发生器1、项目简介本设计提出了一种使用经济有效的低频信号发生器的设计方法,系统可以实现各种频率各种相位的输出,可以实现ASK、FSK调制信号的输出,其他的调制信号...
zhaoliang_0801_926809075 2009-07-27 23:30
出售msp430uif usb 仿真器
电路板稍有瑕疵,背面需要跳根线,请追求完美的朋友绕到,谢谢 :)此次一共有39块PCBPCB 定价 12元 (瑕疵修改后,定价15元)成品 定价 140元(瑕疵修改后,定价150元)芯片封装:MSP4...
zhaoliang_0801_926809075 2009-07-27 23:15
开源项目-基于FPGA的等精度频率计
开源项目-基于FPGA的等精度频率计1、项目简介:这是本人06年的一个课程设计,当时做完之后,总结了一个片论文发表《电子工程师》有兴趣的朋友可以看看,论文写的比较详细。利用51单片机和FPGA控制实现...
zhaoliang_0801_926809075 2009-07-04 23:38
FPGA入门系列实验教程——实验三 LED流水灯
FPGA入门系列实验教程——实验三 LED流水灯声明:本实验教程编写的目的就是为了指导FPGA初学者轻松入门,让初学者少走些弯路,但由于版主学习FPGA时间不长,水平有限,教程中肯定会出现这样或那样的...
zhaoliang_0801_926809075 2009-07-04 23:37
FPGA入门系列实验教程——实验一 点亮LED
FPGA入门系列实验教程——实验一 点亮LED声明:本实验教程编写的目的就是为了指导FPGA初学者轻松入门,让初学者少走些弯路,但由于版主学习FPGA时间不长,水平有限,教程中肯定会出现这样或那样的错...
zhaoliang_0801_926809075 2009-07-04 23:37
FPGA入门系列实验教程——实验二 LED闪烁灯
FPGA入门系列实验教程——实验二 LED闪烁灯声明:本实验教程编写的目的就是为了指导FPGA初学者轻松入门,让初学者少走些弯路,但由于版主学习FPGA时间不长,水平有限,教程中肯定会出现这样或那样的...
我要评论
2
18
关闭 站长推荐上一条 /3 下一条