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.

[参考译文] CCS/Hercules F021FLASHAPI:对单个字节进行编程

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/924126/ccs-hercules-f021flashapi-programming-a-single-byte

器件型号:Hercules F021FLASHAPI
主题中讨论的其他器件:TMS570LS3137

工具/软件:Code Composer Studio

您好!

我在 tms570ls3137演示板上对闪存进行编程、在 spna148.pdf 的单字节编程示例代码中 、我没有看到用于计算 ECC 的代码、计算 ECC 的代码是什么?

谢谢。

FLASH_CONTRAL_REGISTER->Fbprot.u32Register = 1U;//禁用1级保护*//
*启用当前组的所有扇区以进行擦除和编程。 对于具有
16个以上扇区的 EEPROM 组、必须为0xFFFF */
FLASH_CONTING_REGISTER->Fbse.u32Register = 0xFFFF;
FLASH_CONTING_REGISTER->Fbprot.u32Register = 0U;//启用1级保护*/*
解锁 FSM 寄存器以写入*/ FLASH_CONTING_FCMORT_REGISTER->FSM.USTRISTER.COMMAND
= 0xFMCU_REGISTRISTRY_REGISTRIGN.US_SET

= 0xFCMU.FCMU.FMCU_REGISTRIGN.US_COMMAND = 0xFCMAP_COMMAND = 0x
/*执行清除状态命令*/
flash_control_register->FsmExecute.FSM_execute_bits。FSMEXECUTE = 0x15U;
//将地址写入 FADDR 寄存器*/
FLASH_CONTROL_REGISTER->Faddr.u32Register = 0xEXU;
//将字节放置在地址0x0102 */ oFSMWriteFSM5bits


*= 0xFAST_CONTROL.FSMUCTOR.COMMAND = 0xFAST_CONTROL.FSMUMP_COMMENTAL;*/FSMFAST_CONTROL.US_CONTROL.FSMUEST_FSMECISTER = 0x0100FSMECISTER.US_COMMENT/*= 0xFAQ_CONTROL.FSMECISTER.US_CONTROL.FSMECT_CONTROL.FSMECT_


/*重新锁定 FSM 寄存器以防止写入*/
flash_control_register->FsmWrEna.u32Register = 0x2U; 

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

    您好!

    有关 ECC 计算、请参阅第2个示例代码。  

    我不建议您编写自己的函数来擦除/编程闪存。 原因是 FSM 寄存器仅是顶级控制、您还需要设置闪存电压寄存器来运行泵。 第二部分很复杂。 如果闪存电压寄存器未正确编程、则在擦除/编程闪存时有损坏器件的风险。