This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

flash区域初始化问题。



使用以下代码初始化数据放在flash区域

#pragma DATA_SECTION(test,"flashtest");
const Uint16 test=1;

flashtest已经在cmd文件中放在了flash区域了

flashtest :> FLASHB,PAGE=1

程序步骤如下:

1.当程序第一次运行的时候会初始化test为1并放置在flashtest区域

2.当程序运行过程将test置从flash中拷贝到如变量a中,即a=test;

3.程序继续运行,运行一段时间以后a的值修改掉了,如a=2,

然后将a的值通过flash_api函数写回test所在的flash位置,即test所在flash区域值改为2,

接着芯片就断电。

问题如下:

当芯片第二次上电的时候,

#pragma DATA_SECTION(test,"flashtest");
const Uint16 test=1;

这段程序是不是继续执行,那么test的值就从2改为1了吗?

如果不执行,程序正常运行时又把test从flash区域拷贝到a中,那么a=2。

还是执行了,程序把test从flash区域拷贝到a中,这时候a的值还是1。

请帮忙讲解一下。