新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于SPI复用配置的FPGA编程方法

基于SPI复用配置的FPGA编程方法

作者:时间:2011-11-24来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/150029.htm

1.2 Flash存储器的
Flash是指既用它来保存硬件文件、Bootloader引导程序还用来保存用户应用程序。在加载阶段,自动从 Flash中读取硬件bit文件及Bootloader程序进行到片内BRAM中运行。当完成加载后,内部逻辑启动,通过运行的Bootloader程序读取SPI Flash中的用户应用程序,并写到外部SDRAM的相应位置,最后Bootloader程序切换指令指针到SDRAM指定位置,在外部的SDRAM中开始执行应用程序。
图3给出了本系统中SPI Flash嵌入式系统结构图,用EDK中的opb_sdram连接外部SDRAM,用opb_spi连接SPI Flash(AT45DB161D),通过Bootloader软件程序实现从SPI Flash中复制用户应用程序到SDRAM中,然后在SDRAM中运行。但是,Boot-loader在系统上电时会通过FP-GA芯片的配置引脚首先加载到BRAM中运行,这样就可以实现上电自动加载启动程序。

2 Bootloader引导程序的设计
在工程代码编写之前要求对硬件器件有所了解,主要需要了解所需要的配置文件空间,还有Flash存储结构。例如:XC3S500E配置文件空间为2 270 208位,所以要根据它计算存储应用程序的基地址。AT45DB161D是串行接口的闪存芯片,它包含有17 301 504位,被组织为4 096页,每页512/528字节。除了主存储器,AT45DB161D还包括2个SRAM数据缓冲区,每个缓冲区512/528字节。在主存储器正在时,缓冲区是允许接收数据的,并且支持数据流式写入。(此处为528字节/页)
AT45DB161D的存储器阵列分为3个级别的粒度,分别为扇区、块与页。图4对各个级别进行了分析,详细说明了每个扇区与块的页数。所有的操作都是针对页的。擦除操作可以作用于芯片、扇区、块或页。
最后利用定义的空函数int(*boot_app_jump) (void);”将地址指针指向内存的应用程序基地址,使其从此处开始运行程序。
//将目的地址赋给跳转函数
boot_app_jump=(int(*)(void))DESTINATION_AD-DR;
//运行跳转函数,使其在该函数地址开始运行程序boot_app_jump();


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