飛思卡爾系列單片機Bootloader的初步開發經驗


飛思卡爾系列單片機Bootloader的初步開發經驗

BootLoader一般用於后期嵌入式產品的升級使用。由於產品中缺乏jtag硬件調試接口。BootLoader可以實現沒有物理破壞性的軟件升級。

開發重點:

1、芯片本身的Flash驅動。一般都由官方提供。比如mpc5744P芯片采用的文檔是Standard software driver for C55 Flash。我們可以采用vle指令的,c-array形式的驅動。該驅動的表現形式是數組。其實里面應該就是一個完整的獨立的,可以接受參數並可以返回的函數。注意,函數接口的參數可能需要理解和試錯。

2、芯片本身的CAN通信。CAN通信要實現基本的報文的收發。CAN的初始化工作需要做好。報文的接收通過中斷實現。

3、S19文件的格式。由於S19文件的格式比較靈活。而由於單片機的Flash的特殊性(具體參見Flash編程文檔),對編程的步驟的各個部分都有嚴格的要求。不能隨意操作。否則在對Flash的操作中,單片機很容易進入Exception。我們幾乎沒有對Exception這種底層問題的處理能力,這需要匯編級別的理解。所以,要防止這種情況出現。

4、上位機軟件。上位機軟件其實不是設計的重點。根據界面和業務邏輯分離的設計原則,可以盡量簡化上位機的設計。上位機的一個根本任務就是讀取S19文件中的每一行,然后將每一行通過報文(多幀)發送出去。關於上位機和下位機的交互。這個暫時沒有太好的思路。這一部分比較靈活。一個基本的原則是單片機上電在等待一段時間T后,如果沒有接受到任何表示要對其進行操作的信息的報文,那么就進入正常執行應用程序的流程。

5、鏈接文件。鏈接文件需要根據芯片手冊中的memory map和硬件啟動流程仔細斟酌設計。如果配合一個好的調試器使用,那么問題可能還是比較好發現和解決的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM