STM8S 的FLASH由两部分存储器组成:

  • FLASH程序存储器;

  • 数据EEPROM(选项字节OPT Byte就存放在这个区)

读者如果困惑FLASH和EEPROM有什么区别,小编在这里给大家做个简要说明。
FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同。FLASH的电路结构较简单,适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器。在数据处理上,FLASH主要用于存续程序代码,EEPROM用于在程序运行时保存一些需要掉电不丢失的数据,如LCD显示频在每次开启单片机时显示的数据的保存(RAM是用做单片机运行时的临时数据存储器,如定义的一些临时变量)。 它们的地址分配我们来看图1。
4af4000509a79c45fb77?from=pc.jpg

图1 FLASH存储器

从图 1 我们来分析FLASH的组织结构。它包括:用户启动区域(UBC)、数据EEPROM(DATA)、主程序区、选项字节(Option byte)。
1.用户启动区:它是程序IAP模式下程序启动入口,包含中断向量表和复位信息,在用户启动区的初始位置存放中断向量。程序一般从复位信号发出后开始从中断向量表向下执行。
4af400052ee886c72633?from=pc.jpg

图2 用户启动区地址分布

2.数据EEPROM:可存储一些重要数据,不会因断电而失去这些数据。
3.主程序区:我们的代码经编译后通常存储在这个区域。
4.选项字节:在对一些保护数据进行访问,或者使用stm8的端口复用功能时,需要对选项字节进行操作。
4af800012b7ceee15a46?from=pc.jpg

图3 选项字节的映射功能表

通过对FLASH的认识,我们对单片机CPU的内存就有一个更深刻的认识啦。