中易网

怎么编写pic 的bootloader

答案:1  悬赏:30  
解决时间 2021-02-21 20:49
怎么编写pic 的bootloader
最佳答案
在PIC系列单片机中,只有PIC18系列和PIC16F87X系列的单片机才有IAP功能,才能够使用BootLoader功能。下面只介绍PIC18的BootLoader,PIC16F87X的BootLoader与它类似。

1 BootLoader程序的工作原理

BootLoader是一段引导程序,在单片机上电/复位后在用户程序之前先运行。运行后判断当前是否需要进入升级状态。如果不需要升级,就直接运行 Flash中原有的程序;如果需要升级,首先擦除旧的程序,然后从串口接收用户程序,同时写入Flash中。接收数据时,需要进行校验,保证接收到的数据是正确的,避免将错误的程序写入到芯片中。

PIC18单片机只有一块Flash,可以在Flash的任何位置擦写(甚至可以将BootLoader自身擦除);而51单片机一般都是两块Flash,只能够从一块Flash上擦写另一块Flash,而不能擦写自身。

BootLoader程序原则上是可以放在整个程序空间中的任何位置的,但是为了简单方便、具有通用性和尽量减少对用户程序的影响,使用了从0x00开始的一段程序空间。

BootLoader程序可以多种方式获取数据,包括串口、并口、I2C、SPI、USB等;但是从实际使用来看,使用串口无疑是最方便的。

为了使得用户程序可以获得最大的程序空间,就需要BootLoader程序尽可能的简短。在这里,Microchip和HI-TECH都将 BootLoader程序设计为小于200H个字节(100H个字)。使用0x00~0x1FF这个区域还有一个重要原因是,这个地址的空间有特殊的写保护特性。

PIC18单片机虽然有多个中断源,但只支持两级中断,有两个中断向量,分别位于0x08和0x18;而 BootLoader程序占用了0x00~0x1FF的空间,这意味着需要重新定位中断向量,使新的中断向量指向用户的中断程序,这样才能保证正常运行用户程序的中断程序。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
星光贝贝中韩专业儿童摄影六枝云山加盟店地址
Burberry VS. Aquascutum,谁是真正的风衣之
C#.net中GUI
服侍的近义词是什么!
任意找一个数,比如1234,利用科学计算器对它及
广益集团福源阳光公寓在什么地方啊,我要过去
我们去看电影为什么不现在就出发呢翻译
我怎么这么废物在女孩面前说一句我喜欢你都说
国珍专营(红岩店)地址在哪,我要去那里办事
手机查归属地怎么查?
QQ空间相册里的视频删除了怎么找回
文化石铺在地上可以吗
城市恋歌服饰工厂店地址在哪,我要去那里办事
舞蹈团编什么口号?
我现在在学校呆的都快呆出抑郁症了怎么办啊
推荐资讯
求催泪动漫(最好是关于友情的,不是闺蜜矛盾
翡翠玉器行我想知道这个在什么地方
山东外国语职业学院-实验实训楼在哪里啊,我
现在大家都用什么论文检测系统啊?快毕业了,
请问,“朋友”,“知己”,“知音”三词有何
卡蒂颜水母活颜冰蚕丝面膜有什么作用
indesign 导出的文件还是有字体,我已经设置
惠民县经济开发区管理委员会在什么地方啊,我
六里坪驾校有驾校吗
华记饮食店我想知道这个在什么地方
lol一个5万的金币新号要多少钱?
求photoshop cc 2018破解补丁64位下载,附amt
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?