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)
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)
电路 MCU CPLD FPGA Altera 电压 电阻 Quartus 嵌入式 单片机 相关文章:
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 基于PLB总线的H.264整数变换量化软核的设计(03-20)
- FPGA按键模式的研究与设计(03-24)
- 周立功:如何兼顾学习ARM与FPGA(05-23)