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.
評論
查看更多