• 大小: 262KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签: 2812  

资源简介

用2812编写的片外烧写 FLASH ,

资源截图

代码片段和文件信息

#include	“DSP28_Device.h“

// Definitions for the SST 39VF400A part
#define  SST_ID                   0x00BF         /* SST Manufacturer‘s ID code   */
#define  SST_39VF400A             0x2780         /* SST39VF400/SST39VF400A 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 *)0x80000;
unsigned   int  *ExRamStart = (unsigned  int *)0x100000;

Uint16 SectorErase(Uint16 SectorNum)
{
Uint16 iData;
Uint32 TimeOut;
*(FlashStart + 0x5555) = 0xAA;
*(FlashStart + 0x2AAA) = 0x55;
*(FlashStart + 0x5555) = 0x80;
*(FlashStart + 0x5555) = 0xAA;
*(FlashStart + 0x2AAA) = 0x55;
*(FlashStart + SectorSize * SectorNum) = 0x30;
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) = 0xAA;
*(FlashStart + 0x2AAA) = 0x55;
*(FlashStart + 0x5555) = 0x80;
*(FlashStart + 0x5555) = 0xAA;
*(FlashStart + 0x2AAA) = 0x55;
*(FlashStart + BlockSize * BlockNum + 1) = 0x50;
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 iData;
Uint32 TimeOut;
*(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) = 0xAA;
*(FlashStart + 0x2AAA) = 0x55;
*(FlashStart + 0x5555) = 0xA0;
*(FlashStart + RomStart + i) = *(ExRamStart + RamStart + i);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3072  2000-06-15 18:20  39F400\39F400.CS_\FILE.CDX

     文件       1302  2000-06-15 18:20  39F400\39F400.CS_\FILE.DBF

     文件       1537  2000-06-15 18:20  39F400\39F400.CS_\FILE.FPT

     文件     281600  2000-06-15 18:15  39F400\39F400.CS_\SYMBOL.CDX

     文件     210861  2000-06-15 18:15  39F400\39F400.CS_\SYMBOL.DBF

     文件     366693  2000-06-15 18:15  39F400\39F400.CS_\SYMBOL.FPT

     文件       7674  2005-03-25 11:01  39F400\39F400.paf

     文件       7833  2000-06-15 18:23  39F400\39F400.paf2

     文件       1187  2000-06-15 18:08  39F400\39F400.pjt

     文件       4619  2000-06-15 18:23  39F400\39F400.sbl

     文件       4181  2005-02-17 09:57  39F400\39vf400.c

     文件        615  2008-04-24 11:53  39F400\39VF400TEST.c

     文件       2112  2000-06-15 18:15  39F400\cc_build_Debug.log

     文件      15909  2000-06-15 18:15  39F400\Debug\39F400.map

     文件     141144  2000-06-15 18:15  39F400\Debug\39F400.out

     文件      13546  2000-06-15 18:14  39F400\Debug\39vf400.obj

     文件       3024  2000-06-15 18:14  39F400\Debug\39VF400TEST.obj

     文件      17778  2004-12-21 18:32  39F400\Debug\CpuTimer.obj

     文件       5563  2000-06-15 18:14  39F400\Debug\DSP28_CpuTimers.obj

     文件      35917  2000-06-15 18:14  39F400\Debug\DSP28_DefaultIsr.obj

     文件     111382  2000-06-15 18:14  39F400\Debug\DSP28_GlobalVariableDefs.obj

     文件      10354  2000-06-15 18:14  39F400\Debug\DSP28_Gpio.obj

     文件       2119  2000-06-15 18:15  39F400\Debug\DSP28_InitPeripherals.obj

     文件       4943  2000-06-15 18:15  39F400\Debug\DSP28_PieCtrl.obj

     文件      16440  2000-06-15 18:15  39F400\Debug\DSP28_PieVect.obj

     文件       5889  2000-06-15 18:15  39F400\Debug\DSP28_SysCtrl.obj

     文件       4745  2000-06-15 18:15  39F400\Debug\DSP28_Xintf.obj

     文件        803  2000-06-15 18:15  39F400\Debug.lkf

     文件        682  2005-03-25 10:59  39F400\Debug.lkv

     文件       5788  2003-11-19 09:41  39F400\DSP28_Adc.h

............此处省略34个文件信息

评论

共有 条评论