This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RM42L432:Fapi_initializeFlashBanks ESM 组3通道7

Guru**** 2446640 points
Other Parts Discussed in Thread: RM42L432, HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/620222/rm42l432-fapi_initializeflashbanks-esm-group3-channel-7

器件型号:RM42L432
主题中讨论的其他器件:HALCOGEN

我使用 F021闪存 API V.2.001以100MHz 的频率刷写 RM42L432.

我在 HCLK_FREQ=100的情况下调用 Fapi_initiataleFlashBanks()函数、我获得了成功的返回代码。  RWAIT 和 EWAIT 初始化为4。

但是在执行此函数后、我发现 ESM 组3通道7错误、 然后我发现 FEDACSTATUS 寄存器的位8 B1_UNC_ERR 和位17 B2_UNC_ERR 被置位。  

我想知道为什么 ESM 组3通道7错误?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    该错误是由不可纠正的 ECC 错误引起的。 如果启用了 ECC、请确保也正确初始化组7的 ECC。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Chuck

    首先、感谢您的快速回复。
    下面是我的费用初始化代码、但它不能正常工作、请帮助我指出我在代码中遗漏的内容。

    void setupFlash (void)


    /*用户代码开始(6)*/
    /*用户代码结束*/

    /**-设置闪存读取模式、地址等待状态和数据等待状态*/
    flashWREG->FRDCNTL = 0x000000000000
    |(uint32)((uint32) 1U <<8U)
    |(uint32)((uint32) 0U << 4U)
    |(uint32) 1U;

    /**-为组7设置闪存访问等待状态*/
    FSM_WR_ENA_HL = 0x5U;
    EEPROM_CONFIG_HL = 0x00000002U
    |(UINT32)((UINT32) 4U <<16U);

    /*用户代码开始(7)*/
    /*用户代码结束*/

    /**-禁用对闪存状态机寄存器的写入访问*/
    FSM_WR_ENA_HL = 0xAU;

    /**-设置闪存组电源模式*/
    flashWREG->FBFALBACK = 0x000000000000
    |(UINT32)((UINT32) SYS_ACTIVE << 14U)//组7 */
    |(UINT32)((UINT32) SYS_ACTIVE << 0U);//组0 */


    /*用户代码开始(8)*/
    /*启用错误检测和校正*/
    flashWREG->EECTRL1 = flashWREG-EECTRL1 & 0xfff0;
    flashWREG->EECTRL1 = flashWREG->EECTRL1 | 0x0A;
    /*用户代码结束*/

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    用户好!

    您似乎正在尝试使用 F021闪存 API、而不是 FEE 库。 有关 FEE 库、请参阅在 Halcogen 中为 RM42x_RM41x 器件系列提供的示例。 其源位于路径 C:\ti\hercules\HALCoGen\v04.06.01\examples\RM42x_41x\example_TI_fee_Write_Read.c (如果您将 Halcogen 安装到默认位置)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我使用过 FEE 库,但当我调用 TI_FEE ()时;
    我已经设置了 FEE halcogen、生成代码为(TI_FEE 生成代码为(TI_FEE 生成代码为 DEVICEADVIRTUALSECTORSTRUC = STD_OFF)、
    如何设置 TI_FEE 生成 DEVICEANDVIRTUALSECTORSTRUC = STD_ON?

    ERROR[Li005]:"Device_FlashDevice"没有定义[引用自 C:\work\template\HIO_HWA IAR7405_sysdiagnostic_fee\IdePrjIarIAR7405\Debug\Obj\ti_fee_ini.o]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    用户好!

    我会将您的问题转交给我们的一位收费专家。 他们应尽快与您联系。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 Device_RM42.c 文件中定义了"DEVICE_FlashDevice"常量结构。 希望该文件包含在项目中。
    如果包含 Device_RM42.c、TI_FEE 生成_DEVICEANDVIRTUALSECTORSTRUC 必须为 STD_OFF。 这应该是您的用例。

    在一些传统的客户用例中、客户在运行时期间提供了特定于器件的参数、为了支持这些参数、TI_FEE 生成_dEVICEAANDVIRTUALSECTORSTRUC 必须为 STD_ON。