S32K3 工具篇2:如何在S32DS中使用Segger JLINK下载

S32K3 工具篇2:如何在S32DS中使用Segger JLINK下载

  • 一, S32DS中JLINK下载
    • 1.1 Segger JLINK 驱动
    • 1.2 S32DS JLINK驱动路径配置
    • 1.3 S32DS JLINK debug configuration
    • 1.4 S32DS JLINK debug S32K3板子结果
  • 二, JLINK驱动实现S32K344代码下载
    • 2.1 S32DS生成可执行文件
    • 2.2 JLINK commander烧录方式
    • 2.3 JLINK JFlash烧录方式

大家好,我是火山,一个从事嵌入式行业多年的菜鸟工程师,在此分享自己的S32K3学习历程!
之前分享了S32K3 工具篇1:新手如何安装S32DS RTD4_0_0,有了板子,有了编译环境之后,就得考虑不同仿真器如何在编译环境下载的问题。工具篇1中提到使用了NXP官方的S32K3X4EVB,该板子是自带了opensda的仿真器,但是如果是其他不带仿真器,自定义的板子,就可以使用更多第三方的debugger,比如我们常用的:Segger JLINK, PE Multilink, Lauterbach等。所以笔者为了锻炼,准备把常用的几个debugger都做一下调试,本篇文章主要使用Segger JLINK plus去实现S32K344的下载或者仿真。
在这里插入图片描述

图 1

一, S32DS中JLINK下载

这里直接在S32DS中导入S32K344 RTD例程Siul2_Port_Ip_Example_S32K344:
File->New->S32DS Project from example
在这里插入图片描述

图 2

导入工程之后,不忘进入ConfigureTools->Pins,通过CT工具给现有工程生成下代码,否则工程是不完整的。然后在此工程上实现JLINK的下载和仿真。硬件连接如图1所示。以我之前的I.MX RT MCUXpresso IDE的经验认为,工程建立之后,直接点击debug,会自动识别PC所连接着的debugger,然后IDE帮忙直接生成对应的debug工具链,并且进入debug的方法去尝试S32K,工程Build之后,直接点击Debug,结果如下:
在这里插入图片描述

图 3

不出意外的情况下,出了意外,S32DS不够智能,没给咱直接识别debugger并且构建debug环境,好了,死心,老老实实回归原始态,一步一步自己配置。

1.1 Segger JLINK 驱动

下载Segger JLINK驱动,下载链接:
https://www.segger.com/downloads/jlink/
在这里插入图片描述

图 4

根据你电脑的位数选择对应的windows驱动,比如最新的是:JLink_Windows_V796p_x86_64.exe
我这边用的是之前下载的JLink_V796b,下载之后,直接安装,记住你的安装路径,后面要用,比如我安装的路径是:
C:\Program Files\SEGGER\JLink_V796b
安装完成之后,你会在你的安装路径看到如下内容:
在这里插入图片描述

图 5

上面黄色块是后面需要用的工具。

1.2 S32DS JLINK驱动路径配置

如果你在你当前的S32DS workspace下,之前没有用过JLINK,也就是说你的workspace是一个新的工作区,那么你就需要做一下IDE的JLINK驱动链接。
S32DS->Help->Install New Software
在这里插入图片描述

图 6

因为我发现,如果不改,默认总是给你指定到S32DS安装目录下面了:
在这里插入图片描述

图 7

所以,如果你用最新的Segger JLINK驱动,需要修改下这个指定驱动的位置路径。

1.3 S32DS JLINK debug configuration

上面配置好之后,就需要在S32DS的debug configuration中添加一个JINK的接口。
S32DS->RUN->Debug configuration
默认是这样的:
在这里插入图片描述

图 8

可以看到,没有JLINK的,只有一个工程默认自带的PEMicro的接口,所以,图8中,双击:GDB Segger J-Link Debugging, 直接生成一个,然后在生成好的界面中,在debugger这里,executeable选择你刚刚安装好的JLINK驱动路径的JLinkGDBSeverCL.exe:
C:\Program Files\SEGGER\JLink_V796b\ JLinkGDBServerCL.exe, 然后填写Device name 为: S32K344。
在这里插入图片描述

图 9

Device name,如果你不知道到底要填成什么样格式的,可以直接点击supported device names去Segger官网查找下,通常会有一个如下类似的表格:
在这里插入图片描述

图 10

1.4 S32DS JLINK debug S32K3板子结果

经过上面的配置之后,所有的项目都已经配置完成,下面可以直接使用JLINK debug并且下载代码到目标板子啦!S32DS中点击Debug按钮:
在这里插入图片描述

图 11

在这里插入图片描述

图 12

可以看出,已经进入了debugger的状态。点击全速运行,可以发现板上的灯正常闪烁了,说明到目前为止,S32DS已经成功用JLINK运行了。
在这里插入图片描述

图 13

二, JLINK驱动实现S32K344代码下载

有些客户有这样的需求,在IDE中做好了工程,生成可执行文件,然后再脱离IDE,直接通过下载工具去下载,那么本节给出,如何在S32DS中生成可执行文件,比如.bin, .hex, srec等,然后通过Segger JINK自带的工具,比如JLINK commander,Jflash去下载。

