嵌入式產品,我們一般都需要一個bootloader來更新固件和修復bug,一般常用的接口有,UART, CAN, USB, Ethernet,有的還有無線接口,像藍牙,WiFi,等等,最基礎常用的就是UART,熟悉NXP微控制器的猿友都知道,官方提供了基于UART和SPI, I2C,CAN等接口的bootloader,只要稍加修改就可以集成到自己的項目,最近在使用KEA汽車級的芯片,發現官網也提供了基于KEA的bootloader,目前只支持UART和SPI,因為SPI要轉接板,所以還是UART方便一些,經常被選用。
官方提供的KEA的bootloader基本上分為三個層面
bootloader 層,通信層和驅動層
bootloader的代碼放在flash的頭4k字節,以KEA128Z為例可以劃分為
中斷向量表就要相應偏置到0x0000_1000 處,因為應用程序入口點在這里。bootloader 的流程在應用筆記里也有提供,可以很好的幫助開發者熟悉整個過程。默認支持UART接口,如果需要支持其他接口,需要再源碼里使能,也可以同時支持幾個接口,但UART優先級高,同時為了節省代碼空間,一般都選擇一種接口而禁止其他接口。
NXP的bootloader通信層都是基于SREC文件,這是一種摩托羅拉最早于二十世界,七十年代中葉發明的,它的格式如下
關于這種文件個詳細描述,可以參考維基
https://en.wikipedia.org/wiki/SREC_(file_format)
例如可以通過一個例子很好的理解這種文件格式
按照這個結構,可以定義一個結構體來描述他
整個通信的流程為
如果手上有KEA的開發板就可以上手試試這個bootloader。
官方提供的壓縮包里也有簡單的上位機接口,
bootloader一定要理解系統內存的分布,可以參考官方提供的源碼,修改使用于自己的項目,也可以自己開發,使用于自己的項目,總之bootloader還是很重要的,如果設計不好,會在后期給你帶來很多坑。祝愿每一個工程師都能夠設計出自己的友好的bootloader。
-
通信
+關注
關注
18文章
6167瀏覽量
137333 -
uart
+關注
關注
22文章
1264瀏覽量
103175 -
bootloader
+關注
關注
2文章
238瀏覽量
46431
原文標題:Bootloader需要你的精心設計
文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
AD如何把三個用線繪成的邊框在三個層上重合
AUTOSAR基礎軟件層是由哪些部分組成的
三層架構的原理及作用_三層架構怎么用

三層交換技術的原理_三層交換技術的基本原理_三層交換技術的工作原理

AUTOSAR 基礎軟件層

評論