单片机/MCU论坛
直播中

李娓仑

7年用户 1347经验值
私信 关注
[问答]

使用PDL将S25FL512SAGMFI010闪存IC初始化并使用到XIP模式,无法成功地读取数据是为什么?

我希望使用 PDL 将 S25FL512SAGMFI010 闪存 IC 初始化并使用到 XIP 模式,供 QSPI 在 CY8C6145 MCU 上使用。

我对如何做到这一点的理解是 main 中的这段代码:
        cy_stc_sysint_t smifIntConfig =                {        #if (CY_CPU_CORTEX_M0P)                                NvicMux7_IRQn,                                SMIF_INTERRUPT,        #else                                SMIF_INTERRUPT, // SMIF interrupt number (non M0 core)        #endif                                SMIF_PRIORITY                };                (void) Cy_SysInt_Init( smifIntConfig, SMIF_Interrupt_User);                        __enable_irq();#if (__CORTEX_M == 0)        NVIC_EnableIRQ(NvicMux7_IRQn);#else        NVIC_EnableIRQ(SMIF_INTERRUPT);#endif        /* SMIF initialization */        volatile cy_en_smif_status_t stat;        stat = Cy_SMIF_Init(SMIF0,  smif_0_config, TIMEOUT_1_S,  smifText);        //Cy_SMIF_Enable(SMIF0,  smifText);        Cy_SMIF_MemInit(SMIF0,  smifBlockConfig,  smifText);        //set xip mode        Cy_SMIF_SetMode(SMIF0, CY_SMIF_MEMORY);        Cy_SMIF_Enable(SMIF0, (cy_stc_smif_context_t *) smifText);中断函数的定义完全符合 PDL 文档中的描述,而 SmifText 是全局定义的。

但是有了这个初始化代码,我无法成功地使用这样的代码读取数据:
uint8_t *smif = (uint8_t*)0x18000000;volatile uint8_t temp;smif[1000] = 0xAA;temp = smif[1000];它始终读取 0xFF。

值得注意的是,尽管我没有分析那里有哪些数据,但所有QSPI引脚均输出用于读取和写入。 此外,这是我的示意图:




在这个初始化过程中我遗漏了什么?                        

回帖(1)

LL-LING宁

2024-1-22 13:45:26
sbsp;        .intrSrc = smif_interrupt_IRQn,         #elif (CY_CPU_CORTEX_M4)                              &nb
举报

更多回帖

发帖
×
20
完善资料,
赚取积分