PIC32MX 读写flash调试经验

2019-04-15 11:54发布

  今天上午终于搞定PIC32 flash的读写,保存一般参数不需要添加外部EEPROM,非常简单,如果你了解了PIC32的存储器的虚拟地址与物理地址的映射。
在这里跟大家分享一下: flash的物理地址的起始地址是0x1d000000; 映射到虚拟内存地址0xBD00000。 在今天我调试过程中我犯了两个错误,导致白白花了一天的时间
1):在ICD调试代码的时候每次下载code都是要擦除整片flash。导致我上次写入flash中的数据与下次调试读出来的不匹配。
2):实验过程的时候将数据保存在0xBD000000后不远的地址处(其实是这部分地址是保存code用了),每次我去写数据的时候,肯定破坏了原来code,全速调试时工程奔溃。如图所示: 其中的0x98bc是code长度,如果我将参数保存在flash的0xBD000000-0XBD0098BC之间,这样flash写完之后,破话了原来的工程代码,运行之后出现错误)。我将参数保存到0xBD010000之后(0x10000>0x98bc),无论你怎么擦除,怎么修改,下次启动均能准确读取上次保存到数据