-
- 刷新主函数uds_refresh_main()
当执行完初始化后,DSP进入刷新主函数。
主函数是一个无穷循环函数,完成诊断消息的接收、处理,诊断状态的刷新等。
|
函数原型 |
void bblk_normal_isr(void) |
|
函数作用 |
完成看门狗服务,清楚定时器中断标志位 |
|
函数参数 |
无 |
|
函数说明 |
中断服务程序 |

由网络层函数nt_pre_process() 实现从CAN模块邮箱接收CAN消息(存储到uds_rx_data[8]中)并解析(nt_received_frame())。当接收到有效的诊断消息时(有效指CAN ID正确并符合15765-2规范),nt_main()将剥离出诊断消息数据存储在缓冲区(nt_buffer[256+1](TBD))中,并调用诊断应用层诊断命令处理接口(uds_request_handler())处理。细节见4.9.2。
uds_cmd_process()将查找服务支持数组(uds_cmd[]),根据安全状态调用相应的处理函数。如果有响应消息,则将处理结果拷贝到缓冲区(nt_buffer[256+1](TBD))中。
由于CAN总线可能出现错误,在nt_pre_process()中将检查CAN模块
nt_prepocess()还完成将调用网络层函数nt_post_pocess(),完成网络层状态切换及将缓冲区(nt_buffer[256+1](TBD))中的数据发送出去。

诊断工具通过一系列的诊断命令组合实现程序的刷新。

文章详细阐述了DSP在执行初始化后进入的刷新主函数uds_refresh_main()的工作流程,包括接收和处理诊断消息,诊断状态的刷新。在CAN总线通信中,nt_pre_process()函数解析CAN消息并检查错误,nt_main()处理有效诊断消息并调用uds_request_handler()进行命令处理。uds_cmd_process()根据服务支持数组执行相应操作,若需响应则将结果存入缓冲区。整个过程涉及网络层状态切换及数据发送。
469

被折叠的 条评论
为什么被折叠?



