本帖最后由 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)
- {
- }
|