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烧录方式
  • 三, S32DS 新建工程构建JLINK debug接口

大家好,我是火山,一个从事嵌入式行业多年的菜鸟工程师,在此分享自己的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烧录的过程,特别丝滑!!!
烧录完成之后,断开连接,板子断电上电,板子上灯闪烁,说明该方法也成功运行了。

三, S32DS 新建工程构建JLINK debug接口

刚刚前面讲了,怎么在现有工程里面添加一个JLINK 的debug接口,其实想要工程带JLINK debug 接口,还有另外一种办法,可以在S32DS中新建一个工程,然后新建工程的时候,会给你选择debugger的类型,这个时候可以使用JLINK, 这样工程新建好之后,就会自动帮你新建好对应的debugger接口。
S32DS->File->New->S32DS Application Project
在这里插入图片描述

图 23

在这里插入图片描述

图 24

这里选择所使用的S32K344芯片,点击下一步。
在这里插入图片描述

图 25

Debugger这里就可以选择你想要的仿真器了,选择Segger debugger就是JLINK了。
在这里插入图片描述

图 26

SDK选择装好的S32K3_S32K344_M7 v4.0.0,完成之后,S32DS将会生成一个带有JLINK debugger的工程。
在这里插入图片描述

图 27

可以看到,我们新生成的工程已经带有了LP的驱动,也就是非autosar标准的SDK驱动。然后点击run->debug configuration 查看接口情况:
在这里插入图片描述

图 28

可以看到,这里工程帮忙生成了一共4个JLINK的接口,分别是Debug,release下的FLASH以及RAM接口,这个和对应的编译不同配置有关:
在这里插入图片描述

图 29

FLASH,RAM会对应不同的linkerfile来指定app的存储地址区域。
Debug和release会考虑不同的优化等级,调试信息配置不同。
有了工程和JLINK接口,就可以和上一章一样做代码下载和仿真了。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高考落幕,暑期西北行,甘肃美食等你来尝

高考结束,暑期来临,西北之旅成为许多人的热门选择。而来到甘肃,除了领略壮丽的自然风光和深厚的历史文化,甘肃特产和传统面点以其独特的风味和传统的制作工艺也为游客们带来了一场地道的甘肃美食体验。 平凉的美食&#x…

005-GeoGebra基础篇-GeoGebra的点

