KEA的bootloade的三个层面:bootloader 层,通信层和驱动层

电子说

1.2w人已加入

描述

嵌入式产品,我们一般都需要一个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

bootloader的代码放在flash的头4k字节,以KEA128Z为例可以划分为

bootloader

中断向量表就要相应偏置到0x0000_1000 处,因为应用程序入口点在这里。bootloader 的流程在应用笔记里也有提供,可以很好的帮助开发者熟悉整个过程。默认支持UART接口,如果需要支持其他接口,需要再源码里使能,也可以同时支持几个接口,但UART优先级高,同时为了节省代码空间,一般都选择一种接口而禁止其他接口。

bootloader

NXP的bootloader通信层都是基于SREC文件,这是一种摩托罗拉最早于二十世界,七十年代中叶发明的,它的格式如下

bootloader

关于这种文件个详细描述,可以参考维基

https://en.wikipedia.org/wiki/SREC_(file_format)

例如可以通过一个例子很好的理解这种文件格式

bootloader

按照这个结构,可以定义一个结构体来描述他

bootloader

整个通信的流程为

bootloader

如果手上有KEA的开发板就可以上手试试这个bootloader。

官方提供的压缩包里也有简单的上位机接口,

bootloader

bootloader一定要理解系统内存的分布,可以参考官方提供的源码,修改使用于自己的项目,也可以自己开发,使用于自己的项目,总之bootloader还是很重要的,如果设计不好,会在后期给你带来很多坑。祝愿每一个工程师都能够设计出自己的友好的bootloader。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分