⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dp_flash.h

📁 写XS128的D-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 + -