2.1 S32DS生成可执行文件

这点和我在MCUXPresso IDE中搞NXP I.MXRT芯片也不一样,mcuxpresso IDE只需要在.elf文件右击生成对应的可执行文件就可以了,但是S32DS不一样,需要多几步,下面给出具体步骤:

选中工程,右击,选择properties:
在这里插入图片描述

图 14

这里注意,一定要先apply一下,否则看不到要生成可执行的栏目。
在这里插入图片描述

图 15

这里可以选择生成hex文件,经过上面步骤之后,可以在工程的debug栏目下面找到对应的.hex可执行文件,然后就可以拿着这个.hex去用JLINK commander或者Jflash烧录了。

2.2 JLINK commander烧录方式

首先拷贝刚才生成好的Siul2_Port_Ip_Example_S32K344.hex 到Segger JLINK驱动安装目录: C:\Program Files\SEGGER\JLink_V796b
这种方式就是为了方便,省得指定烧录文件路径了。
在这里插入图片描述

图 16

然后,还得知道你这个hex文件,或者如果生成的是bin文件,你要烧录到S32K344的具体起始地址,这里可以查看S32K344的文档reference manual,memory map:
在这里插入图片描述

图 17

Pflash起始地址是0X400000, 当然从S32DS的ld文件也是能直接看出来,也是最直接的方法:
在这里插入图片描述

图 18

好了,万事具备,只欠东风。
双击6个6,哦不,双击:
C:\Program Files\SEGGER\JLink_V796b\ JLink.exe
在这里插入图片描述

图 19

可以看到,已经找到内核了,这个时候,就可以使用如下命令烧录:
Loadfile app.hex address
这里使用:
Loadfile Siul2_Port_Ip_Example_S32K344.hex 0x400000
在这里插入图片描述

图 20

可以看到,已经成功烧录了。
板子断电,上电,板上红灯闪烁,OK,说明JLINK commander方法成功运行。

2.3 JLINK JFlash烧录方式

这里注意哦,你使用的Segger JLINK 版本,只有高级别版本才能支持JFLASH,低版本的JLINK打开JFLASH会没有license,所以我这边使用的是JLINK Plus。
双击C:\Program Files\SEGGER\JLink_V796b\ JFlash.exe
在这里插入图片描述

图 21

点击新建一个工程,选择芯片为S32K344。
在这里插入图片描述

图 22

然后把之前生成好的app: Siul2_Port_Ip_Example_S32K344.hex拖进右边的代码区域,然后点击:
Connect->manual Programming->Erase Chip->Production programming
分别完成连接,全片擦擦,image烧录的过程,特别丝滑!!!
烧录完成之后,断开连接,板子断电上电,板子上灯闪烁,说明该方法也成功运行了。

到目前为止,已经实现了Segger JLINK配合S32K344的使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/753811.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Sublime】Sublime Text 中运行终端

Sublime Text 本身并不是一个终端仿真器,可以使用插件来在 Sublime Text 中集成终端功能。最常用的插件之一是“Terminal”。 使用“Terminal”插件在 Sublime Text 中启动终端 以下是安装和使用该插件的步骤: 安装 Package Control: 如果你…

【IJCAI2024】LeMeViT: Efficient Vision Transformer with Learnable Meta Tokens

【IJCAI2024】LeMeViT: Efficient Vision Transformer with Learnable Meta Tokens for Remote Sensing Image Interpretation 论文:https://arxiv.org/abs/2405.09789 代码:https://github.com/ViTAE-Transformer/LeMeViT 由于相邻像素和图像块之间的高…

Thermo Fisher Scientific赛默飞检测扫描架IPC电路板维修WAH402290

美国Thermo Fisher赛默飞世尔光谱仪IS10 IS5光谱仪主板维修iCAP6000/iCAP7000/iCAP7400;热电质朴分析仪电路板维修 公司仪器维修设备备有三相交流电源,变频电源,无油空压气源,标准化的维修平台、电子负载,耐压测试仪、老化台车和各…

云动态摘要 2024-06-28

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [新客专享]WeData 限时特惠 腾讯云 2024-06-21 数据分类分级管理,构建数据安全屏障 ,仅需9.9元! 云服务器ECS试用产品续用 阿里云 2024-04-14 云服务器…

量化投资 日周月报 2024-06-28

文章 深度学习在量化交易中的应用:在BigQuant量化交易平台的文章中,探讨了深度学习在量化交易中,特别是在因子挖掘方面的应用。文章提到,随着传统线性模型的潜力逐渐枯竭,非线性模型逐渐成为量化交易的主要探索方向。深度学习因其对非线性关系的拟合能力,在量化交易中展现…

华为面试题及答案——机器学习(二)

