自举程序使硬件编程器的任何物理干预都变得不必要。目标器件与主机之间必须具有某种形式的数据连接。自举程序需要使用程序存储器中预留给自举程序固件的低地址部分.
基本操作
自举程序的基本功能是接收、解释并执行主机软件和目标固件均已知的命令集。与本应用笔记给出的命令相比,该命令集可以更复杂,也可以更简单,但一般都必须支持用于读取、擦除和写入闪存的命令。此外,还必须支持用于从自举程序代码跳转到应用程序代码的命令。此命令通常在编程 / 验证周期结束时发出。应用程序代码可能需要用于退出应用程序代码并进入自举程序代码的命令。
擦除程序
存储器在软件控制下,只需几行指令即可擦除程序存储器。一行指令由程序存储器的 32 个指令字组成。请注意,地址必须与32字边界对齐(EEADRL <4:0> = 0 0 0 0)。由于擦除序列可修改现有数据,因此需要特殊的解锁序列。解锁序列包含向 EECON2 寄存器连续写入的值0x55和0xAA。
更新程序存储器
在写入程序存储器之前,应执行擦除操作。程序存储器以块为单位写入。一个块包含 8 字的程序存储器数据,这些数据的地址连续且与 8 字边界对齐(EEADRL <2:0> = 0 0 0)。如果需要修改较小的存 储块,则应使用读-修改-擦除程序方法,因为程序存储器只能以8字块的方式写入。擦除操作会将所有擦除的存储单元的值设置为0x3FFF。这相当于二进制的全1值。
自举程序命令
本设计中使用的自举程序固件支持用于读取、擦除和写入目标器件闪存的命令集。表1列出了这些命令。
|