天天看點

STM8S——Flash program memory and data EEPROM

1、簡介

  STM8S内部的FLASH程式存儲器和資料EEPROM是由一組通用寄存器來控制的;是以我們可以通過這些通用寄存器來程式設計或擦除存儲器的内容、設定寫保護、或者配置特定的低功耗模式。我們也可以自己對器件的 option byte 進行程式設計。在這裡我們隻簡單的講解如何對STM8S内部的資料存儲區域(data memory)進行寫操作、讀操作、擦除操作。

2、存儲架構圖

STM8S内部存儲包括:FLASH程式存儲器(FLASH program memory)和資料EEPROM(DATA EEPROM);

(1)資料EEPROM又包括:

資料存儲區域(DATA MEMORY):指定從位址0x00 4000開始,其中包括 [1 block] 的option byte,資料存儲區域用于存儲應用資料;

(2)FLASH程式存儲器又包括:

使用者啟動區域(USER BOOT CODE):指定從位址0x00 8000開始,其中包括UBC option bytes和 [128 byte] 的中斷矢量(interrupt vectors);

程式存儲區域(MAIN PROGRAM):用于存儲應用程式代碼;

STM8S——Flash program memory and data EEPROM

  是以我們的操作是在DATA MEMORY裡面,在該區域的指定位址進行讀取内容、寫入内容、擦除内容。

3、操作方法

(1)FLASH_ReadByte( ADDRESS ):讀取位址ADDRESS處的1位元組内容

(2)FLASH_ProgramByte( ADDRESS , DATA ):寫1位元組的内容到位址ADDRESS處

(3)FLASH_EraseByte( ADDRESS ):在位址ADDRESS處删除1位元組的内容

4、操作步驟

使用操作前的配置

(1)配置選擇程式設計時間,選擇标準模式;

(2)解除資料存儲區域的寫保護;

說明:UBC和DATA MEMORY都有寫保護,其中UBC的寫保護是永遠無法解鎖的,而DATA MEMORY的寫保護是可以通過連續寫入兩個MASS密鑰值來解除該區域的寫保護的;第一個密鑰為0x56,第二個密鑰為0xAE;隻有當兩個密鑰輸入正确(輸入到寄存器FLASH_DUKR中)且輸入密鑰的先後順序正确時,才會解除寫保護;否則該區域在下一次系統複位之前都将一直保持寫保護狀态。

(3)讀取、寫入、擦除等操作;

5、代碼實作