NXP的LPC17XX下载时出现0x1c地址校验出错
具体的错误现象
Erase Done.
Programming Done.
Contents mismatch at: 0000001CH (Flash=BEH Required=00H) !
Contents mismatch at: 0000001DH (Flash=F4H Required=00H) !
Contents mismatch at: 0000001EH (Flash=FFH Required=00H) !
Contents mismatch at: 0000001FH (Flash=EFH Required=00H) !
Verify Failed!
Error: Flash Download failed - “Cortex-M3”
把上面这样贴出来,是为了别人在编译器里把build output的内容复制上来后直接搜索使用的。
解决方法一
1/修改startup_lpc17XX.s文件
把***66行 ***的内容改成FLASH的内容就好了也就前面报出来的
Contents mismatch at: 0000001CH (Flash=BEH Required=00H) !
Contents mismatch at: 0000001DH (Flash=F4H Required=00H) !
Contents mismatch at: 0000001EH (Flash=FFH Required=00H) !
Contents mismatch at: 0000001FH (Flash=EFH Required=00H) !
就是0xeffff4be
改成这个样子
这样子就可以快速解决问题了,可是不能根本上弄清问题。
第二种方法就是修改FLM校验文件
这个头文件的位置是:***…\Keil\LPC1700_DFP\2.5.0\Flash/LPC_IAP_128.FLM***
在这个文件夹下有 flash校验的源文件
把363行去掉就好的了,不会去校验0x1c的位置了
接下来就是把FLM文件生成就好了。
点解编译,编译完会执行一个命令
生成的文件名子在这里改
在创建之前要修改这两个宏定义才可以
因为程序内部要使用的。
注:可能源文件不能编辑,如下图
有个钥匙的不能修改,
把这一个flashprg.c的属性去掉只读的选项就好的。