UDS之10服务

     笔者最近接触一个UDS的项目,现针对UDS中遇到的问题进行总结。

    10服务是UDS中的会话切换。由于之前做的BOOTLOADER比较多,现在算是重点放到了UDS诊断这一块。

     BOOT中 10服务分为 1.默认会话;2.刷新会话;3.扩展会话。

     APP  中只有 01.默认会话和扩展会话。当诊断仪发送 02 10 02时回复78等待。重启控制器进入BOOT模式。

   

uds_service_10 (uint8 msg_buf[], uint16 msg_dlc)
{
    uint8 subfunction;
	uint8 rsp_buf[8];

	subfunction = UDS_GET_SUB_FUNCTION (msg_buf[1]);

	rsp_buf[0] = USD_GET_POSITIVE_RSP(SID_10);
	rsp_buf[1] = subfunction;
	rsp_buf[2] = (uint8)(P2_SERVER >> 8);
	rsp_buf[3] = (uint8)(P2_SERVER & 0x00ff);
	rsp_buf[4] = (uint8)(P2X_SERVER >> 8);
	rsp_buf[5] = (uint8)(P2X_SERVER & 0x00ff);
	switch (subfunction)
	{
		case UDS_SESSION_STD:
			curr_sa = UDS_SA_NON;
			uds_session = (uds_session_t)subfunction;
			uds_positive_rsp (rsp_buf, 6);
			break;

        case UDS_SESSION_PROG:
            uds_negative_rsp (SID_10,0x78);
            EEPRM_CLEAR_PROGFlg();
            reset();
            break;

		case UDS_SESSION_EXT:
			curr_sa = UDS_SA_NON;
			uds_session = (uds_session_t)subfunction;
			uds_positive_rsp (rsp_buf, 6);
            uds_timer_start (UDS_TIMER_S3server);
			break;
		default:
			uds_negative_rsp (SID_10,0x12);
			break;
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_34309267

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值