声明:本文为灵. yāo编写,版权所有,欢迎学习讨论,如需转载请标明出处http://www.cnblogs.com/China_memory

Nios II 流水灯的 硬件部分已经完成

现在进行软件部分

打开Nios II IDE

New 一个 Project >>> Nios II C/C++ Application

工程项目配置

Next>    Finish

设置 工程 Properties

设置如下图

然后是C/C++ Build设置

设置完成后,先编译一次,产生system.h文件

快捷键 Ctrl + B

第一次便宜较慢,耐性等待,可以做一下眼保健操什么的,很有必要的啊。

编译完成,提示

**** Build of configuration Debug for project led_syslib ****

make -s all includes
Build completed in 2.235 seconds

这下我们有必要查看一下系统头文件system.h

这些都是必须要了解的,以后的编程就得依据这个文件对硬件的描述,其中主要包含了 NAME名字、TYPE类型、 BASE基地址、IRQ中断号 等等

由于该程序模板已经包含了hello_word.c,能够用Jat guart 输出 “hello form Nios II”

于是我们可以直接使用hello_word.c

这样我们直接run as Nios hardware

不过结果出乎意料,不是我想要的结果

Console 栏内

总是收到的是收到的如此乱码

不知道是什么原因,有知道原因的可以和我交流一下,谢谢。

于是我把hello_word.c改了一下

#include <stdio.h>

int main()
{

while(1)
{
printf("hello form Nios II!\n");
}
return 0;
}

这样,一直就收到了hello form Nios II

出现上面的问题好像是printf后还要关printf一样,不知是jtag uart 还是哪里的问题

期待有人和我交流。谢谢

接下来进行流水灯

我还是用黒金的方式来做,这是一种良好的编程习惯

首先新建一个inc文件夹用于保存头文件,在inc内新建一个sopc.h

#ifndef SOPC_H_
#define SOPC_H_

#include "system.h"

#define _LED

typedef struct
{
unsigned long int DATA;
unsigned long int DIRECTION;
unsigned long int INTERRUPT_MASK;
unsigned long int EDGE_CAPTURE;
}PIO_STR;

#ifdef _LED
#define LED ((PIO_STR *)LED_PIO_BASE)
#endif

#endif /*SOPC_H_*/

以上的方法借鉴了黑金开发板教程,在此致谢。

然后新建一个mian文件夹,在内新建一个mian.c,删除hello_word.c

#include <stdio.h>
#include "../inc/sopc.h"
void delay(void)
{
unsigned int i;
i=3000000;
while(i>0)
{
i--;
}
}
int main()
{
int i;
while(1)
{
for(i=0;i<4;i++)
{
LED->DATA = ~(1<<i);
printf("D%d灯在亮\n",i);
delay();
}
}

return 0;
}

然后 Build Project

Info: (led.elf) 53 KBytes program size (code + initialized data).
Info:           8138 KBytes free for stack + heap.
Hardware simulation is not enabled for the target SOPC Builder system. Skipping creation of hardware simulation model contents and simulation symbol files. (Note: This does not affect the instruction set simulator.)
Post-processing to create cfi_flash.flash
Build completed in 7.797 seconds

编译成功

接上jtag

下载硬件的led.sof

然后 run as Nios hardware

现在你看到效果了

如果需要调试的话,就 Debug as Nios hardware

Nios 流水灯就完成了。

讨论:

我用NIOS II IDE提供的API来写时。

mian.c内容

#include <stdio.h>
#include "system.h"
#include "altera_avalon_pio_regs.h"
void delay(void)
{
unsigned int i;
i=3000000;
while(i>0)
{
i--;
}
}

int alt_main(void)
{
unsigned char led_data;

while(1)
{
for(led_data=0;led_data<4;led_data++)
{
IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED_BASE,~(1<<led_data));
printf("D%d灯在亮\n",led_data);
delay();
}
}
return 0;
}

流水灯能工作,但Console没收到哪个灯在亮的信息

编译后的存储器占用也不一样

Info: (led.elf) 39 KBytes program size (code + initialized data).
Info:           8152 KBytes free for stack + heap.
Hardware simulation is not enabled for the target SOPC Builder system. Skipping creation of hardware simulation model contents and simulation symbol files. (Note: This does not affect the instruction set simulator.)
Post-processing to create cfi_flash.flash
Build completed in 7.609 seconds

不知道是什么原因的。

期待与您交流

转载于:https://www.cnblogs.com/China_memory/archive/2010/09/29/1837769.html