新手刚开始操作GeoGebra的时候一般都会恨之入骨,因为有些操作不进行学习确实有些难以凭自己发现。 目录 一、点的基本操作1. 通过工具界面添加点2. 关于点的选择(对象选择通用方法)(1)选择工具法(2&#xf…

Vue3使用jsbarcode生成条形码,以及循环生成条形码

前言:哈喽,大家好,我是前端菜鸟的自我修养!今天给大家分享Vue3使用jsbarcode生成条形码,以及循环生成条形码,介绍了JsBarcode插件的详细使用方法,并提供具体代码帮助大家深入理解,彻…

【Docker】集群容器监控和统计 CAdvisor+lnfluxDB+Granfana的基本用法

集群容器监控和统计组合:CAdvisorlnfluxDBGranfana介绍 CAdvisor:数据收集lnfluxDB:数据存储Granfana:数据展示 ‘三剑客’ 安装 通过使用compose容器编排,进行安装。特定目录下新建文件docker-compose.yml文件&am…

日志分析-windows系统日志分析

日志分析-windows系统日志分析 使用事件查看器分析Windows系统日志 cmd命令 eventvwr 筛选 清除日志、注销并重新登陆,查看日志情况 Windows7和Windowserver2008R2的主机日志保存在C:\Windows\System32\winevt\Logs文件夹下,Security.evtx即为W…

【51单片机】串口通信(发送与接收)

文章目录 前言串口通信简介串口通信的原理串口通信的作用串口编程的一些概念仿真图如何使用串口初始化串口串口模式波特率配置 发送与接收发送接收 示例代码 总结 前言 在嵌入式系统的开发中,串口通信是一种常见且重要的通信方式。它以其简单、稳定的特性在各种应用…

[小试牛刀-习题练]《计算机组成原理》之计算机系统概述【详解过程】

【计算机系统概述】 1、【冯诺伊曼结构】计算机中数据采用二进制编码表示,其主要原因是(D) I、二进制运算规则简单II、制造两个稳态的物理器件较为容易III、便于逻辑门电路实现算术运算 A.仅I、Ⅱ B.仅I、Ⅲ C.仅Ⅱ、Ⅲ D. I、Ⅱ、Ⅲ I…

基于 Spring Boot 的健康咨询系统

1 项目介绍 1.1 摘要 本项目旨在通过构建一个对用户更加友好的健康咨询平台,帮助用户方便、快捷地获取专业并且准确的健康咨询服务,同时为医疗机构提供一个高效易用的可以提供信息管理的服务平台。 项目采用了Spring Boot框架作为主要的开发平台。本系…

论文阅读_基于嵌入的Facebook搜索

英文名称:Embedding-based Retrieval in Facebook Search 中文名称:基于嵌入式检索的Facebook搜索 时间:Wed, 29 Jul 2020 (v2) 地址:https://arxiv.org/abs/2006.11632 作者:Jui-Ting Huang, Ashish Sharma, Shuying …

Postman设置请求间自动保存返回参数,方便后续请求调用,减少复制粘贴

postman中常常出现:有两个请求,一个请求首先获取验证码或者token,再由得到的验证码或token编写body发送另一个请求。如何设置两个请求间自动关联相关数据呢? 通过环境存储全局变量 现在有两个请求如下图,生成验证码是…

如何将Hive表的分区字段插入PG表对应的时间戳字段?

文章目录 1、背景描述2、场景分析 1、背景描述 数据仓库的建设通常是为业务和决策服务的。在数仓开发的应用层阶段,BI可以直接从主题层/业务层取数,而前端需要根据具体的作图需求通过后端查询数据库 作图的指标需要根据主题层/业务层做查询计算&#xf…

保姆教程教你如何使用数据集运行ORB-SLAM3

链接: 自学SLAM(2)—保姆教程教你如何使用自己的视频运行ORB-SLAM2 这篇文章是详细教怎么运行ORB-SLAM2的,那么下来我们就看看怎么运行ORB-SLAM3 理论上ORB-SLAM2的环境也是可以跑ORB-SLAM3的,因为我之前试过,编译成功…

最佳学习率和Batch Size缩放中的激增现象

前言 《Surge Phenomenon in Optimal Learning Rate and Batch Size Scaling》原文地址GitHub项目地址Some-Paper-CN。本项目是译者在学习长时间序列预测、CV、NLP和机器学习过程中精读的一些论文,并对其进行了中文翻译。还有部分最佳示例教程。如果有帮助到大家&a…

Linux源码-进程描述符

Linux操作系统引入了PCB(Process Control Block,进程控制块)结构。PCB是Linux操作系统识别进程的通道。 创建进程时,首先会创建PCB,根据PCB中的信息对进程实施有效管理。当进程终止后,Linux操作系统会释放对应的PCB资源。 PCB的数据结构是s…

2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第二部分】

上一篇文章:2022年第十三届蓝桥杯比赛Java B组 【全部真题答案解析-第一部分】_尘封的CPU的博客-CSDN博客最近回顾了Java B组的试题,深有感触:脑子长时间不用会锈住,很可怕。兄弟们,都给我从被窝里爬起来,赶…

解决error Error: certificate has expired问题

安装环境遇到下面问题: 产生原因:可能是开了服务器代理访问导致ssl安全证书失效 解决办法: 在终端输入以下命令: yarn config set "strict-ssl" false -g

3ds Max导出fbx贴图问题简单记录

1.前言 工作中发现3ds Max导出的fbx在其它软件(Autodesk viewer,blender,navisworks,FBXReview等)中丢失了部分贴图,但导出的fbx用3ds Max打开却正常显示。 fbx格式使用范围较广,很多常见的三…

Milvus【部署 01】向量数据库Milvus在Linux环境下的在线+离线安装

向量数据库Milvus在Linux环境下的在线离线安装 1.千问简介2.在线安装2.离线安装 1.千问简介 Milvus 是一款专为处理高维向量数据设计的开源云原生数据库,旨在满足海量向量数据的实时召回需求。它由 Zilliz 公司开发并维护,基于Apache许可证2.0版本发布。…

ASUS华硕A豆14笔记本电脑I421EAYB,I421EQYB_ADOL14EA工厂模式原厂Win11系统安装包下载

适用型号:ADOL14EA笔记本I421EAYB、I421EQYB 链接:https://pan.baidu.com/s/1krU8m_lbApyUfZQo5E4cCQ?pwd0ewl 提取码:0ewl 华硕原装WIN11系统工厂安装包,带有MyASUS WinRE RECOVERY恢复功能、自带所有驱动、出厂主题壁纸、系…

Linux上安装JDK,Java起飞,开启编程之旅

在Linux环境下搭建Java开发平台,是许多开发者入门Java世界的第一步。Java的跨平台特性使得在Linux上安装JDK尤为重要,它不仅能为Linux开发者提供更广阔的应用场景,也是探索Java强大功能的起点。 接下来,让我们一起在Linux中完成J…