关闭

STM32 USB升级

标签: stm32升级usb
718人阅读 评论(0) 收藏 举报
分类:

首先移植USB官方库,移植方法详见另一篇文章USB OTG官方库移植

建议移植DFU模式,或者MSC模式。DFU模式作为PC端连接数据线下载到目标板,MSC模式可用U盘连接升级。

按键 屏幕显示驱动什么的不提了。主要提一下要修改的地方。

     /* Jump to user application */
     JumpAddress = *(__IO uint32_t*) (APP_DEFAULT_ADD + 4);
     Jump_To_Application = (pFunction) JumpAddress;
     /* Initialize user application's Stack Pointer */
     __set_MSP(*(__IO uint32_t*) APP_DEFAULT_ADD); 
     Jump_To_Application();

官方库中,程序跳转有如上代码,需要修改APP_DEFAULT_ADD的地址,将地址修改为你所需要下载的APP的地址。__set_MSP();可将栈的指针也指向APP的栈,因此此地址也需要设置。

DFU中,基本不需要修改什么。MSC模式中,要做升级先要做U盘读取,读取完成后升级就很简单了。相当于直接把bin文件读取出来,写入到片内FLASH中的APP起始地址部分。

APP中,需要在project->option->link->edit设置中断向量地址,程序起始地址。这两个地址可以设为一起,因为程序起始的开头就是中断向量。此外,还需要在system_stm32f2xx.c等文件中 ,将VECT_TAB_OFFSET 偏移改掉,如程序起始地址为0x800c000就改为0xc000。

然后就可以愉快的下载运行了。将app生成的bin文件放在u盘指定目录下 开机检测到U盘 读取文件 写入FLASH,最后写入完成,跳入指定目标地址,运行APP程序。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12521次
    • 积分:210
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:2篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论