📄 flash.h
字号:
#include "main.h"
#ifndef __DSPBIOS54_FLASH_H
#define __DSPBIOS54_FLASH_H
#ifdef __cplusplus
extern "C"
{
#endif
#define FLASH(x) (*((volatile unsigned char *) 0x8000 + x))
/*----------------------------------------------------------
另类的"数组"访问,外扩的SST39VF800A从0x8000开始
void FlashObj::ChipErase(void)
{
FLASH(0x5555) = 0xaa;
FLASH(0x2AAA) = 0x55;
FLASH(0x5555) = 0x80;
FLASH(0x5555) = 0xaa;
FLASH(0x2AAA) = 0x55;
FLASH(0x5555) = 0x10;
Wait(0x5555);
}
void FlashObj::Wait(unsigned int address)
{
unsigned int temp, val;
do {
val = FLASH(address);
__nop();
temp = FLASH(address);
__nop();
}
while(((val ^ temp) & (1 << BIT6)) != 0);
}
----------------------------------------------------------*/
#define FlashMaker 0x0000
#define FlashDevice 0x0001
#define SectorSize 0x800
#define BlockSize 0x8000
class FlashObj {
public:
FlashObj(void);
void Init(void);
void FlashReset(void);
void FlashId(void);
bool ChipErase(void);
bool SectorErase(unsigned int);
bool BlockErase(unsigned int);
void Wait(unsigned int);
bool Write(unsigned int , unsigned char);
bool Program(unsigned int, unsigned int, unsigned short *);
public:
bool Active;
bool Succeed;
private:
unsigned int MakerId;
unsigned int DeviceId;
};
extern class FlashObj Flash;
#ifdef __cplusplus
}
#endif
#endif//__DSPBIOS54_FLASH_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -