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/RM57L843:闪存读取和写入异常

Guru**** 2481465 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/698875/ccs-rm57l843-flash-read-and-write-exceptions

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

工具/软件:Code Composer Studio

背景简介:RM57保存用户数据的片上闪存定制板

 

环境HALCOGEN 4.6.0

              TI ARM 编译器16.9.1

              CCS 7.1

 

配置

             闪存 库文件F021_API_CortexR4_LE_L2FMC_V3D16.lib

 

问题 详细信息:  

   擦除操作

 

 

  读取操作

 

 

 

   写入操作

 

 

测试代码

 

 

测试结果

1首次执行测试代码、擦除操作->写入操作->读取操作正常。

2,第二次执行测试代码、通过 CCS 存储器窗口观察执行情况、在擦除操作未更改为0xff 之后、从0x1c0000读取128字节数据在写入操作未更改后、从0x1c0000读取的数据是第一个写入的数据 代码通过、ESMSR2寄存器的值为0x08。第三次和后续执行测试代码与第二次执行相同。

3关断和重启、通过 CCS 重新下载代码、在执行 main()函数之前通过 CCS 存储器窗口观察地址0x1c0000的数据、数据与断电前最后写入的值相同。

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

    为了能够擦除闪存扇区并将代码编程到闪存扇区、必须在另一个闪存组或 SRAM 中执行与闪存操作相关的代码。

    擦除/编程/读取函数中使用的 SYS_CLK_FREQ 在系统时钟中应该是相同的。 SYS_CLK_FREQ 在 BL_CONFIG.h 中定义 您的系统时钟是300MHz 还是330MHz?

    在代码中、每次写入8个字节(RM57最多写入32个字节)、但 src 地址和 dst 地址增加了16个字节。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、QJ Wang、

        与闪存操作相关的代码在程序的 SRAM 中执行。

        我们的系统时钟为300MHz、HCLK 为150Mhz、并将 SYS_CLK_FREQ 修改 为300、函数 Fapi_initializeFlashBank (SYS_CLK_FREQ)的返回值为 Fapi_Error_InvalidHclkValue。

        我们修改代码、 将16个字节作为 测试进行写入、结果与之前相同。  

    谢谢、此致、
    QJ Wang

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

    您是否已解决问题? 我很抱歉耽误你的答复。