查看: 12702|回复: 1

[其他] mplab IDE 烧录HEX文件的原理

[复制链接]

该用户从未签到

5

主题

50

帖子

0

新手上路

Rank: 1

积分
8
最后登录
1970-1-1
发表于 2013-8-29 15:25:52 | 显示全部楼层 |阅读模式
 本不该在此发板块发表此主题的求助帖的,但感觉这边的大神在线回复速度较快,且都很热心,故冒昧试一试了!
问题描述:本人使用S12XEG128MAL做烧录板,希望自制以PIC18F25K80为目标板的ICSP高压烧录程序。
                   之前通过抓取PICKIT3对目标板烧录程序时的波形,分析其烧录过程大致可以分为四个部分:
                   1、读DEVICE ID,估计是 PICKIT3 用于做校验的;
                   2、擦除所有模块,包括:
                         a、ERASE BOOT BLOCK;
                         b、ERASE BLOCK 0;
                         c、ERASE BLOCK 1;
                         d、ERASE BLOCK 2;
                         e、ERASE BLOCK 3;
                          f、ERASE (801004);貌似微芯官方文件《Flash Microcontroller Programming Specification》,没有给出定义,姑且以关键数据代替;
                         g、ERASE CONFIGURATION FUSES;
                         h、LongTime Duration for ERASE;这也是官方文件没有给出的,自己写的一些话,其实就是一大段寄存器配置;
                         i、写0x927F,写0x6A7F;这好像是结束的意思,清除EECON1寄存器的各标志位。
                  3、写数据;以单次写入操作数据不得超过64bytes,可小于;(PICKIT3在此过程中会执行回读数据操作,估计也是用于内部校验)
                  4、对配置寄存器CONFIGnL和CONFIGnH写数据。问题的关键所在,PICKIT3会在数据写入完成以后,会再对配置寄存器CONFIGnL和CONFIGnH赋值(通过示波器观察得到所赋数据)。但是自制的ICSP烧录的只是将mplab IDE提供的HEX文件中的数据提取出来,然后进行烧录(已实现),其中应该是没有用于配置寄存器CONFIGnL和CONFIGnH等的值的,所以暂时做不了配置寄存器赋值操作。我不是很确定用mplab IDE 在线烧录HEX文件和用mplab IDE编译源文件后再烧录程序是否有区别。按照我现在的问题来推测的话,如果真的是PICKIT3写入配置寄存器CONFIGnL和CONFIGnH的值是由mplab IDE编译源程序后获得的,那mplab IDE编译器岂不是不能在线烧录HEX文件?还望各位大神不吝赐教,谢谢!跪求安哥帮忙!
我知道答案 目前已有1人回答
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 02:35 , Processed in 0.080611 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表