基于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按键是没法用的,会跑飞。