大家好,请教下关于stm32f407 软件升级问题 设备:1、官方的discovry的开发板MB997B 2、官方提供的STM32F4-Discovery_FW_V1.1.0\Project\FW_upgrade 开发包 3、编译环境使用KEIL MDK 问题:1、利用该程序将自己编译生成的systick的二进制文件下载到0x08008000地址,程序执行COMMAND_JUMP() 后无法启动 2、使用官方提供的.bin文件就可以,就可以正常运行 3、我编译的systick的二进制文件时,同时生成的hex文件,利用STM32 ST-LINK Utility 下载到0x0800 0000地址是可以运行的。(侧面论证了用于编译的原程序无任何问题) 4、编译生成的二进制文件使用的是KEIL自带的二进制生成器来生成的 5、二进制文件是通过单步仿真下载到0x0800 8000 地址,可以确认二进制.bin文件时下载到片内flash内 6、大概问题应该是出在自己编译的.bin文件和官方提供的.bin文件存在差异导致(仅个人推断) 各位大牛如有遇到过该问题的,请指点指点,谢谢! |
最近又没有stm32开发板申请了,什么时候安排?
STM32f407+TOUCHGFX,用CubeMX生成后编译不通过
STM32 Bootloader提问
目前新项目,MCU采用STM32F407VGT6,文件存在TF卡(SDIO),请问能否通过F4的USB把TF卡里面的txt和excel文件拷贝到U盘?哪个USB可以实现?
STM32F407ZGT6假死现象,看门狗不起作用
STM32F407VGT6使用PLL倍频后芯片会反复重启
CAN接收丢包
使用Cubeprogrammer无法连接、连接G431和一块H750的板子可以连上但是连另外一块H750的板子和F407的板子就直接报错,这个应该如何解决。
SPI 通信,既有单字节数据传输,又有多字节数据传输,该如正确使用 DMA?
SD卡log存储
RE:STM32F407 USB upgrade问题
RE:STM32F407 USB upgrade问题
0x08000000
??
RE:STM32F407 USB upgrade问题
2、使用官方提供的.bin文件就可以,就可以正常运行
3、我编译的systick的二进制文件时,同时生成的hex文件,利用STM32 ST-LINK Utility 下载到0x0800 0000地址是可以运行的。(侧面论证了用于编译的原程序无任何问题)
---------------------------------------------------------------------------------------------
1、我猜这是笔误。因为0x0800 0000是cortex M3的复位起始地址,用来存放IAP的 ,APP是存放在Boot跳转的位置, 如0x08008000。
2、我猜你的代码无法运行的原因是没有修改中断向量表的映射,在APP的main函数中需要新增一条语句,
void NVIC_SetVectorTable(0x8000000, 0x8000); 用来表示复位/中断发生后,IAP的中断可以映射到APP的 中断 向量表,即可以映射到地址0x08008000。
具体查看datasheet 和stm32的库函数NVIC_SetVectorTable
RE:STM32F407 USB upgrade问题
如果在APP中不重新设置中断向量表为0x08008000,以后发生中断后,中断又映射到地址0x08000000,导致APP的中断无法响应
如果设置了中断向量表,中断发射后映射到地址0x08000000,然后发生有设置的中断映射表在0x08008000,中断重新产生一次映射。
如果需要细究最好看看arm怎么启动的,中断怎么映射的
RE:STM32F407 USB upgrade问题