libero PolarFire soc SPI-DirectC 实战 dp_G5M_perform_isc_enable

 

 

参考文档: SPI-DirectC User Guide 

源码下载:DirectC | Microchip Technology

 

libero PolarFire soc SPI-DirectC 实战 生成 固件 包含 softconsole 生成 的 HEX 文件

libero PolarFire soc SPI-DirectC .dat 烧录文件解析 - 所长 - 博客园

 

    spi_input_buffer[0] |= (G5M_ALGO_VERSION & 0x3fu); = 0x01
    spi_input_buffer[2] |= (G5M_DIRECTC_VERSION & 0x3fu) << 1u; 
    spi_input_buffer[2] |= (DIRECTC_PROGRAMMING & 0x7u) << 7u; = 0x00
    spi_input_buffer[3] |= (DIRECTC_PROGRAMMING & 0x7u) >> 1u; 
    spi_input_buffer[3] |= 0x28u; = 0x29
 
    spi_command_buffer = G5M_SPI_ISC_ENABLE;
    G5M_SPI_SCAN_out(32u,32u);
 
吐槽:官方写这个代码 太烂了 ……   根本 读不懂  …… 全局变量 满天飞
 
1、发送 5个字节 
分别是  命令 0x0B  和 上面 spi_input_buffer 4个字节 ,对应 01 00 00 29
 

image

 

2、发送  5个字节 
分别是 命令 0x01 和 4个字节 缓冲区 ,吐槽: 这个读取 感觉 没啥用 ……
 

image

 

 

顺便提下 关闭 

G5M_SPI_ISC_DISABLE = 0x0Cu
void dp_G5M_exit(void)
{
    if (g5_pgmmode_flag == TRUE)
    {
        dp_flush_spi_buffers();
        spi_command_buffer = G5M_SPI_ISC_DISABLE;
        G5M_SPI_SCAN_in(0u);
        dp_delay(1000u);
    }
    #ifdef ENABLE_DISPLAY
    dp_G5M_read_fsn();
    #endif
    
    spi_command_buffer = G5M_SPI_RELEASE;
    G5M_SPI_SCAN_in(0);
    
    spi_command_buffer = G5M_SPI_RELEASE;
    G5M_SPI_SCAN_in(0);
    
    return;
}

 

 

posted on 2026-02-10 11:43  所长  阅读(21)  评论(0)    收藏  举报

导航