小弟最近遇到很頭痛的問題,
從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區中的op
tions IROM1我也有改成0x8004000,
跳轉到IAP區就是沒辦法做USB通訊,請問各位大大是甚麼問題啊???????????
沒錯, 還是自己寫IAP比較快,因我是做產品需要在軟體上即時做韌體更新, 跟DFU差很多
大大, 需求不一樣啊, DFU一定要用他自己的協議還有他自己的檔案格式,又不能及時使用自己寫的軟體做更新, 請問不自己用HID寫IAP要怎麼做??
使用DFU可以将自己生成的HEX,BIN,S19格式的文件,官方有提供一个转化工具可以转化为DFU格式,就可以升级了,随时可以把自己的软件生成的烧录文件烧录到到MCU内。
且DFU做IAP的代码是开源的,自己可以做随意修改和二次开发。至于DFU的类定义,这也是遵循USB标准类定义0xFE,0x01,可以到usb.org官网上查看。通讯协议代码为0x02,DFU mode protocol也是标准的,usb.org官网上可以查看,给个链接吧:http://www.usb.org/developers/docs/devclass_docs/DFU_1.1.pdf
但话说,是什么通讯协议重要么?
总而言之,使用DFU的IAP是对于固件升级是完全可以满足的,且开源,只不过你对其不够了解罢了。
一周热门 更多>