ImageVerifierCode 换一换
格式:PPT , 页数:46 ,大小:562KB ,
资源ID:384216      下载积分:12 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-384216.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(使用NiosⅡIDE对FLASH存储器编程的步骤启动NiosIIIDE。建立软件.ppt)为本站会员(ga****84)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

使用NiosⅡIDE对FLASH存储器编程的步骤启动NiosIIIDE。建立软件.ppt

1、SOPC技术,第5章 Nios II 系统的外围设备,NO.3.1,4. 使用IDE Flash Programmer编程,完成所有的软/硬件开发工作后,可以使用NiosIDE提供的Flash Programmer工具将程序下载到FPGA平台上的FLASH存储器中。Flash Programmer是Nios IDE 6.0提供的新工具,它可以将配置数据、Nios程序及其他数据文件下载到目标板上的FLASH存储器中,这里所说的FLASH存储器包括业界标准的CFI或CFI兼容的FLASH存储器,以及Altera公司的EPCS系列串行配置器件。,IDE Flash Programmer 通过2个过程

2、将数据写入flash:(1)用Altera提供的“Flash编程设计”对FPGA进行配置;(2) IDE Flash Programmer将文件内容 “Flash编程设计” Flash,Flash编程设计,每个Flash编程设计应包含的元件:,使用IDE Flash Programmer编程,首先要保证在SOPC Builder中,在Target选项区中的Board的下拉列表框中选择用户当前使用的目标板Flash 编程设计。 SmartSOPC_Board_1C6是现用核心板提供的目标板Flash编程设计,可以对核心板上的NOR Flash(元件标号U7)和EPCS (元件标号U10)进行编程

3、。,使用NiosIDE对FLASH存储器编程的步骤:启动Nios II IDE。 建立软件工程,然后编译连接(Build Project) 选中要进行编程的工程,然后选ToolsFlash Programmer菜单启动Flash Programmer对话框,如图5.5.2。 单击Flash Programmer对话框左下角的New命令按钮,建立一个新编程任务,可以修改这个新任务的名称。,若选中program software project into flash memory project,可将工程的.elf文件写入Flash(EPCS)。若选中program FPGA configurat

4、ion data into hardware-image region of flash memory,可将FPGA的配置文件写入Flash(EPCS)。若选中Program file into a flash memory选项,可将二进制文件写入Flash。需要选择要编程的二进制文件及要编程的存储器(U7为Flash,U10为EPCS)。,(5) 在Main页面中可以选择所要编程的内容,包括工程名称、FPGA配置文件的名称以及目标存储器。,图5.5.2 Flash Programmer对话框,(4) 在Target Connection页面中选择与目标板相连的下载电缆,如图5.5.3。,(5

5、) 设置好这些内容之后,单击Apply按钮,然后单击Program Flash按钮,NiosIDE重新编译工程并对FLASH存储器进行编程。(若在SOPC Builder中没有指定目标板,则Program Flash按钮将是灰色不能使用。) 从IDE的Console窗口可以看见编程过程。(见图5.5.4) 完成Flash编程后,需让系统重新上电,使FPGA使用EPCS中配置数据重新配置FPGA, 程序才能正常运行。,图5.5.3 Flash Programmer 中目标连接设置,在console窗口显示编程过程及编程结束标志,图5.5.4,通信接口,目前存在的所有计算机通信接口在嵌入式领域中都

6、有其广泛的应用,应用最为广泛的接口设备包括 RS-232接口(串口UART) USB接口(通用串行总线接口) IrDA(Infra Red Data Association红外线接口) SPI(串行外围设备接口)、 I2C、CAN总线接口、 蓝牙接口(Bluetooth) Ethernet(以太网接口)、 IEEE1394接口和通用可编程接口GPIO。,5.5 UART内核,UART(Universal Asynchronous Receiver/Transmitter通用异步接收器/发生器)内核带有Avalon接口,为嵌入式系统和外部设备提供了串行字符流动通信方式,其数据以RS-232协议的

7、形式与外界进行交互。提供可调整的波特率;可配置奇偶校验位、停止位和数据位等。,UART内核的结构框图,UART内核寄存器映射,UART内核配置选项,1、波特率设置2、数据位、停止位、奇偶校验位3、流控制4、Avalon流控制传输,软件编程,Altera提供的驱动程序执行HAL字符模式设备驱动程序。HAL用户应通过熟悉的HAL API函数和ANSI C标准库函数访问UART,而不是访问UART寄存器。,altera_avalon_uart_regs.h 寄存器级访问头文件altera_avalon_uart.h, altera_avalon_uart.c HAL系统库的UART内核设备驱动程序,

