在项目中遇到一个问题:需要将一个变量放到一个指定的flash地址里,即flash的绝对地址中。我查看了IAR的complier手册,上面的例子说以下面的方式定义即可。 const int bootKey @ 0x0801FFFC = 3; /* OK */ 但是我把程序下到板上后,发现读0x0801FFFC这个地址里面的值并不是初始化值3,而是空的0xFF。难道对flash绝对地址不能赋初值?如果能,他是怎样下到指定的地址上去的呢?
对这个问题,在IAP时遇到麻烦。IAR编译后生成一个bin文件,ST有个IAP例程,他的做法是直接将bin文件中的code从偏移地址开始按顺序烧写flash,但这样烧写完后我指定的地址0x0801FFFC是没有改变的?
想了好长时间,都没弄清楚。请问版主应该怎样解决这个问题? |