14.1 EDK - 如何从ML605上的Platform Flash XL引导应用程序?

描述

此答复记录描述了如何从板载Platform Flash XL(XC128F)引导加载应用程序。

本教程假设ML605,AXI_EMC,DDR3和AXI_uartlite。

1)确保ML605上的MODE引脚设置为S2 [1:6] = 10011X
  • 有关如何执行此操作的详细信息,请参阅“ ML605配置指南” (UG534)。

2)在XPS中构建硬件

3)在Base System Builder中,为您的器件选择ML605。

4)为外围器件选择DDR,线性闪存和UARTLITE。

5)单击“下一步”直到“完成”。

6)在MHS中:

  • 将P30_CS_SEL(fpga_0_FLASH_CE_inverter_Res_pin)连接到地
  • 将FPGA_FCS_B(设计中的新信号)连接到存储器控制器的CEN引脚
  • 将Mem_ADV_LDN端口添加到内存控制器
  • 将Mem_ADV_LDN_net(设计中的新信号)连接到PLATFORMFLASH_L_B引脚
7)将以下内容(您的信号名称可能略有不同)添加到UCF:
  • 净fpga_0_FLASH_CE_inverter_Res_pin LOC = AJ12 | IOSTANDARD = LVCMOS25;
  • 净额fpga_0_FLASH_Mem_ADV_LDN_pin LOC = AC23 | IOSTANDARD = LVCMOS25;
  • 净fpga_0_FLASH_Mem_FPGA_FCS_B_pin LOC = Y24 | IOSTANDARD = LVCMOS25;
8)在UCF中注释掉以下内容:
  • 净fpga_0_FLASH_Mem_A_pin <7> LOC = AA23 | IOSTANDARD = LVCMOS25;
9)单击项目 - >将硬件设计导出到SDK
  • 确保选中“包括比特流和BMM文件”复选框
10)SDK启动后,创建两个新的Xilinx C项目(在文件下 - >新建)
  • 你好,世界
  • SREC Bootloader
11)确保每个项目的链接描述文件指向正确的内存位置(右键单击应用程序 - >生成链接描述文件):
  • SREC Bootloader = BRAM
  • Hello World = DDR
12)打开SREC bootloader项目中的blconfig.h文件。
  • 设置地址以匹配system.xml + 0x00F0 0000偏移量中的FLASH BASEADDR。
  • 例如,如果FLASH从0x7600 0000开始,则将地址设置为0x76F0 0000
13)打开SREC bootloader项目中的bootloader.c文件。
  • 将以下行添加到include部分:
    • #include“xio.h”
    • #include“xparameters.h”
  • 将以下行添加到main()函数的init_stdout()下;
    • XIo_Out16(XPAR_LINEAR_FLASH_S_AXI_MEM0_BASEADDR + 0x17BBE,0x60);
    • XIo_Out16(XPAR_LINEAR_FLASH_S_AXI_MEM0_BASEADDR + 0x17BBE,0x03);

14)使用Ctrl-B构建两个应用程序

15)尝试使用Xilinx工具 - >编程FPGA并选择该精灵将SREC Bootloader下载到FPGA。

  • 如果没有连接电路板,它将失败。这只是运行DATA2MEM以获得带有SREC引导加载程序的download.bit。
16)转到Xilinx工具 - >程序闪存
  • 您需要使用比特流配置FPGA。步骤14中的那个应该工作。

17)选择Hello World ELF文件(通常在workspace_dir / hello_world_0 / Debug / hello_world_0.elf下)。

18)勾选“转换为可引导SREC格式”框。

  • 如果该框显示为灰色,请关闭flashwriter窗口。
  • 选择Xilinx Tools - > Launch Shell。
  • 导航到hello_world_0 / Debug目录。
  • 键入以下命令:
    • mb-objcopy O srec hello_world_0.elf hello_world_0.srec
  • 最小化shell,并重复步骤15和16,但选择SREC而不是ELF。

19)将闪光偏移设置为0x00F00000。

20)程序闪存。

21)返回SDK,单击Xilinx Tools - > Launch Shell。

22)输入:

  • promgen -p bin -c FF -o swapped.bin -data_file up 0 hello_world_0.srec -w
  • 您需要将“hello_world_0.elf.srec”指向保存srec的位置(通常在hw_platform_0 / cache下)

23)打开iMPACT。

24)单击左侧的“创建PROM文件”。

25)选择BPI Flash - >配置单个FPGA - > [绿色箭头]

26)在步骤2中选择Virtex-6。

27)选择XC128F [128M]。

28)[绿箭]

29)选择您将记住的保存位置。

30)文件格式MCS。

31)数据宽度x16。

32)添加非配置文件是。

33)单击“确定”。

34)单击“开始”将“添加器件文件”添加到“修订0”。

35)在hw_platform_0 /文件夹下找到你的download.bit。

36)不要添加其他器件文件。

37)将您在步骤(18)中创建的swapped.bin文件添加为非配置/数据文件。

38)将其添加到地址0x0078 0000。

39)单击左侧的生成。

40)初始化边界扫描。

41)右键单击您的器件,然后添加SPI / BPI闪存。

42)分配您在(25)中创建的MCS。

43)右键单击器件的闪存,然后单击“程序”。

44)这样就完成了你需要采取的步骤。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 14:33:08 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它