SOPC课程设计实验报告--基于 NIOS 的 μCOS-II 实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

{
while (1)
{
printf("Hello from task2\n");
OSTimeDlyHMSM(0, 0, 5, 0);
}
}
void task3(void* pdata)
{
while (1)
{
printf("Hello from task3\n");
OSTimeDlyHMSM(0, 0, 4, 0);
二、设计要求
从零开始建立一个基于 Nios II 的 μC/OS-II 应用实验系统(也可以认为 是一个Nios II+μC/OS-II 的应用框架)具有以下一些作用。
(1) 读者可以借助 SOPC Builder 工具自行对 Nios II 软核处理器进行配 置。
(2) 很多范例都是纯硬件的VHDL代码,需要自行从零开始建立 Nios II 系统,不能够直接使用 Altera 公司已经建立好的 Nios II 系统。
void task1(void* pdata)
{
while (1)
{
printf("Hello from task1\n");
OSTimeDlyHMSM(0, 0, 6, 0);
}
}
/* Prints "Hello World" and sleeps for three seconds */
void task2(void* pdata)
}
}
/* The main function creates two task and starts multi-tasking */
int main(void)
{
OSTaskCreateExt(task1, NULL, (void *)&task1_stk[TASK_STACKSIZE-1], TASK1_PRIORITY, TASK1_PRIORITY, task1_stk, TASK_STACKSIZE, NULL, 0);
OSStart(); return 0;
}
LCD.h 的顶层文件为:
#ifndef _LCD_H_
#define _LCD_H_
//LCD Module 16*2
#define lcd_write_cmd(base,data) IOWR(base, 0, data)
#define lcd_read_cmd(base)
void LCD_Show_Text(char*Text);
void LCD_Line2();
void LCD_Test();
5
山东工商学院
//========================= #endif //_LCD_H_
课程设计报告
5、连接开发板,将文件下载到开发板,运行文件检验是否正确。 6、检查错误并修改,知道结果正确。 7、运行结果
SOPC Builder 是在 Quartus II 里的 SOPC Builder 进行的,先建立工程在 SOPC Builder 里添加硬件,包括 CPU ,PLL,onchip_memory,SSRAM,SDRAM Tristate Bridge,Hale Waihona Puke BaiduFlash, JTAG UART,UART, Timer System ID 2、Quartus II 硬件处理 硬件会自动建立一个顶层模块,通过建一个原理图来对对应的硬件进行输 入输出的添加,再锁定引脚,编译工程,硬件下载。 3、Nios II DE2 嵌入软件编写
7
山东工商学院
指导教师评语
课程设计报告
课程设计成绩: 指导教师签字:
8
4
山东工商学院
课程设计报告
OSTaskCreateExt(task2, NULL, (void *)&task2_stk[TASK_STACKSIZE-1], TASK2_PRIORITY, TASK2_PRIORITY, task2_stk, TASK_STACKSIZE, NULL, 0);
OSTaskCreateExt(task3, NULL, (void *)&task3_stk[TASK_STACKSIZE-1], TASK3_PRIORITY, TASK3_PRIORITY, task3_stk, TASK_STACKSIZE, NULL, 0);
定。 引脚锁定引脚文件如下:
2
山东工商学院
课程设计报告
图 2.引脚配置
然后进行编译,在 Quartus I 下生成文件如下图: 4、Nios II 运行
打开 Nios II IDE2,建立工程,选择 count_binary 模块,添加一个 LCD.h 的 顶层文件。
在此写出 C 语言程序代码。
#include <stdio.h> #include "includes.h"
在 Nios II 里建立工程,选择相应的模块,编写需要嵌入的软件,添加缺少 的头文件对应的宏定义,编译工程,进行软件下载,在观察结果。
四、设计步骤
1、打开 Quartus II 新建工程
1
山东工商学院
2、打开 SOPC Builder 生成相应的硬件如图所示
课程设计报告
图 1.SoPC 配置
建立好后点击 Generate 运行,看是否出错,然后点击 exit 退出。 3、调用刚才生成的硬件系统,在 Quartus II 中建立图形文件,然后进行引脚锁
FPGA-CPLD 原理及应用课程设计报告
题目: 基于 NIOS 的 μC/OS-II 实验
学院: 信息与电子工程学院 专业: 电子科学与技术 学号: 姓名: 指导老师: 时间:2013-7-15~2013-7-20
山东工商学院
课程设计报告
一、摘要
本实验项目使用 Quartus II、SOPC Builder 和 Nios II EDS 从零开始构建一 个能够在 DE2-115 实验平台上运行的 μC/OS-II 操作系统的 Nios II 系统。初 学者可以借此范例熟悉 Quartus II、SOPC Builder、Nios II EDS 的使用,并且了 解基于 FPGA 的嵌入式系统开发流程。 关键词: SOPC Builder Nios II DE2 Nios II EDS
4、进行引脚锁定时,注意引脚文件的编写,否则选择引脚文件点击 Run 后 会不成功,从而影响后面程序的调试;
6
山东工商学院
课程设计报告
六、结论
采用NIOSⅡ集成开发环境提供的快捷开发手段,在Cyclone 1C6Q240C8芯片 上创建了一个用户定制CPU和外设的片上系统,同时完成对液晶显示器和LED的 编程控制。整个系统充分体现了SOPC设计方法的灵活性,设计时只定制系统需 要的外设器件接口,避免过多的外围电路和器件造成体积、功耗的增多和可靠性 的下降。由于采用软核结构,方便系统的升级和扩展,而不必硬件改版,节约了 成本,加快开发进度,缩短了产品的开发周期。
IORD(base, 1)
#define lcd_write_data(base,data) IOWR(base, 2, data)
#define lcd_read_data(base)
IORD(base, 3)
//==========================
void LCD_Init();
/* Definition of Task Stacks */
#define TASK_STACKSIZE
2048
OS_STK task1_stk[TASK_STACKSIZE];
OS_STK task2_stk[TASK_STACKSIZE];
OS_STK task3_stk[TASK_STACKSIZE];
(3) DE2-115 并非 Altera 公司原创的开发板,而是友晶科技 ODM 的电路板, 很多外围设备都与 Altera 提供的电路板不一样,所以很多 Altera 手册中范例都 无法执行,必须要有自己从硬件到软件建立系统的能力,将来才有办法将 Altera 提供的范例移植到 DE2-115 上执行并做到最佳化。 三、设计内容” 1、SOPC Builder 硬件建立
图 3.运行结果
五、运行情况与问题分析
1、建立工程时,注意不能出现中文或者空格,且工程名需与文件名一致, 选定芯片;
2、在生成 CPU 硬件系统时,定义端口时,需注意设定端口输入与输出的位 宽,需与程序定义的数值一致,否则运行溢出报错,须修改;
3、建立图形文件后,需进行编译,出现错误得返回原理图核对,找到错误 修改后重新编译;
七、心得体会
经过本次 SOPC 课程设计实验,使我更加熟悉了 Quartus Ⅱ与 Nios Ⅱ DE2 以及开发板的使用,熟练掌握了从理论设计到硬件开发的流程,了解了万年历通 过编程实现的整个过程。从整个实验实现的过程中,碰到一些以前未出现过的问 题,在自己的努力以及同学、老师的帮助下,使自己的理论及操作水平有所提高。
3
山东工商学院
课程设计报告
/* Definition of Task Priorities */
#define TASK1_PRIORITY
1
#define TASK2_PRIORITY
2
#define TASK3_PRIORITY
3
/* Prints "Hello World" and sleeps for three seconds */
相关文档
最新文档