当前位置: 首页 > news >正文

基于PE环境搭建及调试S32K312

0、简介

本文基于S32K312 介绍PE的使用流程,主要是记录开发流程:

MCU:NXP S32k312-100pin

编辑器:S32 Design Studio for S32 Platform 3.5

仿真器:PE USB Multilink Universal REV-E

PE和jlink不一样,使用debug的时候就会擦flash,所以调试app的时候要对boot做保护

可以同时存在,需要烧boot的时候勾掉保护,单烧app的时候勾选保护

1、硬件连接

在这里插入图片描述

在这里插入图片描述

在用户使用手册中可以查找到支持ARM的端口,在本项目选择port B,手册中出现了这么一句话:
The USB Multilink Universal and Universal FX interfaces will work with targets whose processor power supply is in the range of1.8V to 5V.
所以我们需要把multilink的TVCC接到S32K312开发板的3.3V,如不接就会导致下载失败。(对比Jlink时是可以不接的)。

2、上电流程

在这里插入图片描述

连接USB后,蓝灯亮起。如匹配供电接线正确,multilink的右上角的小黄灯会亮起。
在这里插入图片描述

3、Erase Program Read

PE相关的上位机需要购买。在本项目中我无需单独烧录/擦除。
https://www.pemicro.com/products/product_viewDetails.cfm?product_id=15320181&productTab=5053
在这里插入图片描述

4、Debug配置

项目已经安装AB_Swap的HSE。因为HSE的内存段受到保护,故此时JLINK/JFLASH已无法通过常规手段擦写FLASH。回顾HSE保护的区域:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

因为我没有手段ERASE Flash。故需要将Boot和App一同写入芯片。PE在Program之前会依照所选策略,Erase未被保护的内存。
这里我将ABOOT和AAPP同时烧写进S32K312。
同理:ABOOT、ABOOT和AAPP同时烧写进S32K312。(图中所示)
同理:ABOOT、ABOOT和AAPP、BAPP同时烧写进S32K312。(图中所示)
在这里插入图片描述
选择需要下载的芯片,通过硬件易知我使用的SWD接口。
在这里插入图片描述
在这里插入图片描述
下载策略根据是否安装hse做区分:
S32K3 内嵌 HSE_B 硬件安全加密模块,安全加密等级支持到 ISO21434。芯片出厂默认是没有装 HSE FW 的,FW 的安装需要客户自己完成。
NXP 提供两种类型的HSE_FW,分别是 HSE_FULL_MEM 和 HSE_AB_SWAP。前者是不支持 OTA 的,而后者是支持硬件 OTA 的。在这里插入图片描述

安装了HSE_FW后,Secure Flash对应的区域会被Lock住,编程器是不能对这些区域进行檫除,编程操作的。S32DS PE提供了三种编程算法,分别针对没有安装HSE_FW,安装了HSE_FULL_MEM FW,及装了HSE_AB_SWP FW的情况。

调试软件时,要跟具FW的安装情况选择对应的.arp.没有安装HSE FW要选择hse_disabled.arp,安装了full_mem的固件要选择hse_enabled.arp,安装了ab_swap的固件要选择ab_swap.arp.编程算法选择不正确,会报flash檫除失败错误。

同时我对AB分区的BOOT做了保护。对EEPROM区做了保护。

需要注意的是:易知,保护的区域如果和烧写文件的地址重叠会有问题,这里我没有尝试,建议烧写过boot之后再勾选保护。

5、Debug

在这里插入图片描述

6、注意点

1、PE的DEBUG是会Erase PFlash和DFlash的。这是和JLink不同的地方。故需要保护Boot。

2、勾选保护的区域如果和烧写文件的地址重叠会有问题,这里我没有尝试。
建议烧写过boot之后每次调试APP勾选保护。图省事就不勾选保护,每次烧写的时候都重新烧boot。

3、pe是从app起始地址开始仿真,但是0x00400000处如果没有boot,reset按键是没法用的,会跑飞。

http://www.xdnf.cn/news/379783.html

相关文章:

  • Lua—元表(Metatable)
  • 怎样使自己处于高能量状态
  • Discriminative and domain invariant subspace alignment for visual tasks
  • JVM——即时编译器的中间表达形式
  • MYSQL 索引与数据结构笔记
  • 【大数据技术-HBase-关于Hmaster、RegionServer、Region等组件功能和读写流程总结】
  • 【Linux】线程POSIX信号量
  • JDBC工具类
  • c#建筑行业财务流水账系统软件可上传记账凭证财务管理系统签核功能
  • 代码随想录算法训练营第三十七天
  • win10-启动django项目时报错
  • ndk.symlinkdir - 在 Android Studio 3.5 及更高版本中,创建指向 NDK 的符号链接
  • 关于数据库查询速度优化
  • vue3使用tailwindcss报错问题
  • C.循环函数基础
  • 远程调试---在电脑上devtools调试运行在手机上的应用
  • PyTorch API 3 - mps、xpu、backends、导出
  • 6.秒杀优化
  • 更换内存条会影响电脑的IP地址吗?——全面解析
  • A2A大模型协议及Java示例
  • 以影像为笔,劳润智在世界舞台上书写艺术之路
  • 不同句子切割(文本分段 / chunking)工具或库 各自采用的策略和目标对比和分析
  • OLE(对象链接与嵌入)剪贴板内容插入到 CAD 图形中——CAD c# 二次开发
  • 非阻塞式IO-Java NIO
  • TCP Socket编程
  • 分布式锁原理
  • Linux 信号终篇(总结)
  • OpenAI API JSON 格式指南与json_repair错误修复
  • 深入理解卷积神经网络的输入层:数据的起点与预处理核心
  • [Pandas]数据处理