前言

IAP(In-application-programming),即在应用中编程。当产品发布之后,可以通过网络方便的升级固件程序,而不需要拆机下载程序。IAP系统的固件一般由两部分组成,即BootLoader Code和Application Code,并存储在不同起始地址的空间里:

系统运行时,先运行Bootloader程序,检测状态,判断是执行应用程序还是升级固件。在实际开发过程中,这两段程序一般是单独编写,然后生成两个Bin文件,为了方便下载程序,可以把两个文件合并为一个文件,这样会节省很多时间。本文将介绍如何使用JFlash来合并两个Bin文件或者两个Hex文件。

准备

  • 要合并的文件1:bootloader.hex,起始地址:0x8000000
  • 要合并的文件2:app.hex,起始地址:0x20001000,如果是Bin文件要先确定起始地址。
  • JFlash软件

创建工程

和之前下载程序一样,首先要新建一个工程。

1.打开JFlash

2.创建新工程

点击 File->NewProject

3.选择芯片的型号

这里支持很多ARM Cortex内核的芯片,选择对应的芯片,我这里选择的是STM32F103RE系列。

4.打开要合并的程序文件1:bootloader.hex

点击File -> Open data file,打开bootloader程序。

5.打开要合并的程序文件2:app.hex

点击File -> Merge data file,打开app程序。

要保证,bootloader程序起始地址+bootloader代码大小不超过app程序的起始地址,如下图示意:

6.保存合并后的文件

点击File->Save data file as,将合并后的文件另存,可根据需要选择要保存的文件类型。

注意

如果要合并的文件为bin文件,自身不带地址信息,所以会让你指定地址,注意不要互相重叠地址。所以最好各种文件生成的时候就保存为带地址信息的格式,比如hex。关于Hex文件和Bin文件的区别,可以参考文章:BIN、HEX、AXF、ELF文件格式有什么区别

JLink软件的下载

JLink_Windows_V614b软件下载链接:JLink_Windows_V614b.exe


Jlink使用技巧系列文章:


欢迎大家关注我的个人博客

或微信扫码关注我的公众号

Jlink使用技巧之合并烧写文件的更多相关文章

  1. Jlink使用技巧之单独下载HEX文件到单片机

    前言 上一篇文章介绍了使用Keil下载单独的Hex文件到单片机内,本篇文章介绍,如何使用SEGGER官方软件JFlash来进行程序的下载,支持Hex和Bin文件. JFlash的下载和安装 首先,安装 ...

  2. BIN文件合并烧写

    可以实现将Bootloader和Application合并烧写 使用UBIN.exe工具或者J-Flash工具 UBIN工具 选择Bootloader源文件 添加Bootloader源文件 选择App ...

  3. IAR MSP430如何生成烧写文件

    IAR生成430烧写方法有2种, 第一种是:将工程的debug模式切换成release模式,看图片操作.    那个.d43文件就是仿真调试模式的文件. 这里的test.txt文件就是烧写文件了,不要 ...

  4. 嵌入式:使用dd命令制作烧写文件

    1. 使用dd命令制作烧写文件 环境: bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtd ...

  5. cygwin下烧写文件到sd卡中

    在cygwin下将firmware_sdcard.bin写入到sd卡中(cygwin需要以管理员身份启动) 1查看sd分区情况 cat /proc/partitions  (为了找到sd卡的标记) 2 ...

  6. Jlink使用技巧之烧写SPI Flash存储芯片

    前言 大多数玩单片机的人都知道Jlink可以烧写Hex文件,作为ARM仿真调试器,但是知道能烧写SPI Flash的人应该不多,本篇文章将介绍如何使用JLink来烧写或者读取SPI Flash存储器, ...

  7. Jlink使用技巧之读取STM32内部的程序

    前言 上一篇Jlink系列文章介绍了如何使用J-Flash来下载Hex或Bin文件到单片机,具体可参考Jlink使用技巧之单独下载HEX文件到单片机,本篇文章介绍,如何使用JFlash来读取单片机的程 ...

  8. Jlink使用技巧之J-Scope虚拟示波器功能

    J-Link简介 J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器.简单地说,是给一个JTAG协议转换盒.其连接到计算机用的是USB接口,而到目标板内部用的还是jtag协议. ...

  9. Jlink使用技巧之虚拟串口功能

    前言 串口调试是单片机开发过程必不可少的一个功能,一般是使用一个UART-TTL的串口模块来实现串口的功能,其实下载调试使用的Jlink仿真器也可以实现串口调试的功能,本篇文章将介绍如何使用Jlink ...

随机推荐

  1. 使用Visual Studio Team Services进行压力和性能测试(二)——压力测试执行

    使用Visual Studio Team Services进行压力和性能测试(二)--压力测试执行 1.点击Run test将会该压力测试进行排队,我们将看到等待测试代理屏幕.Visual Studi ...

  2. sql server系统表和视图相关的语句

    一.系统表 数据字典的详细信息请查SQL SERVER BOL,这里仅列出一部分. 1.1.sysservers 1.查看所有本地服务器及链接服务器 select * from master..sys ...

  3. [20171213]john破解oracle口令.txt

    [20171213]john破解oracle口令.txt --//跟别人讨论的oracle破解问题,我曾经提过不要使用6位字符以下的密码,其实不管那种系统低于6位口令非常容易破解.--//而且orac ...

  4. FUSE 用户空间文件系统 (Filesystem in Userspace)

    FUSE 仓库 Wiki FUSE 性能评测 关于Fuse文件系统: FUSE (Filesystem in Userspace) is an interface for userspace prog ...

  5. Django电商项目---完成注册页面和用户登录day1

    完成基本的创建项目.用户注册.登录.注销功能 创建Django项目,创建df_user的App 创建静态文件夹static(跟manage.py保持在同一级别下) 复制静态文件(css + image ...

  6. 【Android自动化】测试android手机唤醒性能测试

    # -*- coding:utf-8 -*- import time import os import common.common from common.getconfigs import GetC ...

  7. python之面向对象进阶

    接口类 抽象类 钻石继承 多态 鸭子类型 接口类 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface, ...

  8. pku1365 Prime Land (数论,合数分解模板)

    题意:给你一个个数对a, b 表示ab这样的每个数相乘的一个数n,求n-1的质数因子并且每个指数因子k所对应的次数 h. 先把合数分解模板乖乖放上: ; ans != ; ++i) { ) { num ...

  9. 使用python制作时间戳转换工具

    使用python制作时间戳转换工具 python 时间戳转日期 日期转时间戳 前言:作为一个程序员一般情况下,json和时间戳是常用的两个工具,我咨询过很多个朋友,他们一般都是通过在线工具对json进 ...

  10. MVC思想及SpringMVC设计理念

    1:什么是MVC        MVC(Model View Controller)是一种软件设计的框架模式,它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑 ...