-
- 刷新主函数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))中的数据发送出去。
诊断工具通过一系列的诊断命令组合实现程序的刷新。