PIC18F bootloader编写相关

https://www.microchip.com/promo/8-bit-bootloader
在这里插入图片描述
在这里插入图片描述
闪存程序存储器可读写
在整个VDD正常运行期间可擦除
范围。
从程序存储器中读取的数据在一个字节上执行
一次。执行写入或擦除,
程序存储器:
•32千字节和64千字节的内存(PIC18FX-
5K22和PIC18FX6K22设备)–64块
字节
•128 KB的内存(PIC18FX7K22设备)–
128字节块
写入或擦除程序内存将停止
指令获取,直到操作完成。这个
写入期间无法访问程序内存
或擦除,因此,代码无法执行。内线
编程定时器终止程序内存写入
然后擦掉。
写入程序内存的值不需要
有效的指示。执行程序存储器
形成无效指令的位置会导致
没有。
7.1表读取和表写入
为了读写程序存储器,有
允许处理器移动字节的两个操作
在程序存储空间和数据RAM之间:
•表格读取(TBLRD)
•表写入(TBLWT)
程序内存空间为16位宽,而
数据RAM空间为8位宽。表读数和
表在这两个内存之间写入移动数据
八位寄存器(TABLAT)中的空格。
表读取操作从程序中检索数据
内存并将其放入数据RAM空间。
图7-1显示了使用
程序存储器和数据存储器。
表写入操作从数据存储器存储数据
在程序存储器中存放寄存器的空间。这个
写入保持寄存器内容的过程
进入程序存储器的详细说明见第7.5节“写入
闪存程序存储器”。图7-2显示了
用程序存储器和数据写表的操作
猛撞。
表操作使用字节实体。一块桌子
包含数据而不是程序指令
需要对齐单词。因此,表块可以
以任意字节地址开始和结束。如果表写入正在
用于将可执行代码写入程序内存,
程序指令需要字对齐。

在这里插入图片描述
在这里插入图片描述
TBLPTR 21-bit Table Pointer (points to a Program Memory location).
TABLAT 8-bit Table Latch.
在这里插入图片描述
在这里插入图片描述
TBLWT
把TABLAT中的字节数据写到TBLPTR指向的holding register
TBLWT

多个控制寄存器与
TBLRD和TBLWT说明。其中包括:
•EECON1寄存器
•EECON2寄存器
•表格登记簿
TBLPTR寄存器
7.2.1 EECON1和EECON2寄存器
EECON1寄存器(寄存器7-1)是控件
内存访问寄存器。EECON2寄存器,
不是物理寄存器,专门用于
内存写入和擦除序列。阅读
EECON2将读取所有“0”。
EEPGD控制位确定访问是否是
程序或数据EEPROM存储器存取。什么时候?
显然,任何后续操作都会对数据进行操作
EEPROM存储器。设置后,任何后续
操作在程序存储器上操作。
CFGS控制位决定是否访问
编程/校准寄存器
存储器/数据EEPROM存储器。设置时,
后续操作按配置操作
寄存器与EEPGD无关(见第28.0节
“CPU的特殊功能”)。清除后,记忆
选择访问由EEPGD决定。
空闲位设置后,允许程序内存
擦除操作。设置“自由”时,擦除
在下一个WR命令下启动操作。什么时候?
FREE已清除,只启用写操作。
WREN位在设置时允许写入操作。打开
上电,鹪鹩的牙齿是干净的。螺丝刀已设置好
在硬件中,当WR位被设置和清除时
内部编程计时器过期,写入
操作完成。
WR控制位启动写入操作。钻头
无法清除,只能在软件中设置。它被清除了
写入操作完成时的硬件。
表指针(1)表锁存器(8位)
TBLPTRH TBLPTRL表格
程序存储器
(TBLPTR)
TBLPTRU公司
说明:TBLWT*
注1:表指针实际上指向64个保持寄存器中的一个;其地址由
TBLPTRL<5:0>。讨论了程序在内存中写入数据的物理过程
写入“5.7闪存”部分。
保持寄存器
程序存储器
注:正常运行时,WRERR为
读作“1”。这表明
操作被提前终止
重置或写入操作被
尝试不当。
注:EEIF中断标志位(PIR6<4>)为
写入完成时设置。一定是的
软件已清除。

在这里插入图片描述
在这里插入图片描述
7.2.2 TABLAT–表锁存寄存器
表锁存器(TABLAT)是一个8位寄存器
映射到SFR空间。表锁存寄存器
用于在之间的数据传输期间保存8位数据
程序存储器和数据存储器。
7.2.3 TBLPTR–表格指针
登记
表指针(TBLPTR)寄存器寻址一个字节
在程序内存中。TBLPTR包括
三个SFR寄存器:表指针高位字节,表
指针高字节和表指针低字节
(TBLPTRU:TBLPTRH:TBLPTRL)。这三个寄存器连接起来形成一个22位宽的指针。低阶
21位允许设备寻址高达2 MB的
程序内存空间。第22位允许访问
设备ID、用户ID和配置位。
表指针寄存器TBLPTR由
TBLRD和TBLWT说明。这些说明可以
根据
表操作。这些操作如所示
表7-1,仅影响低阶21位。
7.2.4表指针边界
TBLPTR用于
闪存程序存储器。
当执行TBLRD时,TBLPTR的所有22位
确定从程序存储器中读取哪个字节
在桌子上。
当执行六个表的TBLSA时
指针寄存器(TBLPTR<5:0>)确定
写入64个程序存储器保持寄存器。
开始定时写入程序存储器时(通过
WR位),TBLPTR的16 msb
(TBLPTR<21:6>)确定哪个程序内存
写入64字节的块。有关详细信息,请参见
写入“5.7闪存”部分。
当执行程序存储器擦除时
表指针寄存器的16个MSB(TBLPTR<21:6>)
指向将被删除的64字节块。至少
有效位(TBLPTR<5:0>)被忽略。
图7-3描述了
基于Flash程序存储器操作的TBLPTR。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值