【AUTOSAR】Bootloader说明(四)---- 升级主函数

    1. 刷新主函数uds_refresh_main()

当执行完初始化后,DSP进入刷新主函数。

主函数是一个无穷循环函数,完成诊断消息的接收、处理,诊断状态的刷新等。

函数原型

void bblk_normal_isr(void)

函数作用

完成看门狗服务,清楚定时器中断标志位

函数参数

函数说明

中断服务程序

25函数uds_refresh_main()说明

 

4  刷新主程序流程

      1. 抽取诊断消息及处理

由网络层函数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))中的数据发送出去。

 

5  网络层CAN消息处理流程

      1. 诊断状态刷新
      2. 程序刷新

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

 

6 程序刷新流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大道生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值