新闻  |   论坛  |   博客  |   在线研讨会
学习NIOS-II的经验分享(二)
0750long | 2009-04-05 18:40:56    阅读:2700   发布文章

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

 

 

学习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[i]);

 


 

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就没有问题的,具体的就不多说了,有可能是软件里面做的手脚。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客