《嵌入式 - 工具》J-link读写MCU内部Flash

这篇具有很好参考价值的文章主要介绍了《嵌入式 - 工具》J-link读写MCU内部Flash。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 J-Link简介

J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真,是学习开发ARM最好最实用的开发工具。
J-link 软件包的工具很多,有J-Flash,J-Link Commander,J-Link GDB Server,J-Link RTT Viewer,J-Mem等小工具组成,本文讲解J-link读写MCU内部Flash的相关软件。

2 J-link下载与安装

下载地址:https://www.segger.cn/downloads/jlink/

J-link从V750以后,Windows就有64位的软件。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

笔者这里下载的是JLink_Windows_x86_64_V754d.exe。下载后直接安装即可,这样就不再赘述了。

3 J-link读写MCU内部Flash

下面以STM32为例进行讲解,当然其他MCU也是试用的,只要有JTAG或SWD接口即可。

3.1 使用J-Flash下载程序

这里使用J-Flash将程序下载到MCU的内部Flash中。打开J-Flash,在安装完J-Link驱动就会有该软件。

首次使用就需要新建工程,如图所示。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

然后就选择相应的芯片。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

根据板子的芯片类型选择即可。

接下来将前面编译好的程序拖动进入J-Flash。J-Flash支持Hex、Bin等多种文件类型。笔者这里选择的是HEX文件类型。如果烧写的是Bin文件,还需要指定烧写的起始地址,因为Bin文件是不包含烧写地址的。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

然后点击‘Connect’。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

然后按F7或者点击‘Production Programming’即可下载。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

值得注意的是,要想生成HEX文件,需要在Keil配置输出文件。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

如果要想生成bin文件,需要在KEIL的User选项中,如下图添加这两项:
fromelf --bin --output=…/Output/STM32F103.bin …/Output/STM32F103.axf

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

编译完成后就会在Output目录下生成bin文件。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

烧写成功之后,此时程序还没有运行,点击Target->Manual Programming->Start Application,或者按快捷键F9,程序才开始运行,或者按复位键也可以让程序运行。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

如果想让每次下载完成后,程序自动运行,而不用复位。可以使用工程配置下的自动运行选项。打开Option->Project Setting,切换到Production选项,勾选Start Application,就可以让程序自动运行。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

当然啦,也可下载任意bin文件到MCU的内部Flash中。另外也可手动进行烧写。

3.2 使用J-Flash读取Flash

打开J-Flash,和上一节一样,选择相应的芯片,然后点击‘Connect’。

选择Target->Manual Programming ->Read Back,一共有三个选项,用于读取不同的Flash地址范围。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

 Selected sectors
被选择的扇区,可以在工程配置选项Project settings->Flash,查看哪些扇区被选择了。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

 Entire chip
整个Flash区域,一般选择这个选项,读取整个Flash区域的程序

 Range
手动指定读取的Flash地址范围。

笔者这里选择Range,指定读取Flash的内容。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

等待片刻即可读取完成。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

选项File-> Save data file或者是Save data file as,保存读取的数据。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

然后即可对比烧写的数据和读取数据是否一致,可以用作程序的校验。

3.3 使用J-Mem读取Flash

打开J-Mem,选择相应的芯片,然后点击‘OK’。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

如果连接正常就可以看到MCU的4G内存空间的内容。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

笔者这里使用的是STM32F1,是Cortex-M3的内核,Cortex-M3存储器映射结构如下图所示。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

Cortex-M3是32位的内核,因此其PC指针可以指向2^32=4G的地址空间,也就是0x0000_0000——0xFFFF_FFFF这一大块空间。根据图中描述,Cortex-M3内核将0x0000_0000——0xFFFF_FFFF这块4G大小的空间分成8大块:代码、SRAM、外设、外部RAM、外部设备、专用外设总线-内部、专用外设总线-外部、特定厂商等,因此使用该内核的设计者必须按照这个进行各自芯片的存储器结构设计。

Cortex-M3存储器结构和STM32存储器结构:

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

图中可以很清晰的看到,STM32的存储器结构和Cortex-M3的很相似,不同的是,STM32加入了很多实际的东西,如:Flash、SRAM等。可以看到Flash的地址是0x08000000。

这里就可以指定到Flash中,读取相应的内容。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

当然也可以保存相应地址的内容。

点击右键,选择“Save”。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

然后选择保存路径,设置其实地址。

《嵌入式 - 工具》J-link读写MCU内部Flash,《嵌入式》工具,单片机,嵌入式硬件

即可保存任意数据。文章来源地址https://www.toymoban.com/news/detail-604552.html

