?? flash.c
字號:
#include "SPCE061V004.h"
//10.3.3 內部 FLASH 的讀寫程序
//32K 字的內部 FLASH 被劃分為 128 個 PAGE(每個 PAGE 存儲容量為 256 字),
//第一頁 [0x8000—0x80ff]最后一頁為[0xff00—0xffff]。全部 32K 字閃存均可被編程寫入
//或被擦除。上電以后,芯片就處于讀存儲單元狀態,讀存儲單元的操作與 SRAM 相同。
//函數SP_ReadWord()實現的功能是從內部 FLASH 中讀出一個 Word,參數為 FLASH 地址,
//返回值為該地址存放的數據。
//**************************************************************************
unsigned int SP_ReadWord(unsigned int addr)
{
unsigned int *ADDR,data;
ADDR=(unsigned int*)addr;
data=*ADDR;
return data;
} //內部 FLASH 的讀寫程序
//**************************************************************************
//和讀 FLASH 相比,擦寫就麻煩一點了。圖 10.11 說明了擦寫的過程。需要指出一
//點,圖中所提到延時等待是由硬件完成不需要軟件延時。
//SP_PageErase()為頁擦除函數。
//用 C 語言實現 SP_PageErase()的代碼如下:
//**************************************************************************
void SP_PageErase(unsigned int addr)
{
unsigned int *ADDR;
ADDR=(unsigned int*)addr;
*P_Flash_Ctrl=0xAAAA;
*P_Flash_Ctrl=0x5511;
*ADDR=1;
}
//**************************************************************************
//SP_WriteWord()的功能是往 FLASH 寫一個 Word 的數據,該函數有兩個參數,第
//一個是 FLASH 地址,第二個是要寫入的數據。
//用 C 語言實現 SP_WriteWord()的代碼如下:
//**************************************************************************
void SP_WriteWord(unsigned int addr,unsigned int data)
{
unsigned int *ADDR;
ADDR=(unsigned int*)addr;
*P_Flash_Ctrl=0xAAAA;
*P_Flash_Ctrl=0x5533;
*ADDR=data;
}
//**************************************************************************
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -