描述
此答复记录描述了如何从板载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)这样就完成了你需要采取的步骤。
没有回复内容