主题中讨论的其他器件: UNIFLASH
您好!
我使用的是 内置的引导加载程序、它会在密码错误时擦除信息 FRAM 部分。 是否有办法可以防止此存储器部分被擦除?
此致、
-迈克
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.
您好!
我使用的是 内置的引导加载程序、它会在密码错误时擦除信息 FRAM 部分。 是否有办法可以防止此存储器部分被擦除?
此致、
-迈克
尊敬的 Mike:
MSP430FR2433系列确实为 FRAM 的用户程序和数据段提供了写保护、也称为信息存储器。
请参阅 用户指南中的第1.9.3节。
您好、Dennis、
我本来想我已经这么做了、但在使用 BSL 之后数据会丢失。 当我使用这些 API 命令写入存储器时。
SYSCTL_enableFRAMWrite (SYSCTL_FRAMWRITEPROTECTION_DATA);
FRAMCTL_write8 ((uint8_t*) str_buf、ptr、tmp_u16);
SYSCTL_protectFRAMWrite (SYSCTL_FRAMWRITEPROTECTION_DATA);
是否有实用的测试方法、例如使用 Uniflash?
此致、
-迈克
我想答案是否定的。 《MSP430FR BSL 用户指南》(SLAU550AB)第4.1.5.2节规定:"对于 MSP430FR2xx 和 MSP430FR4xx 器件、这意味着包括信息存储器在内的所有代码 FRAM 都将被擦除。" 我没有看到提到任何例外情况。 (根据第4.1.5.3条、对于请求的批量擦除也是如此。)
当我在 F2系列中遇到这个问题时(在这种情况下、它将擦除出厂校准常量)、我在某个地方看到一个建议、即这是一个安全功能、以防有人将一些机密信息存入 InfoA 中。
我认为这个概念是、如果您安排将0xaaaaaaaa 放置在0xFF84处、这将使 BSL 行为更改为在 PW 故障发生时不进行批量擦除。
我没有这样做、但我怀疑它看起来会像:
#pragma DATA_SECTION(bsl_signature, ".bslsignature") // Section name from linker .cmd #pragma RETAIN(bsl_signature) //I'm not sure this is needed const unsigned long bsl_signature = 0xAAAAAAAA; // No mass-erase on BSL PW failure (SLAU445I Table 1-5)
[编辑:更正了拼写错误]