目的:最近需要在CC2540 FLASH中写入固定值,编译烧写后作为判断跳转依据。
硬件平台:CC2540 IDE:IAR10.30.1
网上搜索的方法基本上都不能用,可能和芯片平台和IDE版本都有关系。以我的开发环境为例,需要注意的几点:
__root const unsigned int boot_flag@"MYSEG" = 0x4C47;
1.__root 不能少,不然无法写入到Flash中
2.@后不能直接加地址,不然也会报错,提示“Fatal error: Everything you want to place in flash memory must be placed with Xlink CODE memory segment type”,意思大概就是需要修改.xcl文件增加段地址
3.-P(CODE)MYSEG=_MYSEG_BEG-_MYSEG_END,(CODE)括号中只能填写CODE,可能和芯片存储分类有关系?
做完以上步骤后就可以写入设定好的值。
PS:我目前只能在前面几页写入信息,后面的几页无法写入,比如120页,可能是因为Flash存储是通过寄存器选择对应的bank来存储,所以bank地址和flash地址对应关系搞错了?知道的大神麻烦告知下,谢谢!