S32K144 EEOROM初始化

1.以下是自己经验证总结后的EEPROM初始化操作,亲测有效。

void flash_init(void)
{
        /* 安装烧录命令完成事件中断 */
        INT_SYS_InstallHandler(FTFC_IRQn, CCIF_Handler, (isr_t*) 0);
        INT_SYS_EnableIRQ(FTFC_IRQn);

        /* 使能中断 */
        INT_SYS_EnableIRQGlobal();

        /* 调用其他功能时之前一定要先使能FLASH外设驱动 */
        ret = FLASH_DRV_Init(&Flash1_InitConfig0, &flashSSDConfig);
        DEV_ASSERT(STATUS_SUCCESS == ret);

#if ((FEATURE_FLS_HAS_FLEX_NVM == 1u) & (FEATURE_FLS_HAS_FLEX_RAM == 1u))
    /* 将FLEXRAM设置为EEPROM */
    if (flashSSDConfig.EEESize == 0u)
    {
         /* 将FLEXRAM设置为EEPROM,并且将FLEXNVM设置为EEPROM的备份区
         * - EEEDataSizeCode = 0x02u: EEPROM size = 4 Kbytes
         * - DEPartitionCode = 0x08u: EEPROM backup size = 64 Kbytes
         * - uCSEcKeySize    = 0x08u: CSEc加密服务选项
         * - uSFE              = false  仅验证属性关闭
         * - flexRamEnableLoadEEEData  = true 复位期间是否加载数据  加载
         */
        ret = FLASH_DRV_DEFlashPartition(&flashSSDConfig, 0x02u, 0x08u, 0x0u, false, true);
        DEV_ASSERT(STATUS_SUCCESS == ret);

        /* 重新初始化FLASH驱动.用来更新设置 */
        ret = FLASH_DRV_Init(&Flash1_InitConfig0, &flashSSDConfig);
        DEV_ASSERT(STATUS_SUCCESS == ret);

        /*将FLEXRAM设置为可供EEPROM使用*/
        ret = FLASH_DRV_SetFlexRamFunction(&flashSSDConfig, EEE_ENABLE, 0x00u, NULL);
        DEV_ASSERT(STATUS_SUCCESS == ret);

    }
#endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值