Jlink使用技巧之合并烧写文件

简介: Jlink使用技巧之合并烧写文件

前言

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

640.jpg


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


准备

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


创建工程

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


1.打开JFlash

640.jpg


2.创建新工程

点击 File->NewProject

640.jpg


3.选择芯片的型号

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

640.jpg


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

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

640.jpg


640.jpg


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

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

640.jpg


640.jpg


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

640.png


6.保存合并后的文件

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

640.jpg


640.jpg


注意

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

640.jpg

目录
相关文章
|
6月前
|
Linux 编译器 Windows
【Linux】新唐NUC977系统编译及烧写流程
【Linux】新唐NUC977系统编译及烧写流程
102 0
|
Go 内存技术
【Jlink】JLink Commander调试方法
上面的信息连可以看到当前运行的PC指针,再可以结合生成的map文件,就可以看到当前运行的函数。例如上面运行的PC指针为0x01000E72,下图是固件的map文件,查看map文件对应地址的函数为SEGGER_RTT_Write。用来读取内存的数据,参数为内存的地址和读取的长度。也可以直接用mem命令按照8位来读取。常用的命令有halt,go,mem(mem8,mem16, mem32), write(write1, write2, write4 )用来写入对应的内存地址,参数为内存的地址和写入的数据。
1782 45
【Jlink】JLink Commander调试方法
MDK5使用Jlink下载显示 no cortex m sw divice 解决办法
MDK5使用Jlink下载显示 no cortex m sw divice 解决办法
386 0
STM32最小系统使用FlyMcu烧写步骤
使用的是FlyMcu操作软件,首先搜索串口,点击搜索到之后选择,三个点选择即将要烧录的hex文件,找到STMISP,选择校验与编程后执行,将BOOT0置1(跳线帽变动),BOOT1不用管,下面选择DTR的低电平复位,RTS高电平进BootLoader,然后点击开始编程,如果软件无动作,可以按一下单片机上的按键,编程结束之后,将BOOT0置0。然后再按一下单片机中的按键及即可运行新程序了。
1123 0
STM32最小系统使用FlyMcu烧写步骤
|
芯片 内存技术
如何用SEGGER工具烧写程序,烧写地址详解
如何用SEGGER工具烧写程序,烧写地址详解
324 0
如何用SEGGER工具烧写程序,烧写地址详解
|
XML 开发工具 数据格式
Hi3516开发笔记(十一):通过HiTools使用网口将uboot、kernel、roofts烧写进eMMC
前面烧写一直时烧写进入flush,是按照分区烧写。定制的板子挂的是eMMC,前面的烧写步骤一致,但是在烧写目标则时烧写eMMC了。重新走一遍从无到有通过网口刷定制板卡的uboot、kernel、rootfs。
Hi3516开发笔记(十一):通过HiTools使用网口将uboot、kernel、roofts烧写进eMMC
|
IDE 开发工具
关于 通过jlink使用jtag(或swd)下载程序成功后,keil4 uversion停止运行 的解决方法
关于 通过jlink使用jtag(或swd)下载程序成功后,keil4 uversion停止运行 的解决方法
关于 通过jlink使用jtag(或swd)下载程序成功后,keil4 uversion停止运行 的解决方法
Jlink使用技巧之虚拟串口功能
前言 串口调试是单片机开发过程必不可少的一个功能,一般是使用一个UART-TTL的串口模块来实现串口的功能,其实下载调试使用的Jlink仿真器也可以实现串口调试的功能,本篇文章将介绍如何使用Jlink实现虚拟串口功能。
2465 0
|
芯片
Jlink使用技巧之单独下载HEX文件到单片机
前言 上一篇文章介绍了使用Keil下载单独的Hex文件到单片机内,本篇文章介绍,如何使用SEGGER官方软件JFlash来进行程序的下载,支持Hex和Bin文件。 JFlash的下载和安装 首先,安装JFlash软件,安装完成后,会默认安装JLink驱动程序,主要包含以下几个工具: JFlash,主要用于程序下载和读取。
1544 0