資源簡介
該實驗程序先向外部flash的0x200000~0x20FFFF分別寫入0xAAAA和0x5555再讀出,每一個存儲空間逐一比較是否正確,如果一致說明沒有問題,最后才寫入自然數。

代碼片段和文件信息
#include “DSP2833X_Device.h“
//?Definitions?for?the?SST?39VF400A?part
//#define? SST_ID???????????????????0x00BF?????????/*?SST?Manufacturer‘s?ID?code???*/
//#define? SST_39VF800A?????????????0x2780?????????/*?SST39VF800/SST39VF800A?device?code?*/
#define TimeOutErr ?1
#define VerifyErr ?2
#define WriteOK ?0
#define EraseErr ?3
#define EraseOK ?0
#define SectorSize ?0x800
#define BlockSize ?0x8000
unsigned?? int??*FlashStart?=?(unsigned??int?*)0x200000;//flash的首地址
unsigned?? int??*ExRamStart?=?(unsigned??int?*)0x100000;//sram的首地址
Uint16 SectorErase(Uint16 SectorNum)
{
Uint16 iData;
Uint32 TimeOut;
*(FlashStart?+?0x5555)?=?0xAAAA;
*(FlashStart?+?0x2AAA)?=?0x5555;
*(FlashStart?+?0x5555)?=?0x8080;
*(FlashStart?+?0x5555)?=?0xAAAA;
*(FlashStart?+?0x2AAA)?=?0x5555;
*(FlashStart?+?SectorSize?*?SectorNum)?=?0x3030;
i?=?0;
TimeOut?=?0;
while(i<5)
{
Data?=?*(FlashStart?+??SectorSize?*?(SectorNum?+?1)?-1);
if (Data?==?0xFFFF) i++;
else i=0;
if?(?++TimeOut>0x1000000) return?(TimeOutErr);
}
for (i=0;i {
Data?=?*(FlashStart?+?SectorSize?*?SectorNum?+i);
if?(Data?!=0xFFFF) return?(EraseErr);
}
return??(EraseOK);
}
Uint16 BlockErase(Uint16 BlockNum)
{
Uint16 iData;
Uint32 TimeOut;
*(FlashStart?+?0x5555)?=?0xAAAA;
*(FlashStart?+?0x2AAA)?=?0x5555;
*(FlashStart?+?0x5555)?=?0x8080;
*(FlashStart?+?0x5555)?=?0xAAAA;
*(FlashStart?+?0x2AAA)?=?0x5555;
*(FlashStart?+?BlockSize?*?BlockNum?+?1)?=?0x5050;
i?=?0;
TimeOut?=?0;
while(i<5)
{
Data?=?*(FlashStart?+??BlockSize?*?(BlockNum?+1));
if (Data?==?0xFFFF) i++;
else i=0;
if?(?++TimeOut>0x1000000) return?(TimeOutErr);
}
for (i=0;i {
Data?=?*(FlashStart?+?BlockSize?*?BlockNum?+i);
if?(Data?!=0xFFFF) return?(EraseErr);
}
return??(EraseOK);
}
Uint16 ChipErase(void)
{
Uint16 Data;
Uint32 TimeOuti;
*(FlashStart?+?0x5555)?=?0xAAAA;
*(FlashStart?+?0x2AAA)?=?0x5555;
*(FlashStart?+?0x5555)?=?0x8080;
*(FlashStart?+?0x5555)?=?0xAAAA;
*(FlashStart?+?0x2AAA)?=?0x5555;
*(FlashStart?+?0x5555)?=?0x1010;
i?=?0;
TimeOut?=?0;
while(i<5)
{
Data?=?*(FlashStart?+??0x3FFFF);
if (Data?==?0xFFFF) i++;
else i=0;
if?(?++TimeOut>0x1000000) return?(TimeOutErr);
}
for (i=0;i<0x40000;i++)
{
Data?=?*(FlashStart?+?i);
if?(Data?!=0xFFFF) return?(EraseErr);
}
return??(EraseOK);
}
Uint16 FlashWrite(Uint32 RamStart?Uint32???RomStart??Uint16 Length)
{
Uint32 iTimeOut;
Uint16 Data1Data2j;
for (i=0;i {
*(FlashStart?+?0x5555)?=?0x00AA;
*(FlashStart?+?0x2AAA)?=?0x0055;
*(FlashStart?+?0x5555)?=?0x00A0;
*(Fla
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-10-09?13:04??lab14-39VF800\
?????文件?????????303??2015-04-20?14:12??lab14-39VF800\.ccsproject
?????文件???????16340??2015-04-20?14:12??lab14-39VF800\.cdtbuild
?????文件?????????553??2015-04-20?14:12??lab14-39VF800\.cdtproject
?????文件?????????593??2015-04-20?14:12??lab14-39VF800\.project
?????目錄???????????0??2018-08-09?07:57??lab14-39VF800\.settings\
?????文件?????????638??2015-04-20?14:12??lab14-39VF800\.settings\org.eclipse.cdt.managedbuilder.core.prefs
?????目錄???????????0??2018-08-09?07:57??lab14-39VF800\39VF800.CS_\
?????文件????????3072??2015-04-20?14:12??lab14-39VF800\39VF800.CS_\FILE.CDX
?????文件????????1530??2015-04-20?14:12??lab14-39VF800\39VF800.CS_\FILE.DBF
?????文件????????2272??2015-04-20?14:12??lab14-39VF800\39VF800.CS_\FILE.FPT
?????文件??????321024??2015-04-20?14:12??lab14-39VF800\39VF800.CS_\SYMBOL.CDX
?????文件??????237824??2015-04-20?14:12??lab14-39VF800\39VF800.CS_\SYMBOL.DBF
?????文件??????411577??2015-04-20?14:12??lab14-39VF800\39VF800.CS_\SYMBOL.FPT
?????文件???????10173??2015-04-20?14:12??lab14-39VF800\39VF800.paf2
?????文件????????6411??2015-04-20?14:12??lab14-39VF800\39VF800.sbl
?????目錄???????????0??2018-10-09?13:04??lab14-39VF800\CMD\
?????文件????????3947??2015-04-20?14:12??lab14-39VF800\CMD\28335_RAM_lnk.cmd
?????文件????????8438??2015-04-20?14:12??lab14-39VF800\CMD\DSP2833x_Headers_nonBIOS.cmd
?????文件????????4855??2015-04-20?14:12??lab14-39VF800\CMD\F28335.cmd
?????目錄???????????0??2018-08-09?07:57??lab14-39VF800\Debug\
?????文件??????135560??2015-04-20?14:12??lab14-39VF800\Debug\39VF1601.obj
?????文件???????25713??2015-04-20?14:12??lab14-39VF800\Debug\39VF800.map
?????文件??????174547??2015-04-20?14:12??lab14-39VF800\Debug\39VF800.out
?????目錄???????????0??2018-08-09?07:57??lab14-39VF800\Debug\CMD\
?????文件???????????0??2015-04-20?14:12??lab14-39VF800\Debug\CMD\ccsSrcs.opt
?????文件????????1824??2015-04-20?14:12??lab14-39VF800\Debug\CMD\subdir.mk
?????文件????????1276??2015-04-20?14:12??lab14-39VF800\Debug\DSP2833x_ADC_cal.obj
?????文件????????1560??2015-04-20?14:12??lab14-39VF800\Debug\DSP2833x_CodeStartBranch.obj
?????文件??????126147??2015-04-20?14:12??lab14-39VF800\Debug\DSP2833x_CpuTimers.obj
?????文件??????169210??2015-04-20?14:12??lab14-39VF800\Debug\DSP2833x_DefaultIsr.obj
............此處省略71個文件信息
評論
共有 條評論