📄 dp_flash.h
字号:
#ifndef _D_P_FLASH_H_
#define _D_P_FLASH_H_
#include "stdtypes.h"
/*此处两个预定义函数均是用来读取Flash地址中的值,按字读取, */
/*上面一个读取地址范围较小,下面一个可以使用Global Address 读取*/
#define Read_near(Addr) ((unsigned int)(*(volatile unsigned int *__near)(Addr)))
#define Read_far(Addr) ((unsigned int)(*(volatile unsigned int *__far)(Addr)))
/**************************************************************/
/* Data flash size : 8K */
/* Global address : 0x10_0000--0x10_1FFFF */
/* Window address : 0x0800--0x0BFF 1K Bytes */
/* Page : 0x00--0x07 8 pages */
/* Sector size : 256B 32 sectors */
/* one 8 KBbyte block */
/**************************************************************/
#define DFLASH_LOWEST_START_PAGE 0x00 //定义data flash的起始页
#define DFLASH_START 0x00100000 //定义data flash的起始地址
#define DFLASH_PAGE_SIZE 0x0400 //定义data flash的大小为1K.
#define DFLASH_PAGE_WINDOW_START 0x0800 //定义data flash页面窗口的起始地址
/**************************************************************/
/* Prg flash size : 128K */
/* Global address : 0x7E_0000--0x7F_FFFFF */
/* Page : 0xF8--0xFF 8 pages */
/* Page Window addr: 0x8000--0xBFFF 16K Bytes */
/* Sector size : 1024B 128 sectors */
/* one 128 KBbyte block */
/**************************************************************/
#define PFLASH_LOWEST_START_PAGE 0xF8 //定义program flash的起始页
#define PFLASH_START 0x007E0000 //定义program flash的起始地址
#define PFLASH_PAGE_SIZE 0x4000 //定义program flash的大小为16K.
#define PFLASH_PAGE_WINDOW_START 0x8000 //定义program flash页面窗口的起始地址
/**********************Function Declaration*******************/
/*************************************************************/
/* 初始化DFLASH */
/*************************************************************/
void Flash_Init(void) ;
/*************************************************************/
/* 擦除DFLASH的一个分区 */
/* 注意: ADDR16即为Global address 的后16位 */
/* ADDR16的取值范围 0x0000-0x1FFF */
/*************************************************************/
void DFlash_Erase_Sector(uint ADDR16) ;
/*************************************************************/
/* 向DFLASH写入数据 */
/* 注意: ADDR16即为Global address 的后16位 */
/* ADDR16的取值范围 0x0000-0x1FFF */
/*************************************************************/
void DFlash_Write_Phrase(uint ADDR16,uint arr[]) ;
/*************************************************************/
/* 由DFLASH读取数据 */
/* 注意: ADDR16即为Global address 的后16位 */
/* ADDR16的取值范围 0x0000-0x1FFF */
/*************************************************************/
uint DFlash_Read (uint ADDR_destination) ;
/*************************************************************/
/* 将程序调入到RAM中 */
/*************************************************************/
void ProgramToRam(void);
/*************************************************************/
/* 擦除PFLASH的一个扇区 */
/*************************************************************/
/* 注意: ADDR32即为Global address */
/* ADDR32的取值范围 0x007E_0000-0x7F_FFFF */
/*************************************************************/
void PFlash_Erase_Sector(ulong ADDR32);
/*************************************************************/
/* 向PFLASH写入数据(Phrase) */
/*************************************************************/
/* 注意: ADDR32即为Global address */
/* ADDR32的取值范围 0x007E_0000-0x7F_FFFF */
/*************************************************************/
void PFlash_Write_Phrase(ulong ADDR32,uint arr[]);
/*************************************************************/
/* 由DFLASH读取数据 */
/*************************************************************/
/* 注意: ADDR32即为Global address */
/* ADDR32的取值范围 0x007E_0000-0x7F_FFFF */
/*************************************************************/
uint PFlash_Read (ulong ADDR32);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -