FRAM,中文名称为铁电存储器。。FRAM提供一种与RAM一致的性能,但又有与ROM 一样的非易失性。 FRAM 克服以上二种记忆体的缺陷并合并它们的优点,它是全新创造的产品,一个非易失性随机存取储存器。
首先了解下FR5739的地址空间,对于FRAM,它的地址空间范围从0xC000—0xFFFF;
分成32个page,每个page的大小为512字节。。具体分布可以查看官方的User Guide文档,此处截部分图:
因此,在编写程序的时候,假如需要将数据存储进FRAM,则应设置写入地址在该范围内。。
对于中端向量的地址空间的范围,文档上明确给出了是从0FFFFH---0FF80H,其中每个中断向量所占的地址为16个字节。因此,一共有64个中断源。。
而1K的RAM的地址范围则从1FFFH—1A00H,更详细的可以看datasheet中的内存结构
结合这个Memory Organization 和前面的FRAM的地址空间,就发现了两者的FRAM的地址空间没有对上号。因为Memory Organization的Totla Size 是15.5K,起始地址是C200H,而前面的是16K,起始地址为C000,也就是说少了一个page。。然后又看了下文档,发现在User Guide 中的Table 6-1. Page Addresses for 16KB, 8KB, and 4KB Main Memory
的NOTE中提及了
大概意思就是说在计算的时候,主内存的大小应该从下一个或者往下的两个power算起。。不过我没明白为什么要这样弄。。。
综上其言,只要定义个指向FRAM地址空间的指针,就能通过指针的操作将数据写入其中了。。然后调试的时候查看内存,便能知道是否将数据写进去了。。