TI中文支持网
TI专业的中文技术问题搜集分享网站

求助:LM4F120 flash应用的例程

之前移植了一个LM3S的Flash读写,以及Flash用作EEPROM的例程,但是不知为什么在EK-LM4F120XL Launchpad上运行不了。

一下是源代码:

#include"inc/hw_types.h"
#include"inc/hw_memmap.h"
#include"inc/hw_flash.h"

#include"driverlib/sysctl.h"
#include"driverlib/flash.h"

// 定义Flash扇区号(每个扇区1024字节)
#define SECTION 62

// 初始化用Flash虚拟的EEPROM
void FlashEEPROM_Init(void)
{
//使能flash
//SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
FlashUsecSet(SysCtlClockGet() / 1000000); // 设置每微秒的CPU时钟数
}

// 从Flash虚拟的EEPROM指定地址处读取1个字节
// usAddr=0~1023
char FlashEEPROM_Read(unsigned short usAddr)
{
char *pcData;

pcData = (char *)(SECTION * 1024 + (usAddr & 0x03FF));

return(*pcData);
}

// 从Flash虚拟的EEPROM指定地址处读取N个字节
void FlashEEPROM_ReadN(unsigned short usAddr, char *pcData, unsigned short usN)
{
unsigned short i;

if (usN > 0)
{
for (i = 0; i < usN; i++)
{
pcData[i] = FlashEEPROM_Read(usAddr + i);
}
}
}

// 向Flash虚拟的EEPROM指定地址处写入1个字节
// usAddr=0~1023
void FlashEEPROM_Write(unsigned short usAddr, char cData)
{
char cBuf[1024];
unsigned long *pulData = (unsigned long *)(cBuf);

FlashEEPROM_ReadN(0, cBuf, 1024); // 读取1KB扇区内容
cBuf[usAddr & 0x3FF] = cData; // 修改1个字节缓冲区内容
FlashErase(SECTION * 1024); // 擦除1KB扇区
FlashProgram(pulData, SECTION * 1024, 1024); // 编程1KB扇区
}

// 向Flash虚拟的EEPROM指定地址处写入N个字节
void FlashEEPROM_WriteN(unsigned short usAddr, const char *pcData, unsigned short usN)
{
char cBuf[1024];
unsigned long *pulData = (unsigned long *)(cBuf);
unsigned short i;

if (usN > 0)
{
FlashEEPROM_ReadN(0, cBuf, 1024); // 读取1KB扇区内容

for (i = 0; i < usN; i++) // 修改1KB缓冲区内容
{
cBuf[(usAddr + i) & 0x03FF] = pcData[i];
}

FlashErase(SECTION * 1024); // 擦除1KB扇区
FlashProgram(pulData, SECTION * 1024, 1024); // 编程1KB扇区
}
}

void main()
{
// 40 MHz system clock
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|
SYSCTL_XTAL_16MHZ |SYSCTL_OSC_MAIN);

static char cString[] = "Hello, world\r\n";
static char cBuf[30];

FlashEEPROM_Init(); // 虚拟的FlashEEPROM初始化

FlashEEPROM_WriteN(100, cString, sizeof(cString));
FlashEEPROM_ReadN(100, cBuf, sizeof(cString));

while(1);

}

step by step:

你好,

    楼主运行代码出现了什么问题?可以具体描述一下吗?

赞(0)
未经允许不得转载:TI中文支持网 » 求助:LM4F120 flash应用的例程
分享到: 更多 (0)