基于FPGA(cyclone IV)的NOR FLASH的应用
基于FPGA(cyclone IV)的NOR FLASH的应用
1.器件挂载到QSYS的三态驱动器上;
2. 查阅datasheet,配置时序;
3.编译,参考“黑金”或者“微雪”的例程…
实际工程使用S29GL512P,EPCS选用EPCS64,IS61WV51216该系统搭载十分豪华配置…
NOR FLASH 容量 512Mbits,64MB,
EPCS 64Mbit,8MB,
不用sdram,避免时钟相位问题
在NIOS II Eclipse中,第一行中include “sys/alt_flash.h”,包含着FLASH库函数
,nor flash 中的地址宽度为0x3fff_ffff(该参数位QSYS中对齐数据位用),实际的25根地址线,寻址范围位2^25 =512*63335,所以共512个Block,1个region,每个Block为0x10000,所以FLASH_OFFSET 值不宜乱取。由于flash本身的性质,如果要擦除位于某一个block中的某个地址(哪怕仅仅是一个),整个block的内容都会被擦除(全1)。
下面是的基本flash操作函数:
alt_flash_open_dev(),
alt_write_flash(),
alt_read_flash(),
alt_flash_close_dev(),
alt_get_flash_info(),
alt_erase_flash_block(),
alt_write_flash_block(),
1 #include "sys/alt_flash.h"2 #include <stdio.h>3 #include <stdlib.h>4 #include <unistd.h>5 6 #define BUF_SIZE 10247 #define FLASH_OFFSET 0x50000//偏移地址,实际为第六个Block8 9 int main()
10 {
11 printf("Fuck Nios II!\n");
12
13 int i;
14 alt_flash_fd* fd;
15 flash_region* regions;
16 int number_of_regions;
17 int ret_code = 0x0;
18 unsigned char source[BUF_SIZE];
19 unsigned char dest[BUF_SIZE];
20
21 unsigned char block_dest[0x2000];
22
23 for(i=0;i<100;i++){
24 source[i] = i;
25 }
26 fd = alt_flash_open_dev("/dev/cfi_flash");
27 printf("flash opening...\n"); //Debug
28 //fd = alt_flash_open_dev(“/dev/epcs_flash”); //EPCSX
29 if (fd){
30 printf("flash opened\n"); //Debug
31 printf("fd is %d\n",fd); //Debug
32 ret_code = alt_get_flash_info(fd, ®ions, &number_of_regions);
33 for(i=0;i<number_of_regions;i++){
34 printf("Start 0x%8x End 0x%8x Number of Blocks %3d Block Size 0x%8x \n",
35 (regions+i)->offset,
36 (regions+i)->region_size+(regions+i)->offset,
37 (regions+i)->number_of_blocks,
38 (regions+i)->block_size);
39 }
40 alt_erase_flash_block(fd, FLASH_OFFSET, BUF_SIZE);
41
42 /* //
43 / the entire block is erased to 1 //
44 //
45 ret_code = alt_read_flash(fd,0x4000,block_dest,0x2000);///
46 if(ret_code != 0){ //
47 printf("Can't read flash device\n"); //
48 exit(-1); //
49 } //
50 else{ //
51 printf("Read Flash Device Successfully.\n"); //
52 } //
53 // Print the destination data //
54 for(i=0;i<0x2000;i++){ //
55 printf("OFFSET_Address %4d is %d\n",i,block_dest[i]);
56 } //
57 //*/
58
59 ret_code = alt_read_flash(fd,FLASH_OFFSET,dest,BUF_SIZE);
60 if(ret_code != 0){
61 printf("Can't read flash device\n");
62 exit(-1);
63 }
64 else{
65 printf("Read Flash Device Successfully.\n");
66 }
67 // Print the destination data
68 for(i=0;i<100;i++){
69 printf("OFFSET_Address %2d is %d\n",i,dest[i]);
70 }
71
72 ret_code = alt_write_flash(fd,FLASH_OFFSET,source,BUF_SIZE);
73 if(ret_code != 0){
74 printf("Can't write flash device\n");
75 exit(-1);
76 }
77 else{
78 printf("Write Flash Device Successfully.\n");
79 }
80
81 ret_code = alt_read_flash(fd,FLASH_OFFSET,dest,BUF_SIZE);
82 if(ret_code != 0){
83 printf("Can't read flash device\n");
84 exit(-1);
85 }
86 else{
87 printf("Read Flash Device Successfully.\n");
88 }
89
90 for(i=0;i<100;i++){
91 printf("OFFSET_Address %2d is %d\n",i,dest[i]);
92 }
93 }
94 alt_flash_close_dev(fd);
95 printf("flash closed \n");
96 }
基于FPGA(cyclone IV)的NOR FLASH的应用相关推荐
- 基于FPGA的PCIe接口实现(具体讲解了数据流向)
转载自:https://www.cnblogs.com/chengqi521/p/7094544.html 时间:2014-12-09 来源:西安电子科技大学电子工程学院 作者:姜 宁,陈建春,王 沛 ...
- 基于FPGA实现的流水灯实验
版权声明:如需转载,请注明出处 https://blog.csdn.net/chengfengwenalan/article/details/79606351 基于FPGA实现的流水灯实验 一.开发环 ...
- 基于FPGA实现的流水灯项目
基于FPGA实现的流水灯实验 一.开发环境 软件环境:Quartus Prime 17.1 ,notepad++,gvim,modelsim-SE,TimeGen3 硬件环境:DE2-115(Inte ...
- 基于FPGA的多功能数字时钟设计报告
作品基于intel Cyclone IV E EP4CE10F17C8 FPGA板卡,主要开发环境为Quartus Ⅱ,编程并实现了多功能温湿度电子钟.本作品在实现显示实时时间的基础上,设计并完成了设 ...
- FPGA黑金开发板 CYCLONE IV核心板全新上市!!!!
FPGA: EP4CE15F17C8N SDRAM: 256Mbit (16M*16bit) SRA ...
- 基于FPGA的SPI FLASH控制器设计
1.SPI FLASH的基本特征 本文实现用FPGA来设计SPI FLASH,FLASH型号为W25Q128BV.支持3种通信方式,SPI.Dual SPI和Quad SPI.FLASH的存储单元无法 ...
- cyclone IV 系列轻量级FPGA 芯片ep4ce6e22c8 引脚分布图
目录 简介 EP4CE6E22C8 IO分布 BANK IO分布 补充 简介 EP4CE6E22C8作为可以手动焊接的一款轻量级cyclone IV系列芯片,百度了一大圈都只有一个用户手册,找不到引脚 ...
- 基于FPGA:肤色识别算法实现(OV5640摄像头+Cyclone芯片)含工程源码
目录 前言: 一.进入正文: 二.Verilog代码实现: 前言: 肤色识别算法的Verilog代码基于FPGA 的彩色图片转灰度实现的.本文参考硅农图像处理教学文章.一个良心公众号,有很多开源技术含 ...
- 基于FPGA 的8b10b编解码电路前端电路设计
基于FPGA 的8b10b编解码电路前端电路设计 摘 要 本设计是采用EDA技术设计的一种8B /10B 编解码电路,实现了在高速的串行数据传输中的直流平衡.该编解码电路设计大体上可以由五个模块构成, ...
- 基于FPGA视频图像处理系统设计
摘 要 本报告给出一个基于FPGA+两片DDR2组成的核心板.带有4路视频输入和VGA接口的开发板进行的视频图像采集和处理系统的设计.使用TW2867进行视频输入信号的编码,存储到DDR2中,通过 ...
最新文章
- WINCE源代码配置文件
- android 中 系统日期时间的获取
- 二维数组转稀疏数组,写入文件后再读取文件,将内容转回二维数组
- Vue (二) --- Vue对象提供的属性功能
- 奇淫巧技-Flutter调用C#
- 重庆大学计算机课程设计,计算机组成原理课程设计报告重庆大学.doc
- 服务器 .err文件,IIS 关闭HTTPERR(IIS日志)的方法
- 互联网日报 | 天猫双11今日启动预售;同程艺龙成立酒旅事业群;恒大汽车正式启动科创板上市辅导...
- 首批吃螃蟹!35 所高校获批开设「人工智能」本科专业
- Java Web-网页基础-HTML-CSS
- java中关于重写的说法_Java中有关“重载”和“重写”的说法正确的是()
- bootstrap设计登录页面_前端小白如何在10分钟内打造一个爆款Web响应式登录界面?...
- Java 8 方法引用 (Method Reference)快速介绍与示例
- tcpdump抓两个网卡的包_Linux下网络抓包命令tcpdump详解(在wireshark中看包)
- LINUX 软件安装。
- Python unittest基本框架组成(1)
- 增值税相关软件基本常识
- AliOS-Things开发入门
- 想做AR/VR相关创新项目,有什么好方向?要怎么做?
- Windows配置万德(Wind)量化接口
热门文章
- Python爬取熊猫办公音频素材数据
- 怎么把手机屏幕投射镜像到电脑上面?
- CH340串口驱动的官网下载链接地址(包含各大操作系统平台)
- 借贷行业,还有明天吗?
- 使用okhttp下载文件 、传统方式下载文件,简介okhttp使用(Java)
- 怎么把ide改成ahci_不重装系统如何开启ahci模式_不重装系统ahci改ide模式的方法...
- RC正弦波振荡电路Ltspice仿真
- 初识ARM嵌入式系统
- EMP电磁脉冲射频发射器制作教程
- cfiledialog对话框大小_CFileDialog类 通用对话框