我有一個STM32F103,我遠程重新閃爍使用不同的MCU通過其UART端口(使用啓動加載程序)。它工作得很好,我有多個設備已經成功地閃過正確的代碼。但是偶爾會出現一個停止工作的設備,因爲STM32代碼閃現不正確。整個bin文件使用另一個MCU閃存,但STM被「磚化」(不完全是磚塊,它只是有一個錯誤的代碼)。當我使用我的電腦重新閃光設備時,所有事情都再次發生。爲什麼十六進制寫入STM會失敗?STM32通過啓動加載程序閃爍失敗(UART1)
簡介:
*使用UART引導程序閃爍STM32F103
*有時候這個方法失敗,所以STM停止工作。
*是否有方法檢查寫入代碼空間的數據是否有效? * STM不是磚,它是只是一個錯誤的代碼裏面的閃存。當我從代碼空間讀回閃存時,它比應該閃過的文件要小。
*我在系統啓動模式下使用STM。 [AN2606]
這是你的bootloader還是內置的?你怎麼能磚建成一個?這聽起來像一個軟件/工具問題,而不是一個SO問題。您是否編寫了自己的引導程序和/或工具來與ST引導加載程序交談?或者你只是使用現成的工具? –
嗨old_timer,我在系統啓動模式下使用STM,使用內置的bootloader。正如我在上面編輯中提到的那樣,我(剛剛)讀回閃存,發現STM閃存代碼與我的代碼(bin文件)大小不一樣。它似乎大約是200(ish)個字節。 –
它打破的地方在哪裏?它是在一個明顯的邊界嗎? (閃存塊,最後一個完整的消息/數據包沒有工作,或者一個在中間,等等?) –