TDA4 SCI服务端及客户端处理流程

SCI分为服务端和客户端,服务端运行在Mcu1_0上,通过中断接收其余核的sci消息,并在task中对收到的消息进行相应处理。其余核中运行客户端,其他核通过可向Mcu1_0请求PM和RM服务。
每个核都有自己对应的发送Thread、接收Thread,可以将其理解为messege ram,用来存放待发送及接收到的数据。

SCI服务端请求PM、RM:
Mcu1_0可直接调用相应服务接口完成PM及RM的请求,而不像其他核需要夸核的sci通讯。
SCI客户端向服务点请求流程:
1.调用Sciclient_serviceGetThreadIds获取tx、rx的Thread Id.
2.调用Sciclient_serviceGetPayloadSize获取tx、tx的PayloadSize。
3.通过gSciclient_writeInProgress变量,确认当前核是否正在进行sci操作,若是,则等待其完成。
4.调用Sciclient_verifyThread验证当前tx Thread的状态
5.调用Sciclient_readThreadCount获取当前rx Thread的counter,通过该counter可知有没有接收到respond消息。若counter变大,说明接收到了消息。
6.调用Sciclient_sendMessage向tx Thread写入数据,使能发送。
7.在满足条件:sci处于poll模式 && rx Thread状态ok && 请求的模式为安全模式时,通过while死等response消息。
8.判断接收到的消息是否为当前序列的消息,即与发送相匹配。
9.接收消息。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值