简单的nios II 流水灯 软件部分
声明:本文为灵. 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改了一下
int main()
{
while(1)
{
printf("hello form Nios II!\n");
}
return 0;
}
这样,一直就收到了hello form Nios II
出现上面的问题好像是printf后还要关printf一样,不知是jtag uart 还是哪里的问题
期待有人和我交流。谢谢
接下来进行流水灯
我还是用黒金的方式来做,这是一种良好的编程习惯
首先新建一个inc文件夹用于保存头文件,在inc内新建一个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 "../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 "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 流水灯 软件部分相关推荐
- FPGA学习笔记(1)简单的时序逻辑电路——流水灯
FPGA学习笔记(1)简单的时序逻辑电路--流水灯 编程语言为Verilog HDL 原理 (1)设计一个计数器,使开发板上的4个LED状态每500ms翻转一次.开发板上的晶振输出时钟频率为50MHz ...
- 简单io应用—流水灯控制_制作简单有趣的可调速流水灯
当夜幕降临的时候,在繁华的城市就会有无数的彩灯闪烁述说着城市的繁华,大家注意到没有这些色彩鲜艳的广告彩灯的工作原理和制作过程吗?今天给大家说说一个简单且速度可控的流水灯的制作过程,希望对初学电子爱好者 ...
- 基于STC89C51单片机设计的心形流水灯软件代码部分
硬件电路板 (正反面) 根据PCB电路板对LED灯对应的引脚进行定义 声明LED灯的控制引脚 //LED灯引脚,沿逆时针定义sbit LED1=P0^0; sbit LED2=P0^1;sbit ...
- STM32F103C8T6寄存器简单应用之LED流水灯
一.关于STM32寄存器 STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ ...
- NIOS II 创建示例设计_Quartus II 9.0
安装设计文件 在继续之前,您必须安装 Quartus II 软件和 Nios II 嵌入式设计套件. 分析系统要求 本部分介绍的教程示例设计的系统要求.设计的目标如下: 有关这些和其他组件,完整详细信 ...
- NIOS II软核处理器
前不久,Altera 正式推出了Nios II系列32位RSIC嵌入式处理器.Nios II系列软核处理器是Altera的第二代FPGA嵌入式处理器,其性能超过200DMIPS,在Altera FPG ...
- arm ds开发基于iTOP4412开发板的纯汇编LED流水灯
前言 arm ds软件作为arm公司发布的ADS.DS5软件的延续,具备前两款软件的所有功能.同时将Keil MDK单片机开发软件的功能直接整合到了arm ds软件中.现在arm ds就相当于DS5+ ...
- 基于 Nios II 的串口打印和流水灯设计【使用 Quartus 软件】【掌握 SOPC 开发流程】
目录 一.前言 二.实验步骤 第一步:硬件部分设计 1)建立新项目 2)进行 Qsys 系统设计 3)完成 Qsys 设计的后续工作 4)原理图设计 5)编译工程及物理针脚分配. 第二步:软件部分设计 ...
- 【Nios II】以SOPC开发流程完成流水灯以及串口输出实验
一.前言 实验内容及步骤 使用 FPGA 资源搭建一个简单 Nios II 处理器系统,具体包括: (1) 在 Quartus Prime 中建立一个工程: (2) 使用 PD 建立并生成一个简单的基 ...
最新文章
- PacBio如何获得又长又准确的reads
- 【MySQL】Dockerfile书写简单示例
- Debian 9.x “stretch“ 解决 /etc/rc.local 开机启动问题
- Linux 用户进程内存空间详解
- C++描述杭电OJ 2012. 素数判定 ||
- 安装oracle失败,停止在76%
- linux C 中的volatile使用【转】
- 洛谷 P1400 塔
- java jdk官网下载地址
- 点分十进制ip地址的理解
- 解决JS中文乱码问题
- 五分钟回顾 | 2016年智能交通大事件
- 1.16 隐藏不需要打印的内容 [原创Excel教程]
- html怎么消除打印的进纸,关于打印机进纸故障的原因分析和解决方法(一)
- Android 常用开发工具以及Mac常用软件
- 爬取巨潮资讯网中与“贵州茅台”相关的公告的标题和网址。
- axure下移固定地方_axure固定元件位置 教程:使用axure动态面板制作一个返回顶部的按钮...
- 批量将 PDF 转为 ePub 格式文档
- SIMATIC S7-300 Profibus通讯——(2)EM277与S7-300通讯
- S6系统激活、软件升级和软件授权激活
热门文章
- java知识点博客园_JAVA基础知识回顾
- vue一个页面发出多个异步请求_vue(6)—— vue中向后端异步请求
- 华中师范大学邮箱matlab,正版软件管理与服务平台(华中师范大学)
- mongodb更新语句_MongoDB更新
- Python字符串translate()
- python入门指南_Python中的逻辑门–入门指南
- TestNG参数– DataProvider和XML
- Elasticsearch的javaAPI之get,delete,bulk
- Linux终端基本命令
- eclipse 构建 jpa project 所需的用户库(vendor: EclipseLink)