简单的nios II 流水灯 软件部分相关推荐

  1. FPGA学习笔记(1)简单的时序逻辑电路——流水灯

    FPGA学习笔记(1)简单的时序逻辑电路--流水灯 编程语言为Verilog HDL 原理 (1)设计一个计数器,使开发板上的4个LED状态每500ms翻转一次.开发板上的晶振输出时钟频率为50MHz ...

  2. 简单io应用—流水灯控制_制作简单有趣的可调速流水灯

    当夜幕降临的时候,在繁华的城市就会有无数的彩灯闪烁述说着城市的繁华,大家注意到没有这些色彩鲜艳的广告彩灯的工作原理和制作过程吗?今天给大家说说一个简单且速度可控的流水灯的制作过程,希望对初学电子爱好者 ...

  3. 基于STC89C51单片机设计的心形流水灯软件代码部分

     硬件电路板 (正反面) 根据PCB电路板对LED灯对应的引脚进行定义 声明LED灯的控制引脚 ​ //LED灯引脚,沿逆时针定义sbit LED1=P0^0; sbit LED2=P0^1;sbit ...

  4. STM32F103C8T6寄存器简单应用之LED流水灯

    一.关于STM32寄存器 STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ ...

  5. NIOS II 创建示例设计_Quartus II 9.0

    安装设计文件 在继续之前,您必须安装 Quartus II 软件和 Nios II 嵌入式设计套件. 分析系统要求 本部分介绍的教程示例设计的系统要求.设计的目标如下: 有关这些和其他组件,完整详细信 ...

  6. NIOS II软核处理器

    前不久,Altera 正式推出了Nios II系列32位RSIC嵌入式处理器.Nios II系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS,在Altera FPG ...

  7. arm ds开发基于iTOP4412开发板的纯汇编LED流水灯

    前言 arm ds软件作为arm公司发布的ADS.DS5软件的延续,具备前两款软件的所有功能.同时将Keil MDK单片机开发软件的功能直接整合到了arm ds软件中.现在arm ds就相当于DS5+ ...

  8. 基于 Nios II 的串口打印和流水灯设计【使用 Quartus 软件】【掌握 SOPC 开发流程】

    目录 一.前言 二.实验步骤 第一步:硬件部分设计 1)建立新项目 2)进行 Qsys 系统设计 3)完成 Qsys 设计的后续工作 4)原理图设计 5)编译工程及物理针脚分配. 第二步:软件部分设计 ...

  9. 【Nios II】以SOPC开发流程完成流水灯以及串口输出实验

    一.前言 实验内容及步骤 使用 FPGA 资源搭建一个简单 Nios II 处理器系统,具体包括: (1) 在 Quartus Prime 中建立一个工程: (2) 使用 PD 建立并生成一个简单的基 ...

最新文章

  1. PacBio如何获得又长又准确的reads
  2. 【MySQL】Dockerfile书写简单示例
  3. Debian 9.x “stretch“ 解决 /etc/rc.local 开机启动问题
  4. Linux 用户进程内存空间详解
  5. C++描述杭电OJ 2012. 素数判定 ||
  6. 安装oracle失败,停止在76%
  7. linux C 中的volatile使用【转】
  8. 洛谷 P1400 塔
  9. java jdk官网下载地址
  10. 点分十进制ip地址的理解
  11. 解决JS中文乱码问题
  12. 五分钟回顾 | 2016年智能交通大事件
  13. 1.16 隐藏不需要打印的内容 [原创Excel教程]
  14. html怎么消除打印的进纸,关于打印机进纸故障的原因分析和解决方法(一)
  15. Android 常用开发工具以及Mac常用软件
  16. 爬取巨潮资讯网中与“贵州茅台”相关的公告的标题和网址。
  17. axure下移固定地方_axure固定元件位置 教程:使用axure动态面板制作一个返回顶部的按钮...
  18. 批量将 PDF 转为 ePub 格式文档
  19. SIMATIC S7-300 Profibus通讯——(2)EM277与S7-300通讯
  20. S6系统激活、软件升级和软件授权激活

热门文章

  1. java知识点博客园_JAVA基础知识回顾
  2. vue一个页面发出多个异步请求_vue(6)—— vue中向后端异步请求
  3. 华中师范大学邮箱matlab,正版软件管理与服务平台(华中师范大学)
  4. mongodb更新语句_MongoDB更新
  5. Python字符串translate()
  6. python入门指南_Python中的逻辑门–入门指南
  7. TestNG参数– DataProvider和XML
  8. Elasticsearch的javaAPI之get,delete,bulk
  9. Linux终端基本命令
  10. eclipse 构建 jpa project 所需的用户库(vendor: EclipseLink)