在你用户程序开始的地方先做矢量拷贝:
int main(void)
{
uint32_t i = 0;
/* Relocate by software the vector table to the internal SRAM at 0x20000000 ***/
/* Copy the vector table from the Flash (mapped at the base of the application
load address 0x08003000) to the base address of the SRAM at 0x20000000. */
for(i = 0; i < 48; i++)
{
VectorTable = *(__IO uint32_t*)(APPLICATION_ADDRESS + (i<<2));
}
/* Enable the SYSCFG peripheral clock*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
/* Remap SRAM at 0x00000000 */
SYSCFG_MemoryRemapConfig(SYSCFG_MemoryRemap_SRAM); 再就是APP代码的FLASH和SRAM的起始地址配置 矢量拷贝的都有,因为我跑的是STM32F0x2_USB-FS-Device_Lib V1.0.0里面的DFU里面的demo code,但我现在是keil 5 重新配置了keil.布知道是否配置正确,还是说有什么地方还要配置的. 我的配置是下面图
我app程序配置. app 空间配置那里irom size写0xd000也不行.我先是使用jlink下载DFU的usbd_dfu.uvprojx工程,然后再使用jlink在线调试binary_template.uvprojx.进入debug后,程序都会跑飞. 真不清楚是我配置问题还是我操作流程不对?DFU不是这样使用的? 这个问题困扰我好几天了... 我试了下上电时通过boot0 pin进入boot区的DFU,然后下载用户程序可以.难道那个DFU的程序是应该烧录进system 的boot区域,而不是用户区域?也不对呀,那这样我用户区代码也没有加矢量也可以从system的boot DFU下载退出后也正常呀 楼主,你的问题解决了吗?请问是如何解决的。我现在用的STM32F072,本身程序已经开发了USB CDC功能,即虚拟串口。请问如何在不影响缘由USB应用的基础上开发DFU的?
页:
1
[2]