Author: Ross M. Fosler and
Rodger Richey
Microchip Technology Inc.
译者: 逐影Linux
硬译目的说明:我是想看看如何写bootloader的。
注意:要想在微控制器中实现BootLoader,首先要求单片机具有IAP功能,或者是可以对其自身的FLASH
进行擦除、 写入的功能。其次要考虑FLASH的大小。
辨识: 1、在一般芯片出厂时,厂商会烧写了一个bootloader到rom中,一次性烧写不可更改。
2、功能较强大的单片机如PIC16和PIC18系列或者stm32单片机,我们用户可更换bootloader ,
通过串口软件来擦除微控制器的flash,可设置为运行程序时只读的,作为boot区,用来代替上述
rom作用,但可编程的,即相当于EPROM(紫外线擦除)或者EEPROM(电子擦除)。
而用户程序应该是下载到SRAM区,即静态RAM区,SRAM可掉电保存,即下载的程序可下次
再次开机运行。还有一个是DRAM,即动态RAM区,用来加载程序的执行(包括指令和数据的
刷新)(指令和数据本质上都是二进制0、1),这个就是通常所说的内存,而DDR RAM是
SDRAM一种类型。
3、flash可做为ROM用,也可作为RAM用,在做RAM用时,执行速度比RAM慢,所以可相当于存
储硬盘的作用。所以其实下载用户程序和bootloader程序时区别在于flash地址不一样,flash
分别NOR flash和NAND flash。下载后, 通过内存加载的方式,加载到SDRAM中的执行。如
果少了SDRAM,那么程序执行起来速度就会 非常慢。
名词全称解释:
USART: (Universal Synchronous/Asynchronous Receiver/Transmitter) 通用同步/异步串行接收/发送器
USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。
UART: 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。
INTRODUCTION 说明
Among the many features(特性) built into Microchip’s(微芯)Enhanced FLASH Microcontroller devices is
the capability (能力)of the program memory to self-program.
在内置于Microchip增强式FLash 微控制器(应该就叫单片机吧)器件中的众多特性是支持程序存储器
self-program功能。(译者注:self-program(自编程),是指用Flash存储器中的驻留的软件或
程序对Flash存储器进行擦除/编程的方法。通过单片机的自编程功能,可以设计Bootloader程序,
通过串口等通信接口实现对产品重新编程、在线升级的功能。)
This very useful feature has been deliberately included to give the user the ability to perform bootloading
operations.
这个非常有用的特性是特意内置的,给使用者能力去执行bootloading 操作。
Devices like the PIC18F452 are designed with a designated(指定) “boot block”, a small section of
protectable program memory allocated specifically for bootload (引导)firmware.
像PIC18F452 等一些器件专门为 bootload 固件设计了一个指定的“boot block”,一个很小的受保护的程序存储分配区。
This application note demonstrates a very powerful bootloader implementation for the PIC16F87XA
and PIC18F families of microcontrollers.
这个应用笔记演示了 PIC16F87XA 和 PIC18F系列等微控制器一个非常强大的bootloader实现。
The coding for the two device families is slightly different; however, the functionality is essentially
the same. The goals of this implementation stress a maximum performance and functionality,
while requiring a minimum of code space.
评论
查看更多