首页->【京微雅格FPGA助学小组】

36 2


  1. 一、创建mcf文件

  1. 1. 在工程目录下的outputs目录下新建top.mcf文件(Primace的download工具可以识别mcf文件,该文件主要根据文件内的各个下载文件在计算机中的位置,实现一次下载多个文件到用户指定的sector扇区对齐的spi flash地址中去),文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<multiConfig device="M5C06N3L144C7" storage="SPI" bootAddr="0">
<acf addrIdx="0" address="0" ref="G:\cme\project\emif_gpio\outputs\top_bin.acf"/>
<acf addrIdx="1" address="458752" ref="G:\cme\project\emif_gpio\outputs\user_data_spi.acf"/>
</multiConfig>
  1. 2. mcf文件的解释:

  2. 1)deveice="M5C06N3L144C7":表示器件的具体型号

  3. 2)storage="SPI":下载文件的个数为SPI格式,用户不必关心该值是SPI、BIN、JTAG或者是HEX,因为download程序实际设计中并没有判断该值;

  4. 3)bootAddr="0":表明FPGA的第一个配置固件为编号为addrIdx="0"的acf固件;

  5. 4)<acf addrIdx="0" address="0" ref="outputs/top_bin.acf"/>:addrIdx的值是acf文件的序号,格式为十进制;address的值表示该acf下载到flash的起始地址,格式为十进制,另外该地址必须为spi flash的sector扇区的其实地址,即必须64Kb地址对齐,"458752"表示flash的sector 7(0x10000*7),因为download工具在写入数据前执行的是sector擦出,如果地址不对齐的话,会造成用户数据后半部分在写入前,flash未被擦出;ref值表示文件的地址,地址格式可以是绝对地址(推荐使用),也可以是相对地址(工程目录为根目录,但是必须得打开FPGA工程,如果没有FPGA工程,是不能支持的,所以生产时不推荐采用这种相对路径的格式);


  6. 二、创建用户数据文件user_data_spi.acf

  7. 1.  该文件为明文,Primace的download需要根据文件头来识别此文件是否符合格式要求,文件的第1-10行为文件头,必须得符合要求;

  8. 2. 用户可用任意编辑器工具编辑创建这个文件,我这边以ultra editor编辑器为例;

  9. 3. 在文件中加入固定包头,用于download工具识别文件,文件第1-10行内容如下:

  10. //===========================================
    //   FILE VERSION: 4.0
    //    DEVICE_NAME: M5C06N3L144C7
    //           TYPE: SPI
    //      ENCRYPTED: NO
    //    ENCRYPT_KEY: 
    // MEM_INIT_FILES: 
    //      GENERATOR: acfgen 8.0.2 win64, Apr  6 2016
    //    DATE & TIME: Apr 20 2017 - 12:56:01
    //===========================================

    注:

  11. 1)DEVICE_NAME必须和器件型号一致,这里举例的器件型号为"M5C06N3L144C7",需要根据不同的型号来改变;

  12. 2)TYPE必须为"SPI",为固定值;

  13. 3)ENCRYPTED必须为"NO",为固定值;

  14. 4)其他值均为固定值,照抄即可;

  15. 5)包头一共10行;

  16. 4. 从文件的第11行加入用户数据(每一行代表一个flash地址,且地址是连续的,download工具主要跟据分行符来时间地址的连续增加),一共有10 bytes的数据,文件第11-20行内容如下:

  17. 23
    00
    7c
    00
    00
    00
    06
    cb
    34
    d7

    注:

  18. 1)第11行“23”表示:flash内sector 7(MCF文件里面指定的起始地址,该例程user_data存放在flash的sector 7 扇区)的第0个地址为0x23,格式为16进制;

  19. 2)第12行“00”表示:flash内sector 7(MCF文件里面指定的起始地址,该例程user_data存放在flash的sector 7 扇区)的第1个地址为0x00,格式为16进制;

  20. ... ...

  21. 3)第20行“d7”表示:flash内sector 7(MCF文件里面指定的起始地址,该例程user_data存放在flash的sector 7 扇区)的第9个地址为0xd7,格式为16进制;


  1. 三、下载mcf文件

  2. 打开download界面选择mcf文件所在目录进行下载

  3. blob.png


      四、小结

  1. 该例程仅仅定义了10个用户数据来说明使用方法,用户如果有更多数据可参照该例程来定义用户数据。例程工程如下:

  2. emif_gpio_userdata_v1.1.rar




作者于2017-04-20 14:52:47修改!
楼主可见

  1. 木易 2#

    京微雅格,还活着吗?

  2. rowen 1#

    我2013年第一次用了京微雅格的FPGA,不知道现在发展的如何了,这个方法我也在FAE的帮助下实现过