想做个IAP升级的程序,从ST的网站上down了AN2557 IAP例程并改造了一下以适应我的开发板。按照应用笔记里的说明操作后出现了问题。我先把LED程序用JTAG烧到开发板里面,然后把IAP程序用JTAG烧到开发板,运行正常,LED闪烁,可是按下升级键后用超级终端把upgrade led程序生成的led.hex下到开发板后程序就不能跑了。我看了下升级前和升级后的JumpAddress,升级接收完upgrade led程序生成的led.hex后竟然成了0x30303030,请问版主这是哪里不对啊?我用的编译器是Keil uVision3,芯片是STM32F103V8T6,我在我的要升级的应用程序upgrade LED里把IROM的Start也改成了0x8002000,Size改成了0xE000。我在我要升级的应用程序upgrade LED的main.c文件里把"NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0)"改成了"NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x2000)",可是为什么接收完升级的led.hex文件后执行到common.c文件的"else if (key == 0x32)"就不能正常运行了呢?请大家帮忙看看,我被折磨了2天了。相关的图片和程序都在压缩包里! 相关链接:https://bbs.21ic.com/upfiles/img/20097/2009720124559484.rar |