ISPLPC17XX系列ISP升级流程

说明:在ubuntu下通过“U转串”模块跟LPC17XX开发板的UART0连接上,通过ISP对LPC程序升级。

ISP命令及升级流程简要说明:参考相关文档

http://wenku.baidu.com/view/2f95ba17866fb84ae45c8de5.html

注:对于不同型号的LPC进入ISP的方式会不一样,例如在复位后,要拉低ISP引脚:11XX系列是PIO0_1,17XX系列是PIO2_10。此平台搭建的ISP模式是,用keil或其他Flash Magic软件把LPC的Flash擦除干净,上电复位后自动进入ISP。

ISP升级简要流程说明:参考网上相关文档

http://bbs.dzsc.com/space/viewspacepost.aspx?postid=91894

数据长度是本行发送的原始数据的长度,校验和是原始数据的和。要先将数据长度转化UU编码再发送,不要跟原始数据一起赚UU编码。

发送“W”,写RAM多少字节数据时,如果满一个扇区就写4096(然后固化Flash,继续发“W”写命令,继续发送数据),如果不满4096,就要写实际的数据长度。其实总的来说就是实际数据长度(“W”命令 + 数据长度)。

HEX文件了解:

http://baike.baidu.com/view/1229888.htm

HEX文件中,读出的数据是ASCII,要转化为十六进制发送,从HEX文件读出的数据是一个字节分为两位,“高、低,高、低”这样排列,要将两个数据合并为一个。

注意:往LPC里头写的是数据,以上文档说到的“00”。

还有一点注意的是,可能往LPC里面写数据成功了,但有Flash里面的成了运行不了的情况。其原因是HEX文件开头的“8个中断向量的校验和”(注意,LPC寄存器是32位的)。因为LPC在冷启动或复位的时候,BOOT代码会首先计算Flash扇区0中前8个中断向量的校验和,如果为0(大概是表示有程序的意思),就把执行控制权转移给用户代码,程序才会运行。而我们在用keil编译器编译出来的bin或hex文件(顺便提一下,keil的烧写是IAP),它的检验和位置没有填充值(第八个中断向量)。而我们使用K-Flash或者Flash Magic进行ISP烧写,又或者使用仿真器AK100、CK100编程时,由其编程算法校验并填充了第八个中断向量,然后ISP烧写。这引起了校验芯片内的代码和原始的bin或hex文件对比时,会提示4个字节的不一致,导致程序不能运行。

因此注意修改第八个中断向量的值,领前8个中断向量加起来和为0。

注意:以上参考资料说的比较笼统,具体过程自己可用Flash Magic软件往LPC里面烧写程序,然后跳出串口线什么的,看往里面写了些什么,及返回了些什么。

程序代码就不贴了,知道这个过程,仔细琢磨就很容易写出来。

LPC17XX系列ISP升级流程相关推荐

  1. STM32的ISP升级详解

    最近在做一个给STM32用ISP升级的项目,接触到STM32厂家烧录的Bootloader工作流程,具体官方文档稍后上传供大家参考,也可去ST官网下载文档.接下来针对文档中部分内容分析其工作过程: 一 ...

  2. 【音视频】浅学ISP数据处理流程

    目录 前言 **ISP和DSP的作用:** **图像处理流程:** 一.ISP概念 二.ISP 处理流程 1. Bayer pattern(拜耳滤色片) 2. BLC 黑电平补偿 (Black lev ...

  3. 关于开发人员数据库权限配置以及规范数据库升级流程

    在项目的新版本发布过程中,暴露出了一些数据库权限管理的问题和数据库升级流程规范的问题. 在这次发布完真实版后,居然发现有些脚本没有被执行,导致用户升级完就出现了些Bug,产生了很不好的影响. 为此项目 ...

  4. openresty开发系列31--openresty执行流程

    openresty开发系列31--openresty执行流程 我们先看个例子 location /test {     set $a 32;     echo $a;     set $a 56;   ...

  5. Android 8.0 (35)----Android8.0.0-r4的OTA升级流程

    Android8.0.0-r4的OTA升级流程 原网址:https://blog.csdn.net/dingfengnupt88/article/details/52875228  Android系统 ...

  6. 大白话5分钟带你走进人工智能-第二十四节决策树系列之分裂流程和Gini系数评估(3)...

     第二十四节决策树系列之分裂流程和Gini系数评估(3) 上一节中我们讲解了决策树的数学表达形式,本节的话我们讲解决策树的分裂流程以及分裂条件的评估.我们基于决策树的递归表达式上:           ...

  7. 相机ISP图像处理流程

    摄像机模组与图像处理: 事实上,ISP 除了上面提到的主要功能外,还需要支持 DENOISE,CONTRAST.SATURATION.SHARPNESS 等调整功能. 3A技术即自动对焦(AF).自动 ...

  8. View系列 (三) — Measure 流程详解

    Measure 流程详解 一.概述 二.单一 View 的测量流程 1. 流程图 2. 源码分析 三.ViewGroup 的测量流程 1. 流程图 2. 源码分析 一.概述 测量过程分为 View的m ...

  9. CISCO X8系列AP升级详解

    X8系列AP升级详解 准备工作 1.将AP连接到可获取IP地址的设备:交换机.家用路由或者猫等 2.用终端通过CONSOLE线连接AP,默认用户名为:cisco 密码为:Cisco 3.在AP获取到地 ...

最新文章

  1. python定时任务:apscheduler的使用(还有一个celery~)
  2. 使用MessageFormat格式化数字,日期
  3. MPEG4 (ISO/IEC 14496) 文档内容 简介
  4. 最小花费(最短路变形+中南大学复试机试)
  5. codeforces82 D. Two out of Three(记忆化搜索)
  6. [LeetCode-JAVA] Remove Linked List Elements
  7. mysql增删改查 工具类_JDBC工具类实现对数据库数据的增删改查
  8. 分布式消息中间件中的一些概念(接上一篇的《什么是分布式消息中间件?》)...
  9. chrome升级后无高级-断续访问
  10. S7-1500系统内使用ET200S 1SI模块实现Modbus 从站通信
  11. ubuntu20.04安装nvidia显卡驱动/CUDA/cuDNN
  12. Common IO 使用小结
  13. 强大易用!新一代爬虫利器 Playwright 的介绍
  14. AI 沦为炒作的工具?
  15. 了解RabbitMQ
  16. 喜讯科技——桥梁防船撞预警系统
  17. 未来计算机的发展趋势展望,未来计算机发展的5种趋势
  18. 启动RabbitMQ成功但是访问localhost:15672无法访问解决方案
  19. tp6中group函数不能用
  20. 剖析linux的内存管理与分配

热门文章

  1. Android---App Widget(官方文档翻译)
  2. Word 2010 中的 VBA 入门
  3. Win10+Ubunut20.04双系统 双固态 宏基 暗影骑士擎 安装教程(步骤回忆)
  4. 暗影骑士vn7安装linux,宏碁暗影骑士一代(VN7-591G)拆机清灰教程
  5. SAP Hybris培训-标准课程/企业内训
  6. Todesk 远程工具安装及配置方法(认真看)
  7. BUUCTF 从娃娃抓起
  8. ListView 仿QQ微信侧滑出现删除按钮
  9. Word2003入门动画教程25:添加或改变Word页面边框
  10. OpenSea上如何创建自己的NFT(Polygon)