8
存储器
8.4 片上闪存
RA6 MCU具有两部分闪存:代码闪存和数据闪存,各部分的大小和擦写周期数因器件而异。闪存控制单元 (FCU) 控制闪存的编程和擦除。闪存应用程序命令接口 (FACI) 根据指定的FACI命令控制FCU。
代码闪存旨在存储用户应用程序代码和常量数据。数据闪存旨在存储可能需要不时更新的信息,例如配置参数、用户设置或记录的数据。数据闪存区域中的编程和擦除单位远小于代码闪存的单位(数据闪存为2字节,而代码闪存为128字节)。
数据闪存和代码闪存区域均可通过应用程序代码进行编程或擦除。这样,无需连接外部编程工具即可完成现场固件更新。
Renesas FSP为代码闪存和数据闪存提供了HAL驱动程序。
下图给出了代码闪存和数据闪存的规范示例。
图20. RA6M3 MCU上的代码闪存和数据闪存规范
注:
代码闪存在擦除状态下为FFh,但数据闪存在擦除状态下为未定义值。
8.4.1 后台运行
RA6 MCU支持通过后台运行访问代码闪存和数据闪存。这意味着当执行编程或擦除操作时,用户可以继续从正在操作的存储区以外的其他存储区中执行程序和访问数据。例如,在对数据闪存进行擦除或编程操作时,CPU可以从代码闪存执行应用程序代码。同样,在对代码闪存进行擦除或编程操作时,CPU可以从SRAM执行应用程序代码。这项规则的唯一例外是,在对代码闪存进行编程或擦除期间无法访问数据闪存。
8.4.2 ID代码保护
具有Cortex-M4内核的RA6 MCU在选项设置存储区中有一个用作ID代码的128位存储器。如果此ID代码留空 (0xFF),则不实现任何保护功能。此时可以通过引导模式或使用片上调试器来访问MCU。如果设置了ID代码,则用户可以控制对这些模式的访问。用户可以选择始终禁止连接,或者可以选择在输入匹配的ID代码时允许连接。有关更多信息,请参见“OCD/串行编程器ID设置寄存器 (OSIS)”和“ID代码保护”以及《RA6 MCU硬件用户手册》中的相关部分。
Renesas FSP配置器提供了用于设置ID代码保护的选项。
图21. 使用Renesas FSP配置器设置ID代码
注:
必须谨慎处理ID代码保护设置,以避免发生可能导致阻止访问MCU的错误。
8.4.3 器件生命周期管理
具有Cortex-M33内核的RA6 MCU配有器件生命周期管理 (DLM) 功能,能够对产品从开发伊始到生产再到使用寿命结束的整个过程进行管理。RA系列MCU调试功能和串行编程功能由器件生命周期状态定义。
有关更多详细信息,请参见器件生命周期管理密钥安装应用笔记。
8.4.4 闪存块保护
具有Cortex-M33内核的RA6 MCU具有闪存块保护功能,可防止安全或非安全闪存区域被安全或非安全软件擦除或重新编程。值得注意的是,该保护功能同时适用于安全和非安全软件访问。
有关更多详细信息,请参见《使用Arm TrustZone保护静态数据》应用笔记中的“配置闪存块保护”部分。
8.4.5 内存保护单元
具有Cortex-M4内核的RA6 MCU具有内存保护单元 (MPU)。这些单元能够保护各种MCU区域免遭非法访问。具体选项包括允许读写、禁止写入和禁止读写。通过在特定的存储器地址上设置相应的常数值可选择这些选项之一。有关更多详细信息,请参见《MCU硬件用户手册》中的“存储器保护单元”部分。
图22. 使用Renesas FSP配置器设置MPU
注:
必须谨慎处理MPU设置,以避免发生可能导致阻止访问MCU区域的错误。
未完待续
全部0条评论
快来发表一下你的评论吧 !