打印
[PIC®/AVR®/dsPIC®产品]

PIC26K22的bootloader HOSt程序测试完毕

[复制链接]
7971|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dorry3|  楼主 | 2020-12-16 15:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dorry3 于 2021-2-3 10:24 编辑

前段时间,急需程序现场更新,用MCC自动产生了bootloader ,一切顺利,下载程序成功。但是代码有些问题,比如,下载完毕重启时不能收到MCU的返回信息,经查为自动生成的代码部分的返回字节的长度不对,更改后一切正常了。更改代码如下:    case    RESET_DEVICE:
        frame.data[0] = COMMAND_SUCCESS;
        reset_pending = true;
        len = 10;// MCC初始形成= 9 错误!  应该返回 10个字节的长度
        break;


HOSt更新程序使用:unifiedhost-1.16.2,但是这个要求必须安装JRE对应版本,否则现场不能使用。而且文件较大(60MB)。于是尝试自己编写下载程序。查阅了多处.hex文件的结构,最后测试成功。
可以编程配置字,暂不支持编程eeprom。对于程序升级确实方便。感谢论坛里的各位前辈高手的帖子和资料!

2020-2-2测试了pic26k22和PIC16LF18325的支持。反复测试稳定可靠。可以应用到实际。根据 hex文件自动计算程序 offset和结束地址
原则上支持 64K位的 pic18F, 和8K位的 pic16 mid 的MCU
因为无其它 mcu,无法进一步测试。


使用特权

评论回复
评分
参与人数 1威望 +10 收起 理由
bellstudio + 10 赞一个!
来自 2楼
dorry3|  楼主 | 2020-12-17 11:39 | 只看该作者
本帖最后由 dorry3 于 2021-2-2 20:47 编辑



使用 MCC 3.95 以上版本自动生成的 bootloader
本版本为 V1.1.0 仅适合 PIC18F 26K22
可以替换 unifiedhost-1.16.2
可以进行配置字编程,未实现EEPROM 编程
bootloader 波特率自动识别
本版本仅为测试版请谨慎使用!

2020-2-2测试了pic26k22和PIC16LF18325的支持。反复测试稳定可靠。可以应用到实际。
原则上支持 64K位的 pic18F, 和8K位的 pic16 mid 的MCU
因为无其它 mcu,无法进一步测试。



2021-02-02_180209.png (16.56 KB )

2021-02-02_180209.png

使用特权

评论回复
板凳
lcczg| | 2020-12-16 16:30 | 只看该作者
本帖最后由 lcczg 于 2020-12-17 14:35 编辑

恩。

使用特权

评论回复
地板
cywdd| | 2020-12-20 11:50 | 只看该作者
dorry3 发表于 2020-12-17 11:39
使用 MCC 3.95 以上版本自动生成的 bootloader
本版本为 V1.1.0 仅适合 PIC18F 26K22
可以替换 unifiedhost ...

大神 大神你这个界面是用什么做的 ?能不能讲解一二

使用特权

评论回复
5
paotangsan| | 2021-1-12 10:18 | 只看该作者
非常感谢楼主的经验分享

使用特权

评论回复
6
renzheshengui| | 2021-1-12 10:20 | 只看该作者
很多问题都和版本有关系

使用特权

评论回复
7
wakayi| | 2021-1-12 10:22 | 只看该作者
适用于更高的版本吗

使用特权

评论回复
8
wowu| | 2021-1-12 10:25 | 只看该作者
非常不错 以后我也可以避免了

使用特权

评论回复
9
xiaoqizi| | 2021-1-12 10:27 | 只看该作者
只需要修改这么一小段就可以了 真不错

使用特权

评论回复
10
dorry3|  楼主 | 2021-1-31 11:18 | 只看该作者
今天测试了 PIC16LF18325 的bootloader 发现:
        frame.data[0] = COMMAND_SUCCESS;
         reset_pending = true;
         len = 10;// MCC初始形成= 9 错误!  应该返回 10个字节的长度
        break;
