惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
MyScale Blog
MyScale Blog
Recent Announcements
Recent Announcements
N
Netflix TechBlog - Medium
GbyAI
GbyAI
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
阮一峰的网络日志
阮一峰的网络日志
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
Martin Fowler
Martin Fowler
腾讯CDC
大猫的无限游戏
大猫的无限游戏
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
WordPress大学
WordPress大学
P
Proofpoint News Feed
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Y
Y Combinator Blog

博客园 - 所长

xilinx axi qspi V3.2 slave interrupt lwip 快速 高频 短帧发送 测试 If your port already typedef's in_addr_t, define IN_ADDR_T_DEFINED to prevent this code from redefining it. FPGA Verilog 线性反馈移位寄存器(LFSR) Libero FIFO Controller without Memory Software-Defined Radio for Engineers 一 频谱仪 N9020A 操作步骤记录 FPGA-CAN MAC 层 IP 核测试(二) 源码阅读 libero reg 编译时 占用 RAM 资源 而不是 LUT 资源 加扰和解扰 FPGA-CAN MAC 层 IP 核测试(一) 上板实测 Microchip SoftConsole v2022.2-RISC-V-747 polarfire soc 裸机例程中 链接文件 mpfs-envm-lma-scratchpad-vma.ld 分析 FlashPro5 导致 window11 蓝屏 libero verilog 模块例化时,信号不存在 默认是 不连接 A3P250 在线 debug 抓取信号 Identify 在线逻辑分析仪 MPFS250T MSS 引脚 上下拉配置 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接 (五) 官方参考 verilog 按键消抖模块 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接 (四) axi-lite 信号抓取 libero Active Probes 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接 (三) C代码测试 访问卡死 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接 (二) axi-lite 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接(一)libero 设置把模块信号变总线方式 libero 2025.2 Macro Library User Guide for SmartFusion 2 and IGLOO 2 FPGAs 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接 (零) MSS CFG MPFS250T FLASH 只有 128KB 调整代码优化 AD9361 SPI no-os 文件移植 SoftConsole MPFS250T 初学(七) 初始化日志记录 AD9361 SPI no-os 文件移植 SoftConsole MPFS250T 初学(六) 开启 日志打印 Calibration TIMEOUT (0x247, 0x2) AD9361 SPI no-os 文件移植 SoftConsole MPFS250T 初学(五) ad9361_check_cal_done 卡死
libero PolarFire soc SPI-DirectC 实战 dp_G5M_verify_diges...
所长 · 2026-02-11 · via 博客园 - 所长

校验,  编程是否正确 , 使用  摘文  digest  , 能 快速 的校验!

spi_input_buffer[0] = 0x1u;

    #define G5MSOC_CHECK_DIGESTS        0xD7u

            spi_command_buffer = G5MSOC_CHECK_DIGESTS; 

            G5M_SPI_SCAN_out(32u,32u);

先查询忙闲

先发送 指令 5个字节 , 0xD7  0x01 0x00 0x00 0x00  ,  执行该指令 , PS 程序会 暂停运行。

再次查询忙闲

再发送指令 5个字节  0x01 0x00 0x00 0x00 0x00

#define G5M_SPI_READ_DATA           0x01u

    spi_command_buffer = G5M_SPI_READ_DATA;

    do_SPI_SCAN_out(SPI_COMMAND_BIT_SIZE, &spi_command_buffer,total_dat_bits_out,spi_output_buffer);

读回来 4个字节 ,  第三个字节 = 0x 40  ,  则 校验失败! 不知这里是 校验过程失败 ,  还是 校验不通过 的意思?

        else if ((device_family == G5SOC_DEVICE_FAMILY) && (spi_output_buffer[3] == 0x40u))

        {

            #ifdef ENABLE_DISPLAY

            dp_display_text("\r\nFailed to verify digest.");

            #endif

            error_code = DPE_VERIFY_DIGEST_ERROR;

        }

Fabric digest verification: PASS

((spi_output_buffer[0] & 0x1u )== 0x1u)

Fabric Configuration digest verification: PASS

((spi_output_buffer[0] & 0x2u )== 0x2u)

sNVM digest verification: PASS

((spi_output_buffer[0] & 0x4u )== 0x4u)

eNVM digest verification: PASS

((spi_output_buffer[1] & 0x40u )== 0x4u)

。。。。。。。。。。后面还有好多

 交给 AI 总结

image

image

image

 0x 2 0x F 0xD8 0x 1 0x 0 

0x0F  对应 

image

D8 对应: 对应  eNVM  =  1,  表示 eNVM PASS

       if (device_family == G5SOC_DEVICE_FAMILY)

            {

                if ((spi_output_buffer[1] & 0x40u )== 0x4u)

                {

                    dp_display_text("\r\n --- eNVM digest verification: PASS");

                }

                else

                {

                    dp_display_text("\r\nWarning: --- eNVM digest verification: FAIL");

                }

            }

擦除后 再次 读取 校验

image

06 表示  FPGA FABRIC 校验失败!

但是  0XD8 表示  eNVM 校验成功,  难道 擦除  不能擦除  eNVM 的数据?  有待验证!

image