目前使用usb-dfu 来升级程序
单片机:stm32f407vet6 512k-flash
stm32f407vet6的dfu程序:
升级按键定义PD6,可以正常进入dfu模式,dfu的程序跳转地址定义 0x0800e000,
应用程序的起始地址也是 0x0800e000,
usb-dfu升级成功图片:
usb-dfu 地址设置:
目前的问题如下:
1、先使用jlink 下载 usb-dfu程序到单片机,再使用dfu来升级程序后,程序没有运行,硬件仿真usb-dfu程序时会跳转到“void HardFault_Handler(void)” 这个函数里面。
2、先使用jlink下载应用程序到单片机,再使用jlink下载dfu程序到单片机,应用程序能够正常运行,按pd6也能够进入dfu模式。使用dfu升级程序也能够正常运行,但是应用程序不能够做任何修改,否则下载到单片机
的应用程序也不会运行(dfu程序跳到 void HardFault_Handler(void) 这里了),这是什么缘故 ??
3、先使用jlink下载usb-dfu程序到单片机,再使用jlink下载应用程序到单片机,应用程序也能够正常运行,按pd6按键也能够进入dfu模式,现在使用dfu升级应用程序也能够正常运行(任意下载n多次),但是应用程序不能够做任何修改,否则下载到单片机
的应用程序也不会运行(dfu程序跳到 void HardFault_Handler(void) 这里了),这是什么缘故 ??
应用程序的启动地址设置:
转载
|