到了这里,关于《嵌入式 - 工具》J-link读写MCU内部Flash的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MCU嵌入式开发-硬件和开发语言选择

    主要考虑以下方面来决定是否需要RTOS支持: 需要实现高响应时的多任务处理能力 需要实现实时性能要求高的任务 需要完成多个复杂的并发任务 具备满足工控系统实时性要求的各项功能特性。通过它提供的硬件库、线程支持、中断支持等,可以完全控制微控制器的各个外设,实

    2024年02月12日
    浏览(62)
  • 【面试集锦 - 嵌入式软件工程师 - MCU篇】

    一般会问一下使用的芯片是什么,并对其做一些介绍。 嵌入式系统常用的微控制器单元(MCU)是一种集成了处理器核心、存储器、输入/输出接口和其他外设功能的芯片。它们被广泛应用于各种嵌入式系统,如家电、汽车、医疗设备、工业自动化等领域。以下是一些常见的嵌

    2024年02月06日
    浏览(80)
  • 嵌入式中的MCU、ARM、DSP、FPGA

    目录 “角色扮演” MCU ARM 特点 DSP 特点 FPGA 特点 应用           MCU(Microcontroller Unit)、ARM(Advanced RISC Machine)、DSP(Digital Signal Processor)和FPGA(Field-Programmable Gate Array)都是在嵌入式系统中常见的硬件组件,它们在嵌入式系统中扮演不同的角色。         1. 

    2024年02月08日
    浏览(59)
  • 嵌入式设备中的SoC与MCU的区别深度解析

    嵌入式设备中的SoC与MCU的区别深度解析 在嵌入式系统中,SoC(System-on-a-Chip)和MCU(Microcontroller Unit)是两种常见的处理器架构。尽管它们都用于嵌入式应用,但它们在设计、功能和性能方面存在一些显著的区别。本文将深入解析SoC和MCU之间的区别,并提供相应的源代码示例。

    2024年03月23日
    浏览(51)
  • 嵌入式系统基础 单片机MCU 树莓派 飞控 cpu

    一些有趣的软硬件设计 嵌入式与linux shell 单片机 电机控制 基于树莓派和Arduino制作的多种移动机器人 Altium Designer 导出pcb制作文件 cpu 浮点峰值 先来谈一下ARM的发展史:1978年12月5日,物理学家赫尔曼·豪泽(Hermann Hauser)和工程师Chris Curry,在英国剑桥创办了CPU公司(Cambridg

    2024年02月11日
    浏览(63)
  • 02 嵌入式/单片机/MCU众包接单平台有哪些?

    作者 将狼才鲸 创建日期 2023-02-11 CSDN文章地址:嵌入式/单片机/MCU众包接单平台有哪些? 一直想找到靠谱的嵌入式、单片机接单平台,网上搜了几次没搜到靠谱的,好多威客网上都是一些假的内容,今天又心血来潮搜遍了全网,意外还找到几个。 网址名称 网址 描述 图示 我

    2024年02月12日
    浏览(58)
  • 嵌入式系统中MCU与SoC通信方式的选择与应用

    在探讨嵌入式系统中微控制器单元(MCU)和系统级芯片(SoC)之间的通信方式之前,让我们先对嵌入式系统的核心概念进行深入了解。嵌入式系统是一种专用的计算系统,它被设计来执行或支持特定的功能或任务。这些系统通常嵌入在更大的设备中,如家电、汽车、工业机器

    2024年01月21日
    浏览(56)
  • 嵌入式MCU学习利器-03-在线做RT-Thread实验

    很多学生想要学习RT-Thread,但是苦于没有好的学习工具或者物理开发板而选择放弃。现在福利来了,同学们可以基于我们的仿真平台做嵌入式demo,通过调试功能深入学习RT-Thread的原理。本仿真平台基于STM32F103ZE芯片上线了一套RT-Thread课程,逐步深入讲解FreeRTOS。 本文章以第一节

    2024年02月08日
    浏览(38)
  • 痞子衡嵌入式:AppCodeHub - 一站网罗恩智浦MCU应用程序

    近日,恩智浦官方隆重上线了应用程序代码中心(Application Code Hub,简称 ACH),这是恩智浦 MCUXpresso 软件生态的一个重要组成部分。痞子衡之所以要如此激动地告诉大家这个好消息,是因为 ACH 并不是又一个恩智浦官方 github project site 那么简单而已,且听痞子衡细细道来:

    2024年02月13日
    浏览(38)
  • 使用J-Link Commander通过J-LINK以命令的形式来访问ARM通用MCU

         通常我们的操作是写好程序然后将程序下载到芯片里面,然后运行程序来进行相应的操作,其实还可以使用 J − L i n k C o m m a n d e r J-Linkquad Commander J − L ink C o mman d er 通过 J − L I N K J-LINK J − L I N K 以命令的形式来简单访问ARM通用MCU, J − L i n k C o m m a n d e r J-Lin

    2024年04月17日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包