资源简介
用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个文件信息
- 上一篇:学生信息管理系统项 Linux
- 下一篇:大数据.txt
相关资源
- dsp2812的电机调速程序,并可以通过与
- 基于DSP2812的无刷直流电机伺服控制程
- TI 官方的 IQMATH库
- 基于TMS320F2812 DSP与PC机的串口通信设计
- tms320f2812最小系统原理图
- TI的关于F2812的DSPBIOS例程
- DSP2812用GPIO口模拟I2C协议
- TMS320F2812流水灯测试
- DSP2812 SCI通信例程
- DSP F2812控制直流无刷电机源代码
- ws2812驱动代码FPGA ALTERA
- DSP产生SPWM波程序
- dsp2812 伺服电机开环控制源代码
- DSP2812步进电机控制
- DSP2812的SPWM程序,验证过
- SEED-DSP2812所有程序源代码及原理图
- 基于DSP F2812的DS18B20实现
- SEED-TMS320F2812培训教材
- TMS320F28335和F2812原理图库和PCB库文件(
- 基于TMS320F2812直流电机数字调速系统
- TMS320F28335和F2812原理图库和PCB库文件(
- 基于DSPF2812的电机闭环控制程序
- 灯带开发基于STC8+WS2812B
- TMS320F28335和F2812原理图库和PCB库文件(
- 基于TMS320F2812的DA实验 正弦波 三角波
- TMS320F28335和F2812原理图库和PCB库文件(
- TMS320F28335和F2812原理图库和PCB库文件(
- TMS320F2812的输出PWM波形
- 基于DSP TMS320F2812编写的时钟程序
- stm32f407通过SPI+DMA方式驱动WS2812
评论
共有 条评论