STM8L151C8T6-设计参考-内存编程
内存编程
在试图执行任何程序操作之前,必须先解锁主程序内存和DATA区域。解锁机制取决于要编程的内存区域,如第3.5.2节:内存访问安全系统(MASS)中所述。PCODE区域总是被读取保护。重新编程的唯一方法是重置ROP选项字节,从而擦除Flash程序内存、DATA区域和选项字节。
边写边读(读写)
读写特性允许在读取和执行程序内存的同时对数据EEPROM执行写操作。因此,执行时间得到了优化。不允许相反的操作:写入程序内存时,不能读取数据内存。此读写特性总是启用的,并且可以在任何时候使用。
字节编程
主程序内存和DATA区域可以在字节级别进行编程。要编写一个字节,应用程序直接写入目标地址。•在主程序内存中:应用程序在字节程序操作期间停止。•DATA区域:-程序在“高压结束”操作期间停止执行,即设置HVOFF标志时,在IAP模式下使用读写能力执行字节程序操作。要擦除一个字节,只需在相应的地址写入0x00。应用程序可以读取FLASH_IAPSR寄存器来验证编程或擦除操作已经正确执行:•在编程操作成功后设置EOP标志•当软件试图写入受保护的页面时设置WR_PG_DIS。在这种情况下,不执行写过程。只要设置了其中一个标志,就会生成一个Flash中断,如果它之前已经通过设置FLASH_CR1寄存器的IE位启用过。
自动快速字节编程
编程持续时间可以根据目标地址的初始内容而变化。如果包含要编程的字节的字(4字节)不为空,则在程序操作之前自动擦除整个字。相反,如果字为空,则不执行擦除操作,编程时间更短(参见数据表中Ta b l“Flash程序存储器”中的tPROG)。然而,编程时间可以通过设置FLASH_CR1寄存器的FIX位来固定,以强制程序操作系统地删除字节,无论其内容是什么(参见章节3.9.1:Flash控制寄存器1 (FLASH_CR1))。因此,编程时间是固定的,等于擦除和写入时间的总和(参见数据表中Ta b l“Flash程序存储器”中的tPROG)。