21. 如何评价分类模型的优劣? (1)模型性能指标 准确率(Accuracy): 定义:正确分类的样本数与总样本数之比。适用:当各类样本的数量相对均衡时。精确率(Precision): 定义:预测为正类的样本中实际为正类的比例。适用:当关注假阳性错误的成本较高时(例如垃圾邮件检测…

firewalld(3)zone配置

简介 前面文章我们已经介绍了firewalld的安装,配置文件介绍、简单的规则查询,本篇文章主要介绍zone的配置。前面我们介绍了firewalld默认的zone和不同zone的功能,下面我们就直接进入zone的具体配置使用。 配置zone的方式 图形配置工具 firewall-config: 这是一个图形…

SAP PP学习笔记24 - 生产订单(制造指图)的创建

上面两章讲了生产订单的元素。 SAP PP学习笔记22 - 生产订单(制造指图)的元素1-CSDN博客 SAP PP学习笔记23 - 生产订单(制造指图)的元素2 - 决济规则(结算规则)-CSDN博客 这一章讲生产订单的创建。比如 - 生产订单的流程&#…

Unity Animator 运行时修改某个动画状态的播放速度

1.添加动画参数,选择需要动态修改速度的动画状态 2.在属性面板种设置速度倍速参数

three.js场景三元素

three.js是一个基于WebGL的轻量级、易于使用的3D库。它极大地简化了WebGL的复杂细节,降低了学习成本,同时提高了性能。 three.js的三大核心元素: 场景(Scene) 场景是一个三维空间,是所有物品的容器。可以将…

Java集合实例

一、什么是Java集合实例: 指的是在 Java 程序中创建和使用的集合对象,这些对象用于存储和操作数据。Java 集合框架提供了一系列的接口和实现类,用于管理不同类型的数据集合。 二、Java集合的主要实例类型: 1. List(列…

uni-app uni-data-picker级联选择器无法使用和清除选中的值

出现问题&#xff1a; 使用点击右边的叉号按钮无法清除已经选择的uni-data-picker值 解决办法&#xff1a; 在uni-app uni-data-picker使用中&#xff0c;要添加v-model&#xff0c;v-model在官网的示例中没有体现&#xff0c;但若不加则无法清除。 <uni-data-picker v-m…

激光与相机融合标定汇总:提升融合算法的精度与可靠性(附github地址)

前言 随着科技的飞速发展&#xff0c;激光技术与相机技术的融合已成为推动智能化影像发展的重要力量。这种融合不仅提高了成像的精度和效率&#xff0c;还为相关行业带来了革命性的变革。在这篇博客中&#xff0c;我们将深入探讨激光与相机融合标定的原理及其在各个领域的应用…

关于bim数字孪生threejs中使用glb文件大小优化及加载慢的说明(笔记)

在用three.js开发的时候发现&#xff0c;稍微大一点的glb或者fbx文件加载的时候很慢很卡 一直不理解这个卡和慢取决于哪些条件&#xff0c;下面来详细说一下 1、关于模型 不是越大加载越卡顿&#xff0c;而是却决于三角面数量&#xff0c;当累计三角面数量达到3000万时会出现明…

C语言基础——操作符

ʕ • ᴥ • ʔ づ♡ど &#x1f389; 欢迎点赞支持&#x1f389; 个人主页&#xff1a;励志不掉头发的内向程序员&#xff1b; 专栏主页&#xff1a;C语言基础&#xff1b; 文章目录 前言 一、操作符的分类 二、二进制和进制转换 2.1 二进制转十进制 2.1.1 十…

FreeRTOS信号量和互斥量

信息量 简介 信号量是一种解决同步问题的机制&#xff0c;可以实现对共享资源的有序访问。 前面介绍的队列(queue)可以用于传输数据&#xff1a;在任务之间、任务和中断之间。 消息队列用于传输多个数据&#xff0c;但是有时候我们只需要传递状态&#xff0c;这个状态值需要用…

并发编程基础概念

相关概念 并行 并行是指同一个时刻&#xff0c;多个任务同时进行。只有在多核CPU下才会发生。 并发 并发是指单个CPU在不同任务之间来换切换工作&#xff0c;但是同一时刻只有一个任务在工作。由于CPU的切换速度很快&#xff0c;给人的感受是多个任务在一起运行。 串行 串行…

破解对LabVIEW的偏见

LabVIEW被广泛应用于科学研究、工程测试和自动化控制领域&#xff0c;具有专业性和高效的开发能力。尽管有人对其存在偏见&#xff0c;认为不如C语言&#xff0c;但LabVIEW的图形化编程、强大集成能力、丰富社区支持和专业功能&#xff0c;使其在许多实际应用中表现出色。通过多…

山东大学-科技文献阅读与翻译(期末复习)(选择题+翻译)

目录 选择题 Chapter1 1.which of the following is not categorized as scientific literature 2.Which of the followings is defined as tertiary(三级文献) literature? 3.Which type of the following international conferences is listed as Number one conference…

jeecg启动微服务并注册到本地nacos

1、maven勾选环境和微服务模式&#xff0c;并刷新 2、pom文件修改nacos注册地址 3、本地启nacos gateway 和自己想要的cloud下面的模块pos sys 4、打断点测试接口&#xff0c;访问gateway端口和想要测试的地址