FPGA中SPI复用配置的编程方法

[09-12 18:26:52]   来源:http://www.88dzw.com  EDA/PLD   阅读:8500

文章摘要:AT45DB161D的存储器阵列分为3个级别的粒度,分别为扇区、块与页。图4对各个级别进行了分析,详细说明了每个扇区与块的页数。所有的编程操作都是针对页的。擦除操作可以作用于芯片、扇区、块或页。最后利用定义的空函数int(*boot_app_jump) (void);”将地址指针指向内存的应用程序基地址,使其从此处开始运行程序。//将目的地址赋给跳转函数boot_app_jump=(int(*)(void))DESTINATION_AD-DR;//运行跳转函数,使其在该函数地址开始运行程序boot_app_jump();3 SPI Flash软件引导过程及SPI Flash编程本实验使用简单的

FPGA中SPI复用配置的编程方法,标签:eda技术,eda技术实用教程,http://www.88dzw.com

  AT45DB161D的存储器阵列分为3个级别的粒度,分别为扇区、块与页。图4对各个级别进行了分析,详细说明了每个扇区与块的页数。所有的编程操作都是针对页的。擦除操作可以作用于芯片、扇区、块或页。

  最后利用定义的空函数int(*boot_app_jump) (void);”将地址指针指向内存的应用程序基地址,使其从此处开始运行程序。

  //将目的地址赋给跳转函数

  boot_app_jump=(int(*)(void))DESTINATION_AD-DR;

  //运行跳转函数,使其在该函数地址开始运行程序boot_app_jump();

  3 SPI Flash软件引导过程及SPI Flash编程

  本实验使用简单的应用程序(打印hello_world),即工程“hello_world”。工程serial_Flash_bootloader就是上面设计的引导程序。

  3.1 编译用户应用程序的二进制文件

  由于应用程序要在外部SDRAM中运行,所以不需要初始化BRAM存储器,如图5所示。


  为了指明程序的开始地址和应用程序的可执行文件的产生路径,需要在编译选项中设置。右键“应用程序工程”,Set Compiler Options在Output ELF file中选择可执行文件的产生路径,如XC3S500E\hello_world\hello_world.elf,在Program Start Address中键入程序执行的起始地址(这里是SDRAM的基地址:0x90000000)。接下来编译应用程序工程,编译完成后就会在XC3S500E\hello_world文件夹中产生hello_world.elf。为了后面对SPI Flash编程的需要,应将elf转变成二进制形式的文件。这就需要利用cygwin shell窗口命令来完成,这个脚本提供了一个简单的命令实现这个目的。利用mb-objcopy-O binary<options><ELF file input><bi-nary file to output>命令就可以将elf转变成二进制形式的文件(.b文件)。

  例如:mb-objcopy-O binary ./hello world/helloworld.elf./hello_world/hello_world.b用来在工程目录下hello_world文件夹创建工程的一个hello_world.b的二进制文件。生成的文件hello_world.b大约2 KB左右。

  3.2 Bootloader引导程序与硬件配置文件的生成

  serial_Flash_bootloader要初始化到BRAM中(即在“工程”上右键→BRAM Initialization and unmark a11)。

  这样做的意义是在编译Bootloader程序时就将它编译后的执行文件(.elf文件)加入到硬件system.bit中生成一个download.bit。这个文件既包含了系统硬件配置信息,又包括了Bootloader程序执行文件。由于设置了初始化到BRAM中,所以在系统上电时才能使Bootloader程序自动加载到片内BRAM中运行,实现程序的引导功能。只要利用EDK用软件中download bitstram功能就可以实现上述功能。

  3.3 编写SPI PROM文件

  本部分提供为SPI Flash存储器创建PROM文件的指导原则。在将生成bitstram.bit比特流转换成SPI格式PROM文件之前,设计人员必须确认该比特流是用bitg-en-g StartupClk:Cclk选项生成的。此选项使启动顺序与Spartan-3E内部时钟同步,从而确保FPGA功能正常。

  ①将硬件配置和serial_Flash_bootloader引导程序的bitstrem.bit转换为MCS格式文件。

  ②将前面得到的应用程序的二进制文件(hello_world.b)转换为MCS格式文件。

  ③将以上得到了2个MCS文件合成1个MCS文件。

  ④编程SPI Flash芯片。

  以上过程,除了③以外,Xilinx公司的iMPACT编程软件都可以实现。③要由DOS命令完成。所以下面都是以DOS命令来完成编程的全过程。

  再使用DOS命令完成格式化和编程之前,要对down-load.bit、应用程序、spiPartNam和spi_offset参数进行设置,以便XSPI软件程序能对用户要求加以识别。如下:

  set bitstream=../implementation/download.bit

  set application=hello_world

  set spiPartName=AT45DB161D//SPI Flash器件的名称

上一页  [1] [2] [3]  下一页


Tag:EDA/PLDeda技术,eda技术实用教程EDA/PLD
分类导航
最新更新
热门排行