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

MSP430F5438A中大于0xFFFF地址的Flash擦写要如何实现?

看到说大于0xFFFF地址的Flash擦除、读、写时必须用内部定义的函数

头文件<intrinsics.h>中的如下函数

  __intrinsic void __data20_write_char (unsigned long  __addr,
                                        unsigned char  __value);
  __intrinsic void __data20_write_short(unsigned long  __addr,
                                        unsigned short __value);
  __intrinsic void __data20_write_long (unsigned long  __addr,
                                        unsigned long  __value);

  __intrinsic unsigned char  __data20_read_char (unsigned long __addr);
  __intrinsic unsigned short __data20_read_short(unsigned long __addr);
  __intrinsic unsigned long  __data20_read_long (unsigned long __addr);

是用这几个函数么?为什么没有擦除的。如果写函数是擦除之后再写的话,最小不是擦除512B么。

求实现方法

user4015270:

我只知道FLASH擦除是分扇区擦除的,只要擦除扇区任何一个字节,整个扇区都会被擦除的。

xiaohui Li:

回复 user4015270:

FLASH分段擦除,扇区擦除,和全部擦除。

xiaohui Li:

回复 灰小子:

非常感谢,当我定义char* p = 0x12000;时发现指针不能指向大于0xFFFF的地址,修改成大地址模式解决。

同理就能对FLASH操作了。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430F5438A中大于0xFFFF地址的Flash擦写要如何实现?
分享到: 更多 (0)