了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序)。

  应客户要求, 将PIC16 bootloader之UART bootloader - GeekyGeek - 博客园 (cnblogs.com)这款bootloader移植到PIC18上了,其实我早就想移植到PIC18,但是一直忙,就一直拖。现在客户有要求,找不到理由继续拖延了。

bootloader 是三层架构,应用层和驱动层隔离了,移植比较简单也很顺利。

bootloader 上位机是zFlash, zFlash是用C#和Visual Studio开发地一款bootloader上位机。支持Intel-hex格式, 也支持Motolora S-Record格式。无论bootloader是在头部,还是底部,不需要任何改动,都能完美支持。界面简洁,使用简单。zFlash和bootloader 之间通信是用自定义的协议。

此bootloader使用的通信接口是UART, 是串口RS232通信。升级应用程序时,接线如图:

PC端运行bootloader 上位机zFlash, 用户板是PIC18的硬件板,预烧了bootloader。 PC与目标板之间通过USB-2-RS232适配器通信。我使用的是自己亲手打造的工业级适配器Z-Box R01A。 Z-Box R01A 一头是方口USB,USB线扣有保护作用的磁珠。另一头是DB9。使用最好的芯片,信号有隔离,外壳是铝合金。是专为工业场所设计的USB-2-RS232。

此PIC18 bootloader 是在flash的头部,应用程序是在flash底部。升级应用程序时,LCD1602 可以实时显示升级进度。

PIC18 bootloader之UART bootloader的更多相关文章

  1. PIC16 bootloader之UART bootloader

    了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). PIC16 bootl ...

  2. PIC18 bootloader之CAN bootloader

          了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). PIC18 ...

  3. S32Kxxx bootloader之CAN bootloader

    了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 最近完成了S32Kxx ...

  4. BLE CC2541 串口BootLoader 即 SBL BootLoader 资料 收集

    1.[CC254X_Bootloader]SBL(串口Bootloader)使用说明 2.CC2540协议栈高速串口通信解决(UART的DMA方式) 3.[BLE]CC2541之SBL 4.[BLE] ...

  5. 【Bootloader】探究bootloader,分析u-boot源码

    Preface 之前也发表过关于<Bootloader启动过程分析>的文章,但是内容表达得比较抽象,大多是文字叙述,所以这里从系统和代码的角度来深入分析bootloader的启动过程. 工 ...

  6. 了解BootLoader——基于MPC5744P Bootloader例程

    一.BootLoader的作用:BootLoader是固化在PFlash中的一个程序,其作用可以分为两部分:boot和load. (1)boot:MCU上电时首先会运行BootLoader程序(因为它 ...

  7. S32Kxxx bootloader之UDS bootloader

    了解更多关于bootloader 的C语言实现,请加我Q扣: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 两周前完成了基于UDS ...

  8. 自己用C语言写单片机PIC18 serial bootloader

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). HyperBootlo ...

  9. C语言PIC18 serial bootloader和C#语言bootloader PC端串口通信程序

    了解更多关于bootloader 的C语言实现,请加我QQ: 1273623966 (验证信息请填 bootloader),欢迎咨询或定制bootloader(在线升级程序). 新PIC18 Boot ...

随机推荐

  1. pycharm设置文件中显示模板内容

    pycharm中设置自己的文件模板  File>>Settings>>Editor>>File and Code Templates 选择文件类型或者输入文件类型 ...

  2. 云原生的弹性 AI 训练系列之三:借助弹性伸缩的 Jupyter Notebook,大幅提高 GPU 利用率

    Jupyter Notebooks 在 Kubernetes 上部署往往需要绑定一张 GPU,而大多数时候 GPU 并没有被使用,因此利用率低下.为了解决这一问题,我们开源了 elastic-jupy ...

  3. 【Python】 第三周:基本数据类型

    整数 python整数无限制 二进制:以0b或者0B开头,例如: 0b010,-0B101 八进制:以0o或者0O开头,例如:0o123,-0O456 浮点数 浮点数间运算存在不确定尾数,不是bug ...

  4. scala基础篇---- Try finally不加catch的使用情形

    普通的try-catch-finally Try{ } catch{//不加catch向上抛出异常 case  _=> } finally{//一般是资源关闭 } 普通的try-finally ...

  5. 最详细的Android SDK下载安装及配置教程-------全文均为引用

    <https://www.cnblogs.com/gufengchen/p/11038029.html>

  6. python字符串调用举例

    以如下打印为例: my name is tom and my age is 12 方式一:字符串格式化表达式 name = 'tom' age = 12 print("my name is ...

  7. 【Spring】Spring重要类层次图

  8. gridlayout在kv中的引用

    from kivy.app import App from kivy.uix.gridlayout import GridLayout class GridLayoutWidget(GridLayou ...

  9. 大厂面试题分享:如何让(a===1&&a===2&&a===3)的值为true?

    当我第一次看到这一题目的时候,我是比较震惊的,分析了下很不合我们编程的常理,并认为不大可能,变量a要在同一情况下要同时等于1,2和3这三个值,这是天方夜谭吧,不亚于哥德巴赫1+1=1的猜想吧,不过一切 ...

  10. Oracle 11g 常用sql记录

    --表备份 create table xxx_bak as select * from xxx; --表数据清除 truncate table xxx --锁表问题处理sql开始 select ses ...