仅对英特尔可见 — GUID: ylc1521916204389
Ixiasoft
5.6.5. 添加一个应用程序映像
按照下面步骤将一个应用程序映像添加到闪存中:
- 通过在Tcl Console窗口中运行 QSPI_OPEN 和QSPI_SET_CS命令设置对AS x4接口和闪存的独占访问。您现在可以独占访问AS x4接口和闪存,直到运行QSPI_CLOSE命令放弃访问权限。使用QSPI_WRITE命令将新应用程序映像写入闪存中。
- 或者,rsu1.tcl脚本包括program_flash函数,该函数将一个新应用程序映像编程到闪存中。执行以下命令:
program_flash new_application_image.rpd 0x03FF0000 1024
program_flash函数使用三个参数:
- 要写入闪存的.rpd文件。
- 起始地址。
- 每个QSPI_WRITE命令要写入的字数。QSPI_WRITE支持每条写指令最多1024个字。
图 82. 编程新应用程序映像$ source rsu1.tcl /channels/local/top/master_1 $ program_flash new_application_image.rpd 0x03ff0000 1024 total number of words is 458752 total number of page is 448 total number of sector is 28 reading rpd is completed start erasing flash erasing flash is completed start writing flash writing flash is completed
- 使用QSPI_WRITE命令将新的应用程序映像起始地址写入配置固件指针模块(CPB)中的新映像指针入口。开始写入前,要确保新的图像指针入口值为0xFFFFFFFF。
根据上述实例,CPB0和CPB1中的地址偏移0x20必须指向应用程序映像的起始地址。将新的应用程序映像的起始地址写入到下一个映像指针插槽前,下一个新映像指针插槽值必须为0xFFFFFFFF。
CPB起始地址 + 0x20 | 内容 | 值 |
---|---|---|
CPB0 + 0x20 = 0x002E4020 | 当前应用程序映像指针入口(最高优先级) | 0x002F4000 |
CPB0 + 0x28 = 0x002E4028 | 下一个映像指针入口 | 0xFFFFFFFF |
CPB1 + 0x20 = 0x002EC020 | 当前应用程序映像指针入口(最高优先级) | 0x002F4000 |
CPB1 + 0x28 = 0x002EC028 | 下一个映像指针入口 | 0xFFFFFFFF |
CPB起始地址 + 0x20 | 内容 | 值 |
---|---|---|
CPB0 + 0x20 = 0x004A0020 | 当前应用程序映像指针入口(最高优先级) | 0x004B0000 |
CPB0 + 0x28 = 0x004A0028 | 下一个映像指针入口 | 0xFFFFFFFF |
CPB1 + 0x20 = 0x004A8020 | 当前应用程序映像指针入口(最高优先级) | 0x004B0000 |
CPB1 + 0x28 = 0x002EC028 | 下一个映像指针入口 | 0xFFFFFFFF |
您可以使用QSPI_read函数来验证新映像指针入口值是否为0xFFFFFFFF。QSPI_read函数使用过两个参数:
- 起始地址
- 要读取的字数
图 83. 验证新映像指针入口值是否为0xFFFFFFFF
$ qspi_read 0x002e4020 1 0x002f4000 $ qspi_read 0x002e4028 1 0xffffffff % qspi_read 0x002ec020 1 ISR is empty 0x002f40000 % qspi_read 0x002ec028 1 0xffffffff
您现在可以通过使用QSPI_write_one_word函数将新应用程序映像地址写入到下一个映像入口。QSPI_write_one_word函数使用两个参数:
- 地址
- 字的值
图 84. Writing an Address Pointer to the New Image Pointer Entry
% qspi_write_one_word 0x002e4028 0x03ff0000 % qspi_write_one_word 0x002ec028 0x03ff
您现在可以对下一个映像指针入口运行QSPI_read函数以确保是使用所需的新应用程序映像的起始地址写入的。
验证新映像指针的更新
% qspi_read 0x002e4028 1 0x03ff0000 % qspi_read 0x002ec028 1 0x03ff0000
通过置位nCONFIG管脚,主机软件现在使用新应用程序映像对 Intel® Stratix® 10 FPGA进行重配置。或者,您可以重启PCB。重配置后,检查当前映像地址。预期的地址应该为0x03ff0000。添加新映像后,您的应用程序映像列表包括最新添加的应用程序映像和旧的应用程序映像(现在成为次要映像)。最新添加的应用程序映像具有最高优先级。
注: 当远程系统更新主机加载应用程序映像时,决策固件以相反的顺序遍历映像指针入口。重启器件时新映像具有最高优先级。