Bootloader是一种面向用户应用程序的引导代码,可以在没有烧写器的情况下烧录用户程序,也可以用于在线更新程序。飞思卡尔提供了三种实现bootloader的方式,分别为:
1.预烧写在ROM中的bootloader
这种方式是MCU中内置了专用的ROM来存放bootloader,目前支持ROM型bootloader的Kinetis系列MCU包括KL03,KL17,KL27和KL43等。其中KL03和KL17的ROM bootloader包含SPI/UART/IIC三种接收方式,KL27和KL43还增加了USB的方式。
2.预烧写在FLASH中一次性bootloader
这种类型的bootloader在芯片出厂前预写在FLASH中,因此可以像ROM型bootloader一样直接使用。但与ROM型不同的是,上电后bootloader会从FLASH搬移到RAM 中运行,再将FLASH整片擦除并烧写用户程序,因此这种bootloader是一次性的。其优点是不需要片内ROM且方便量产烧写,缺点是无法支持以后的程序更新。目前支持预烧写在FLASH中一次性bootloader的Kinetis系列MCU包括K22、K24和KV3x等。
3.开放源码的bootloader
这种方式将FLASH空间分为两个部分,一部分用于存储bootloader代码;另一部分用于存储用户应用程序代码。这种方式的bootloader方便客户定制自己的代码。
目前飞思卡尔提供开放源代码的Kboot,支持UART/SPI/IIC/USB HID 几种接口方式,其网址链接为:
除了Kboot,还有以下独立版本的bootloader,包括:
1)AN2295(开发人员的串行引导加载程序)
文档下载地址为:http://cache.freescale.com/zh-Hans/files/microcontrollers/doc/app_note/AN2295.pdf
代码下载地址为:http://cache.freescale.com/files/microcontrollers/doc/app_note/AN2295SW.zip
另外FAE Yang Liang 对其进行了移植,目前已经支持FRDM-KE02,KE06,KL25,KL26,KL43,KL46, TWR-K60, KV4x, KV10.下载地址为:Kinetis/AN2295_Bootloader · GitHub
2)AN4767 (Kinetis E 系列上的UART Boot Loader 设计)
文档下载地址为:http://cache.freescale.com/zh-Hans/files/32bit/doc/app_note/AN4767.pdf
基于AN2295,没有提供代码。
3)AN4775 (Kinetis E 系列上的IIC Boot Loader设计)
文档下载地址为:http://cache.freescale.com/zh-Hans/files/32bit/doc/app_note/AN4775.pdf
代码下载地址为:http://cache.freescale.com/files/32bit/doc/app_note/AN4775SW.zip
4)AN4368 (USB 大容量存储设备主机引导加载程序)
文档下载地址为:http://cache.freescale.com/zh-Hans/files/microcontrollers/doc/app_note/AN4368.pdf
代码下载地址为:GitHub - Wangwenxue/USB_MSD_Host_Bootloader_K60: This is usb msd Bootloader for K60 (For K60)
GitHub - Wangwenxue/USB_MSD_Host_Bootloader_K64: This USB MSD bootloader for K64 (For K64)
5)AN4379 (Freescale USB大容量存储设备引导加载程序)
文档下载地址为:http://cache.freescale.com/zh-Hans/files/microcontrollers/doc/app_note/AN4379.pdf
代码下载地址为:http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4379SW.zip
6)AN4764 (USB Human Interface Device Boot Loader for ColdFire Plus, Kinetis K, and Kinetis L MCUs)
文档下载地址为:http://cache.freescale.com/files/32bit/doc/app_note/AN4764.pdf
代码下载见附件
7)AN4370 (用于 MCU 的 USB DFU 引导加载程序)
文档下载地址为:http://cache.freescale.com/zh-Hans/files/microcontrollers/doc/app_note/AN4370.pdf
代码下载地址为:http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4370SW.zip
8)AN4367 (用于 MCU 的 以太网引导加载程序)
文档下载地址为:http://cache.freescale.com/zh-Hans/files/microcontrollers/doc/app_note/AN4367.pdf?fromsite=zh-Hans
代码下载地址为:http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4367SW.zip
最新的代码请到FNET官网下载:http://fnet.sourceforge.net/
9)Kinetis Bootloader to Update Multiple Devices in a Network - for Cortex-M0+
代码及文档下载地址为:https://community.freescale.com/docs/DOC-328168
谢谢分享,非常感谢!
希望能将KBoot如何通过命令行更新介绍的更详细些。
点赞,总结的非常好!
谢谢,我一直在更新AN2295,目前支持FRDM-KE02,KE06,KL25,KL26,KL43,KL46. TWR-K60, KV4x, KV10,可以从下面这个地址获取:
Hi Wenxue
Good work on summary of bootloader for Kinetics family.
I am working on K20d72m based custom board, looking for solution to receive command from PC to calibrate Bluetooth chip on board.
Do you know if there is a demo bootloader that supports both USB (virtual COM connection to PC) and SPI port to peripheral chip? I need such bare-metal application for board calibration.
Thanks!
Hui
HI,Liang Yang,
How to port KE02/KE06 uart bootloader to FRDM-KE04Z Demo board?
Thank you?
Hi hui,
We don't have a bootloader which can meet your requirement.You need to do it by yourself.
Best Regards,
Wenxue
发自我的 iPhone
在 2015年4月11日,0:20,"Hui Shao" <admin@community.freescale.com<mailto:admin@community.freescale.com>> 写道:
<https://community.freescale.com/>
<https://community.freescale.com/>
Kinetis Bootloader 总结
new comment by Hui Shao<https://community.freescale.com/people/huishao2?et=watches.email.document_comment> View all comments on this document<https://community.freescale.com/docs/DOC-103383?et=watches.email.document_comment#comment-17021>
Hi Liang Yang
Could you please re-upload the total software package and documents again?
I download the document, but open failed. Thanks.