文章 ID: 000097899 内容类型: 故障排除 上次审核日期: 2024 年 06 月 06 日

为什么针对 Agliex™ 7 FPGA 的 Nios® V 处理器的 SDM 引导加载程序中的 mailbox_client_open() 后 mailbox_client_flash_open() 会失败?

环境

    英特尔® Quartus® Prime 设计软件
BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

由于 Agliex™ 7 FPGA 安全设备管理器 (SDM) 忙于FPGA初始化的问题,Nios®运行 SDM 启动加载程序时, V HAL函数 mailbox_client_flash_open) mailbox_client_open() 后可能无法打开闪存。

解决方法

要在 Agliex™ 7 FPGA安全设备管理器中解决此问题,请在函数 mailbox_client_flash_open() 之后添加延迟尝试,以在 <项目位置>\top_project\sw\mailbox_bootloader\app\mailbox_bootloader.c 的主函数中打开闪存。

下面显示的最大尝试为 1000,每次尝试延迟 10 毫秒。

attribute_((noreturn)) int main(int argc, char **argv){

intel_mailbox_client* mbox_client = mailbox_client_open(MBOX_NAME);

int record_address_ptr = PAYLOAD_OFFSET;

获得专属闪存访问权限

int 尝试 = 0;

int MAX_ATTEMPTS = 1000;

while((mailbox_client_flash_open(mbox_client)!=0) &&(++attempt < MAX_TRYS)){ usleep(10000);

if (attempt == MAX_TRYS) error();

......

相关产品

本文适用于 1 产品

英特尔® Agilex™ 7 FPGA 和 SoC FPGA

1

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。