xmshao 发表于 2016-4-9 16:05:40

STM32F0根其它系列在中断矢量表这个地方不一样

在你用户程序开始的地方先做矢量拷贝:
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);

xmshao 发表于 2016-4-9 16:06:39

再就是APP代码的FLASH和SRAM的起始地址配置

aatt05 发表于 2016-4-11 12:49:29

矢量拷贝的都有,因为我跑的是STM32F0x2_USB-FS-Device_Lib V1.0.0里面的DFU里面的demo code,但我现在是keil 5 重新配置了keil.布知道是否配置正确,还是说有什么地方还要配置的. 我的配置是下面图

aatt05 发表于 2016-4-11 12:50:52

我app程序配置.

aatt05 发表于 2016-4-11 12:55:33

app 空间配置那里irom size写0xd000也不行.我先是使用jlink下载DFU的usbd_dfu.uvprojx工程,然后再使用jlink在线调试binary_template.uvprojx.进入debug后,程序都会跑飞. 真不清楚是我配置问题还是我操作流程不对?DFU不是这样使用的? 这个问题困扰我好几天了...

aatt05 发表于 2016-4-11 13:37:35

我试了下上电时通过boot0 pin进入boot区的DFU,然后下载用户程序可以.难道那个DFU的程序是应该烧录进system 的boot区域,而不是用户区域?也不对呀,那这样我用户区代码也没有加矢量也可以从system的boot DFU下载退出后也正常呀

GodMode 发表于 2018-2-1 13:43:15

楼主,你的问题解决了吗?请问是如何解决的。我现在用的STM32F072,本身程序已经开发了USB CDC功能,即虚拟串口。请问如何在不影响缘由USB应用的基础上开发DFU的?
页: 1 [2]
查看完整版本: STM32F072是否可以通过USB 接口更新程序