本帖最后由 TI_MCU 于 2011-12-6 17:38 编辑
M4里面的EEPROM并不是编址在内存空间中的,而是直接通过操作寄存器(Register)进行读写的。所以EEPROM中间的某个地址就是只属于EEPROM的地址,并不和内存地址有冲突。
要想方便的使用EEPROM,最好的办法就是使用TI的StellarisWare驱动库程序:
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "inc/hw_timer.h"
#include "inc/hw_ints.h"
#include "inc/hw_gpio.h"
#include "driverlib/sysctl.h"
#include "driverlib/eeprom.h"
unsigned long pulRead[2];
void main()
{
unsigned long pulData[2];
// 系统工作在50MHZ
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ);
// 使能EEPROM
SysCtlPeripheralEnable(SYSCTL_PERIPH_EEPROM0);
// 初始化EEPROM
EEPROMInit();
pulData[0] = 0x12345678;
pulData[1] = 0x56789abc;
// 向EEPROM里面0x400地址写入数据
EEPROMProgram(pulData, 0x400, sizeof(pulData));
// 读回来
EEPROMRead(pulRead, 0x400, sizeof(pulRead));
while(1)
{
}
|