我用的MSP430F5438A,IAR下程序时,只能选择只擦主存储区或信息区也擦以及保留未改变的部分。我想把数据存在一部分bank里,以后下新程序再读取这段数据,flash擦除里不是可以选择只擦某段吗?这里的段不指某个bank(有四个bank各64kB)吗? 每次下新程序,全部的flash都被擦了。所以是每次下新程序四段bank都会被擦,但information区可以不擦,或者保留未改变的部分(这样前面的地址内会有原来的数据残留)吗?
tianyu zhao:
回复 Ken Wang:
谢谢回答
所以说,能够不被擦除掉的部分只有384B(对于MSP430F5438A)大小是吧?
我的IAR会有一种配置选择为:保留未改变的部分(包括main memory),这样的话新的程序只会覆盖开始一部分的Flash(从0x5C00开始),而不改变其他部分,假如我把数据写在flash较靠后的地址,新的程序(有可能未完全覆盖原程序代码部分所占的flash,但不会覆盖到数据区域)会受到影响吗?
因为我要存的数据挺大的information bank B,C,D的存储空间不够用,有解决方法吗?
谢谢!!!
tianyu zhao:
回复 Ken Wang:
Ken Wang
Hi tianyu,
在CCS或是IAR的配置页面里面关于程序下载时存储器的配置,一般有以下几种常用的配置:
1. main memory only 指的就是flash,不包括information banks,
2. main memory and information memory,,指的是flash加上information bank B,C, D
3. main memory and information memory and protected information memory 指的就是flash information bank A, B , C, D.
所以说如果你想要把一些数据存储在flash里面不被擦除掉。可以选择奖数据保存在information bank B,C,D里面,A里面存有芯片出厂的时钟之类的校正值,不好在用。然后烧写程序时,选择第一种配置就行。
谢谢
ken