流水灯显示
(一)硬件部分设计
1.新建工程
2.系统设计
Tools→Qsys
保存并输入文件名为 kernel,然后如图设置时钟
3.添加外围组件
添加 Nios II 32-bit CPU
在菜单中搜索添加add
然后会弹出元件配置窗口,我们不需要选择,默认配置即可
4.设置及操作
(1)连线 进行 clk、reset、avalon_jtag_slave 的连线,以及中断 irq 连线,中断号设为 0。
(2)On Chip 添加On Chip 核
(3)PIO 添加 PIO 接口
(4)System ID Peripheral 添加System ID Peripheral 核 !
5.连接
仔细检查连接
6.后续工作设计
(1)地址分配 进行基地址分配:点击 Qsys 主界面菜单栏中的 ”System” 下的 ”Assign Base Addresses” (2)Nios II 的复位和异常地址 指定 Nios II 的复位和异常地址
(3)原理图
(4)加载文件 点击Assignments→Settings,选择 kernel.qip 文件
(5)连接和生成管脚
(6)编译
(7)物理管脚分配
按下图分配
至此完成复杂的硬件设计
(二)软件部分设计
1.新建一个
2.程序
hello_world.c 中的代码修改为下面的
#include <stdio.h>
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
const alt_u8
led_data[8]={0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};
int main (void) {
int count=0;
alt_u8 led;
volatile int i;
//串口打印
printf("Hello world!\n");
//流水灯循环
while (1)
{
if (count==7)
{
count=0;
}
else
{
count++;
}
led=led_data[count];
IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE, led);
//延时的设置
i = 0;
while (i<5000000)
i++;
}
return 0;
}
3.编译
结果如图为成功
4.运行
(1)调试
(2)连接
(3)run