5xx-超出64 k地址的flash 读和写和segment A 的读写理解
MSP430 5xx系列 Flash认识
查找了好多资料都是MSP430 1,2,4系列的flash讲解,好像没有5系列的东西。5系列和别的系列有些区别下面是自己的一些体验,给大家分享出来。
在5系列 flash操作我遇到的问题:
1.Flash可达到256K,如果需要访问0xFFFF以外的地址需要注意。
程序定义
char * Flash_ptr; //定义指针
Flash_ptr = (char *) 0x10000; //将指针指向0x10000这个地址(超出0xFFFF)
Warning[Pe1053]: conversion from integer to smaller pointer C:\Documents and Settings\lixiaobo\桌面\MSP430-FLASH\flash test\main.c 72
322 bytes of CODE memory
257 bytes of DATA memory (+ 6 bytes shared)
Errors: none Warnings: 2
Done. 0 error(s), 2 warning(s)
错误原因:指针变量最大0-0xffff即64K空间,当超过时需要将 Data Model选为Large模式 解决办法:options-> General options ->Target ->Data Model ->Large
当要进行大于0xffff地址的flash读写时就需要:options-> General options ->Target ->Data Model ->Large,然后可以根据不同的flash擦写要求配置:
如下图所示, options-> FET Debugger->Download:
在Flash erase 栏目中,有三个选项,分别是 1. 只擦除主存储区 2. 擦除主存储区和信息区
3. 保留未改变的存储区。 //重新Download时可以依然看见以前的数据 按照你的需求,选择即可。
2.对segment A的使用时需要注意。