STM32f103xx USB HID做IAP功能,USB列举失败

2019-07-14 16:18发布

小弟最近遇到很頭痛的問題,
從IAP區跳轉至APP區USB通訊都正常,
但是當從APP區跳轉回IAP區時,USB列舉卻失敗,導致IAP區無法做USB通訊,也有試過IAP區不初始化USB,但中斷卻無效,
我很確定的是我IAP區與APP區都有重新設置RCC跟NVIC中斷向量
在IAP區的NVIC是NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);在APP區的NVIC是NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x4000);在APP區中的options IROM1我也有改成0x8004000,
跳轉到IAP區就是沒辦法做USB通訊,請問各位大大是甚麼問題啊???????????





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
充电搜索
2019-07-16 05:32
qq29955 发表于 2018-11-5 09:55
你IAP是做跳转APP用的,你APP里面程序放在USB里面,你程序在APP里面跑,检测到USB升级了,把数据写到知道的一块FLASH里面,写入完成后,写一个标识,系统复位进入IAP,你IAP里面写一个读升级标识,如果有标识说明需要跳转APP,你直接映射就可以了,IAP里面完全不用使用USB ...

本帖最后由 任风吹吹 于 2016-6-3 17:39 编辑

是的,就是这样,这里就只需要一个IAP和APP都可以访问的升级标志而已,要么在备份域寄存器,要么在FLASH或外挂存储东东。 我使用的是软件复位,所以就用了软件复位标志来作为升级标志而已。
至于在IAP中是不是用USB没有任何关系,在APP中只是需要一个触发升级的信号而已,是不是用USB也没多大的关系,关键是要在实际产品中可以用的触发信号。

DFU只是一种通过USB进行升级的IAP并符合USB升级标准的程序,怎么使用的看使用者。

一周热门 更多>