8、实验4.10:ANSI C标准库来访问UART;如果检测到字符t,则报告检测到字符t;如果检测到字符v,则退出程序。,#include#include#include system.hint main () char* msg = Detected the character t.n; FILE* fp; char prompt = 0; printf(Please Enter some characters: n); fp = fopen (UART_NAME, r+); /打开文件进行读和写,if (fp) while (prompt != v) / 循环直至接收到 v prompt =

9、getc(fp); / 从UART中获取字符 if (prompt = t) / 如果字符为 t 打印信息 fwrite (msg, strlen (msg), 1, fp); if (ferror(fp) / 检查错误是否在UART连接上出现 clearerr(fp); / 如果是,清除它 fprintf(fp, Closing the UART file handle.n); fclose (fp); else printf(Fail to open file.n); return 0; ,System.h 描述的UART设备,#define UART_NAME /dev/uart#def

10、ine UART_TYPE altera_avalon_uart#define UART_BASE 0x00B00840#define UART_IRQ 1#define UART_BAUD 115200#define UART_DATA_BITS 8#define UART_FIXED_BAUD 0#define UART_PARITY N#define UART_STOP_BITS 1#define UART_USE_CTS_RTS 0#define UART_USE_EOP_REGISTER 0#define UART_SIM_TRUE_BAUD 0#define UART_SIM_CH

11、AR_STREAM #define UART_FREQ 48000000,具有Avalon接口的JTAG UART核是实现在PC机和FPGA上的SOPC Builder系统间进行串行通信的一种实现方式JTAG UART用来替代RS-232完成与PC主机的字符输入/输出, NiosII 处理器通过读/写控制和数据寄存器与JTAG UART核通信,5.6 JTAG-UART内核,对于NiosII 处理器, HAL系统库中包含该设备的驱动程序,允许使用ANSI C标准库stdio.h访问JTAG UART核对PC机, Altera提供JTAG终端软件来管理PC机与目标系统的连接,对JTAG数据流解码

12、和在屏幕上显示字符,5.7 JTAG-UART内核,JTAG UART核方框图,缺省的深度值(64)IRQ门限值(8)是最优的,不用改变,JTAG UART核配置,软件编程,HAL用户应通过HAL API 和ANSI C 标准库访问JTAG-UART,而不是访问JTAG-UART寄存器。对JTAG UART核的操作与下列文件有关。 altera_avalon_jtag_uart_regs.h altera_avalon_jtag_uart.h altera_avalon_jtag_uart.c,#include #include #include system.hint main() char

13、 *msg=“Detected the character t.n”;FILE *fp;char prompt=0;printf(Please Enter some characters: n);fp=fopen(“/dev/jtag_uart”,”r+”); /为读写操作打开文件If(fp) while(prompt!=v) /循环直到接收一个”v” prompt=getc(fp); /从JTAG UART中读取一个字符 if(prompt=t) /若字符是“t”,则输出信息 fwrite(msg,strlen(msg),1,fp); ,例:使用标准库通过JTAG UART核读和发送一个消息

14、,if(ferror(fp) /检查是否有错误产生clearerr(fp); /若有则清除fprintf(fp,”Closing the JTAG UART file handle.n”);fclose(fp); else printf(Fail to open file.n); return 0;,5.7 定时器内核,定时器可作为系统的周期性时钟源(Tick);可以作为计数器测定事件发生的时间;作“看门狗”(Watchdog)。定时器内核特性: 可控制定时器的启动、停止或复位 两种计数模式:单次减一和连续减一计数模式 计数器达到0时产生中断请求(IRQ) 可作为看门狗定时器 可选择输出周期性

15、脉冲 可由软件使能或屏蔽定时器中断,定时器内核结构框图,定时器寄存器,1. 状态寄存器(status),2. 控制寄存器(control),3. periodl & periodh 寄存器,periodl 和 periodh 寄存器一起存储超时周期的计数值。当对此寄存器进行写操作或内部计数器减到0时,保存在periodl &和periodh 中的值会装载到内部计数器中。,4. snapl & snaph 寄存器,可通过对snapl & snaph 寄存器的写操作来获取32位内部计数器的当前值。,5. 中断操作,只要内部计数器减到0且控制寄存器的ITO位设为1,定时器内核就会产生IRQ.用户可用

16、以下任一方式应答IRQ: 清除状态寄存器的TO位,等待下一个超时事件的发生; 通过将控制寄存器的ITO位清零来禁止中断。,定时器内核(interval timer)配置选项,Timeout Period: 设置periodl 和 periodh 寄存器的初始值,此值可根据系统输入时钟频率和initial period中的设置计算获得。,定时器内核配置选项,Preset Configurations: 提供的预定义硬件配置:Simple periodic interrupt Full-featured Watchdog,Writeable period:主控制器可通过写periodl 和 per

17、iodh改变向下计数周期 Readable snapshot:主控制器可读当前向下计数的值Start/stop control bits:主控制器可通过写控制寄存器的START和STOP位来启动后停止定时器。Timeout pulse:当定时器计数到0时将输出持续一个周期的高电平。System reset on timeout:配置定时器用于看门狗。,当使能以下各项时:,定时器提供了硬件的寄存器级访问和HAL层的API函数: altera_avalon_time_regs.h: 定义内核的寄存器映射并提供硬件设备访问宏定义; altera_avalon_timer.h、altera_avalo

18、n_timer_sc.c、 altera_avalon_timer_ts.c、 altera_avalon_timer_vars.c 实现了HAL系统库的定时器设备驱动程序(在components/altera_avalon_timer中),软件设计,软件设计,HAL API提供如下两种定时器设备的驱动程序: 系统时钟定时器-该驱动程序支持报警(alarms)。 时间戳定时器 -该驱动程序支持高精度的时间测量。HAL特定的访问定时器设备的API函数在components/altera_hal/HAL/inc/sys/alt_alarm.h和sys/alt_timestamp.h中定义。,【实验

19、4.5】利用系统时钟服务产生1s的周期性事件,并借此控制LED闪烁,#include #include system.h /包含基本的硬件描述信息#include altera_avalon_pio_regs.h /包含基本的IO寄存器信息#include alt_types.h /Altera定义的数据类型#include sys/alt_alarm.h /系统时钟服务头文件,#ifndef LED_PIO_BASE /这是LED_PIO核的基地址#define LED_PIO_BASE 0xffffffff /users definition here#endif#if LED_PIO_B

20、ASE = 0xffffffff#error No definition of LED_PIO core.n#endif#define LEDCON 0xff static alt_alarm alarm; /按调用API函数规定定义的变量static unsigned char led = 0xff;,功能:按调用规定系统时钟回调函数,在该函数中实现用户功能,入口参数:context,系统传给回调函数的参数 出口参数:返回下一次的系统时钟服务的周期值,alt_u32 my_alarm_callback (void* context) if(led = 0xff) led = 0x00; el

21、se led = 0xff; IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,led); /操作IO口 return alt_ticks_per_second();,功能:初始化LED_PIO为输出,其余输入,屏蔽中断,清边沿捕获寄存器,void InitPIO(void) /* LED_PIO为输出,其余输入 */ IOWR_ALTERA_AVALON_PIO_DIRECTION(LED_PIO_BASE, LEDCON); /* 禁止所有PIO中断 */ IOWR_ALTERA_AVALON_PIO_IRQ_MASK(LED_PIO_BASE, 0x00)

22、; /* 清清边沿捕获寄存器 */ IOWR_ALTERA_AVALON_PIO_EDGE_CAP(LED_PIO_BASE, 0x00);,int main() InitPIO(); IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,0xff); /灭LED printf(test alarm.n); /打印提示信息 printf(alt_ticks_per_second() is %ld, alt_ticks_per_second(); if (alt_alarm_start ( ,5.8 System ID 内核,SOPC Builder 生成NiosII 系统时,将为每个Nios II系统生成一个标识符,供编译器和用户辨别所运行的程序是否与目标系统匹配。当程序运行在与之不匹配的系统上时会产生不可预测的结果。系统ID内核寄存器包括ID寄存器(SOPC Builder系统ID)和timestamp寄存器(SOPC Builder 生成时间)在下载程序运行或调试之前,Nios II IDE 会检查硬件中的系统ID内核是否匹配所期望的软件系统ID,如不匹配,则终止下载。,

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。