微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > FPGA的在应用编程技术研究

FPGA的在应用编程技术研究

时间:04-24 来源:互联网 点击:
4 软件编程

Altera公司提供给客户两种类型的函数:SimpleFlash Access(简单的Flash访问),以及Fine—GrainedFlash Access(细粒度Flash访问)。本文使用Fine—Grained Flash Access函数,虽然比Simple Flash Access复杂一些,但可以避免通常的跨块擦除问题。因为Flash是按照块(Block)组织起来的,通常一次擦除一整个块。如果写Flash的地址与Flash块的组织结构不吻合,比如跨越了Flash块的边缘,那么可能会擦除掉其余的数据。在使用Flash的读写函数时,头文件中要包含 “sys/alt_Flash.h”和“sys/alt_Flash_dev.h”,这两个头文件提供了访问Flash器件的驱动接口。

使用之前要打开Flash。打开Flash,就像C程序打开硬盘中的数据文件一样。这里使用alt_Flash_open_dev()打开Flash,它返回一个句柄。例如:



其中,fd是alt_Flash_open_dev()返回的句柄;offset是相对Flash基地址的偏移量,是读操作中要读出数据第一个字节的地址;length是本次操作的数据长度,单位是字节。当返回值为时,表示读操作成功。



其中,fd是a1t_Flash_open_dev()返回的句柄;offset是相对Flash基地址的偏移量,是写操作中要写入的数据第一个字节的地址;length是本次操作的数据长度,单位是字节。当返回值为 O时,表示写操作成功。

使用完后别忘记关闭该Flash,就像读写完硬盘中的数据文件后要关闭一样。其原型如下:

void alt_Flash_close_dev(alt_Flash_fd*fd);

其中,fd是alt_Flash_open_dev()返回的句柄。

编者注:Flash器件读写程序略。

结语

目前,在FPGA的开发过程中,每次进行程序的调试和更新时都需要将产品与计算机直连,进行在线操作,这样就限制了程序调试和更新的空间范围。而基于 FPGA的在应用编程技术就是为了打破这种限制而设计的。在应用编程技术对硬件要求极低,只要满足FPGA是Cy—clone系列,具有Flash器件,具有上下位机的通信能力,无需增加太多的硬件资源,都可以实现在应用编程。如果产品具有网络功能或无线功能,那么在恶劣的工业现场和野外可以免除到现场反复拆卸、调试的麻烦。对于保密产品,该项技术可以保护知识产权,通过网络更新产品的软硬件,增加了更新过程中被破解的难度。

参考文献

   1. 徐光辉.程东旭.黄如 基于FPGA的嵌入式开发与应用 2006
   2. 李兰英 NiosII 嵌入式软核 SPOC设计原理及应用 2006
   3. 彭澄廉.周博.邱卫东 基于NIOS的SOPC设计与实践 2004
   4. Altera Cyclone datasheet 2008

作者:中国海洋大学 綦声波  马秀明
来源:单片机与嵌入式系统应用 2009 (1)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top