【简介】
HSE core 的FW_IMAGE 如果需要更新可以通过HSE 的 HSE_ SRV_ ID_ FIRMWARE_ UPDATE 服务进行更新,对应的服务的描述如下。


从上述的服务描述上可以看出升级Firmware 需要指定升级的输入数据流的模式ONE-PASS 还是多包发送,本地使用ONE-PASS 需要指定FwFile 的地址信息,以下是对应的service 的数据结构,使用ONE-PASS mode 只需要发送FwFile 的地址信息即可。

编写如下代码通过 HSE_SRV_ID_FIRMWARE_UPDATE
hseSrvResponse_t hse_update_fw(uint32_t newHseFwaddress)
{
Hse_Ip_ReqType HseIp_Request;
hseSrvDescriptor_t* pHseSrvDesc = &hseSrvDescriptor;
hseSrvResponse_t hseSrvResponse = HSE_SRV_RSP_GENERAL_ERROR;
hseFirmwareUpdateSrv_t *pFwUpdateSrv;
pHseSrvDesc->srvId = HSE_SRV_ID_FIRMWARE_UPDATE;
pFwUpdateSrv = &(pHseSrvDesc->hseSrv.firmwareUpdateReq);
pFwUpdateSrv->pInFwFile = (HOST_ADDR)newHseFwaddress;
pFwUpdateSrv->accessMode = HSE_ACCESS_MODE_ONE_PASS;
HseIp_Request.eReqType = HSE_IP_REQTYPE_SYNC;
HseIp_Request.u32Timeout = 0xFFFFFFFFUL;
HseIp_Request.pCallbackParam = NULL;
HseIp_Request.pfCallback = NULL;
hseSrvResponse = Hse_Ip_ServiceRequest(0, 0 , &HseIp_Request, pHseSrvDesc);
return hseSrvResponse;
}本地使用2.55 的版本用该服务升级2.95 的版本来验证FW update 功能。

调用上述的代码来更新fw,更新完成后读取对应的fw 版本信息已经是我们升级后的2.95的版本了说明升级成功了。

以下是HSE FW 的版本规则说明。

SOC_TYPE_ID 定义说明如下:
This field Identifies the SoC family 5 – S32K344, S32K324 and S32K314 devices 12 – S32K311 and S32K310 devices 13 – S32K312, S32K342, S32K322 and S32K341 devices 14 – S32K358, S32K348, S32K338, S32K328 S32K336 andS32K356 devices 15 – S32K396, S32K376, S32K394 and S32K374 devices 16 – S32K388
我要赚赏金