返回长度 依然不对。MCC已经升级到 V4 了。升级到 UnifiedHost-1.16.3了。正在测试集成PIC16的bootloader!

使用特权

评论回复
11
dorry3|  楼主 | 2021-2-2 20:38 | 只看该作者
本帖最后由 dorry3 于 2021-2-2 20:49 编辑

2020-2-2测试了pic26k22和PIC16LF18325的支持。反复测试稳定可靠。可以应用到实际。根据 hex文件自动计算程序 offset和结束地址
原则上支持 64K位的 pic18F, 和8K位的 pic16 mid 的MCU
因为无其它 mcu,无法进一步测试。

2021-02-02_180209.png (16.56 KB )

2021-02-02_180209.png

Bootloader_PIC16_PIC18.zip

892.68 KB

使用特权

评论回复
12
lcczg| | 2021-2-3 11:40 | 只看该作者
厉害了楼主

使用特权

评论回复
13
dorry3|  楼主 | 2021-5-28 12:32 | 只看该作者
最近发现,删减程序后,编译下载成功,但程序没有运行。仔细分析,发现 .hex文件最后一个字节不是FF,而是00或其它值,这样在bootloader 执行的reset时会在最后一个字节写入0x55,如果为 ff,就可以顺利写入,
其它值会写入失败,必须首先擦除此字节到0xFF,最终原因为,MCC产生的bootloader 的bug,更改后OK。改动如下,pic18f_bootload.c 增加了函数,EraseFlash
void Check_Device_Reset ()
{
    if (reset_pending == true)
    {
    // This section writes last location in
    // memory to the application valid value.
    // indicating a valid application is loaded.
        EraseFlash(END_FLASH - 1,END_FLASH);
        NOP();NOP();NOP();NOP();

使用特权

评论回复
14
LingTian| | 2021-8-13 16:33 | 只看该作者
下载后提示有病毒。请更新。

使用特权

评论回复
15
sadicy| | 2021-8-13 17:25 | 只看该作者
bootloader还可以自动生成么?
现在真是越来越厉害了

使用特权

评论回复
16
zhangyaoming| | 2021-9-15 23:21 | 只看该作者
dorry3 发表于 2021-2-2 20:38
2020-2-2测试了pic26k22和PIC16LF18325的支持。反复测试稳定可靠。可以应用到实际。根据 hex文件自动计算程 ...

楼主,你好,能分享一下bootloader的代码吗?我做了一个bootloader下载到芯片里,又刷了主程序,但是始终不能运行,应该是bootloader问题,希望你能分享一下,谢谢

使用特权

评论回复
17
zhangyaoming| | 2021-9-15 23:29 | 只看该作者
本帖最后由 zhangyaoming 于 2021-9-15 23:31 编辑
dorry3 发表于 2021-2-2 20:38
2020-2-2测试了pic26k22和PIC16LF18325的支持。反复测试稳定可靠。可以应用到实际。根据 hex文件自动计算程 ...

希望楼主分享pic16的bootloader原码,不是host程序,我使用mcc生成后,修改了一些,但是还是有点问题,感谢楼主,wxsm_zym@163.com(407759221@qq.com发qq邮箱吧,前一个邮箱有一个下划线)

使用特权

评论回复
18
zhangyaoming| | 2021-9-26 15:54 | 只看该作者
dorry3 发表于 2020-12-17 11:39
使用 MCC 3.95 以上版本自动生成的 bootloader
本版本为 V1.1.0 仅适合 PIC18F 26K22
可以替换 unifiedho ...

这个结束地址始终是0X0000怎么回事?这个是要在哪里设置一下的

使用特权

评论回复
19
pixhw| | 2021-10-2 12:35 | 只看该作者
bootloader怎么样   

使用特权

评论回复
20
sdlls| | 2021-10-2 12:35 | 只看该作者
需要修改BootLoader吗  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

20

帖子

1

粉丝