SNP739 TPMS芯片之– 存储器
存储器
基于8051的微控制器核心能够处理64kB宽的代码存储器。在SNP739中,此地址范围用于以下类型的内存:
•用于工厂配置数据的256字节闪存
•用于应用程序代码的6 KB闪存(用户代码扇区)
•用于引导加载程序代码的2 KB闪存
•用于ROM库代码的8 KB闪存
•用于用户配置数据的128字节闪存(用户配置扇区)
•128字节保留RAM(XRAM)
•256字节数据RAM(IRAM)
下图显示了相应的内存映射。无法更改工厂配置扇区的内容。这两个扇区都受到锁定字节1的保护,该字节为出厂设置。
1 锁定字节
在每个闪存扇区的末尾有一个锁字节,用户可以启用该锁字节,以保护扇区不被覆盖和读取。
将锁定字节设置为0xFF将导致未锁定的闪存区,不得将任何其他值写入这些位置。
对有效的锁定字节值进行编程后,新的锁定字节将在下一次系统重置发生后生效。
锁字节1(LB1):
此锁定字节保护闪存扇区出厂配置不被覆盖和擦除。
锁字节2(LB2)和锁字节4(LB4):
这两个锁字节保护闪存主代码不被覆盖、擦除(有限内部生产测试模式除外)和读取,以防止应用程序代码的反向工程。
这两个锁字节必须通过I2C接口设置在代码扇区编程序列的末尾。一旦设置,可用的操作模式将受到限制。
闪存主区域被组织为128页(第0页至第127页),每页128字节。锁字节2保护从下页到上页的闪存主范围,但锁字节4保护从上页到下页的闪存主范围。一旦lockbyte2或lockbyte4不是0xff,最后一页(第127页)将始终锁定。
其中N从0到127给出,十六进制(N)表示N的十六进制值。
锁字节3(LB3):
此锁定字节保护闪存扇区(用户配置扇区)不被覆盖和擦除(受限内部生产测试模式除外)。
该锁字节可通过编程模式下的I2C以与设置锁字节2相同的编程顺序进行设置,或通过软件在正常模式下使用专用库函数进行设置。
2闪存编程
对于在编程模式下编程用户代码扇区或用户配置扇区,有两个I2C命令可用。用于整体删除扇区的命令Erase Sectors和用于编程64字节长闪存线的命令Flash Write Line。为了启用锁定字节LB3,在使用闪存写行命令写入相应行时,必须将锁定字节位置的值定义为0x00。根据需要锁定的相应扇区,必须正确定义锁定字节LB2和LB4。如果锁定字节应保持禁用状态,则其值必须定义为0xFF。
为了在正常模式下(即运行时)对用户配置扇区进行编程,可以使用固件函数FlashWrite()。请注意,在调用此固件功能之前,必须将系统时钟切换到2Mhz。
注意:来自网络整理