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 几种接口方式,其网址链接为:
www.freescale.com/kboot
除了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