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

F5529如何向地址为32位的FLASH写数据

想做DDS,往FLSAH中写入波形数据

程序如下:

void write_Triangle (uint32_t address)
{
uint32_t *Flash_ptr; // Flash pointer
unsigned int i;
Flash_ptr = (uint32_t *) address; // Initialize Flash pointer
FCTL1 = FWKEY + ERASE; // Set Erase bit
FCTL3 = FWKEY; // Clear Lock bit
*Flash_ptr = 0; // Dummy write to erase Flash segment

FCTL1 = FWKEY + WRT; // Set WRT bit for write operation

for (i = 0; i < 4096; i++)
{
if(i < 2048)
*Flash_ptr++ = i; // Write value to flash
else
*Flash_ptr++ = 4095 – i; // Write value to flash
}

FCTL1 = FWKEY; // Clear WRT bit
FCTL3 = FWKEY + LOCK; // Set LOCK bit
}

函数传入0x14400,传入函数后只剩下0x4400,取16位

uint32_t *p;

p = 0x14400;

此时p也只剩下16位,这个是不是跟16位MCU有关,那F5529有地址高于16位的FLASH,如何写呢?

谢谢!

SEASON PENG:

已找到解决方案:

“这种情况时,及FALSH地址超过了64KBYTE时,需要在编译器选项中处理器设置里将DATA/CODE MODE设置为LARGE。”

赞(0)
未经允许不得转载:TI中文支持网 » F5529如何向地址为32位的FLASH写数据
分享到: 更多 (0)