我有一個連接到Android(4.4)USB主機端口的STM32F4
微控制器。我想從Android設備上對微控制器進行固件升級。Android的STM32器件固件升級(DFU/DfuSe)
=================== ===================
| Android 4.4 | <=======================> | STM32F405xx |
| Device | USB Host USB Device | Microcontroller |
=================== ===================
傳統,STM32
微控制器可以使用稱爲DfuSe Utility
的PC工具由ST提供的升級固件。但我需要從Android設備上執行此操作。提供了他們工具的來源。
問題:
- 可以用於微控制器固件使用
Java
標準USB Host libraries從Android的升級? - 或者是否需要使用
NDK
來完成此操作,並將端口DfuSe
來源?如果是這樣,那麼應使用哪個庫從NDK
訪問USB?
應該採取哪個方向,如何做到這一點?
NDK的有可能使事情變得更難,而不是更容易。最有可能的是你可以做你需要的東西,問題是如果在這種情況下你需要在枚舉後很快與設備開始對話,但是我不相信這種情況,因爲我不相信工廠ROM USB引導程序有一個超時。另一個可能的挑戰是,DFU模式設備可能會向用戶展示來自ST的產品,而不是您的產品(liu_tanyi的定製引導加載程序確實有其優勢)。 –
是的你是對的。在DFU模式下,STM32器件顯示不同的產品ID('PID')。如果這些都可以從Java完成,我會非常高興。我最初的想法是使用像這樣的控制傳輸:'mConnection.controlTransfer(requestType,request,value,index,buffer,length,length,timeout);'這是一個很好的解決方法嗎? –