电子控制器的引导加载方法、装置、电子控制器及汽车与流程

文档序号:11176818阅读:665来源:国知局
电子控制器的引导加载方法、装置、电子控制器及汽车与流程

本发明属于汽车领域,特别是涉及一种电子控制器的引导加载方法、装置、电子控制器及汽车。



背景技术:

bootloader是在汽车电子控制器的应用程序运行之前运行的一段引导加载程序,它能够实现系统启动和软件刷写的功能。软件刷写一方面用于程序下载和系统调试,另一方面用于软件更新和升级维护。

bootloader程序一般是通过仿真器在汽车电子控制器开盖的情况下写入电子控制器中,然后通过can总线刷写应用程序代码。bootloader程序刷写应用程序代码可以是在电子控制器开盖的状态下进行,也可以是在电子控制器密封的状态下进行。在实际开发过程中,电子控制器在写入bootloader程序后,在上车调试时,都要加盖密封。在调试过程中,或者在车辆维修过程中,如果需要更新软件,就可以通过can总线在电子控制器加盖密封的状态下对软件进行更新。

发明人发现虽然现有的bootloader程序能够实现系统启动和应用程序刷写的功能,但是在实际调试过程中会存在着汽车电子控制器中的bootloader程序的can总线的波特率与我们调试所需要的can总线的波特率不匹配的情况,例如:bootloader程序的can总线的波特率为500kbit/s,而我们调试所需要的can总线的波特率为250kbit/s,从而导致无法通过bootloader程序刷写应用程序代码,致使软件无法升级。这时我们只能通过将电子控制器从车辆 上取下来,开盖进行应用程序的刷写,这无疑增加了操作人员的工作量,造成了时间的浪费。



技术实现要素:

本发明实施例要解决的一个技术问题是:提供一种电子控制器的引导加载方法、装置、电子控制器及汽车,可以根据需要自动切换can总线的波特率。

根据本发明实施例的一个方面,提供一种电子控制器的引导加载方法,包括:

在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;

若在存储空间的指定地址中设有数据,根据应用程序设置的数据初始化can总线的波特率;

否则,根据bootloader程序中预先设置的数据初始化can总线的波特率。

根据本发明实施例的方法,所述初始化电子控制器的基本硬件之后,还包括:

读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;

若在存储空间中存储有应用程序,执行该应用程序;

否则,执行bootloader程序的主函数。

根据本发明实施例的方法,所述初始化电子控制器的基本硬件之后,还包括:

读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;

若在存储空间中存储有应用程序,设置应用程序的标志;

若在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,判断是否设置有应用程序的标志;若设置有应用程序的标志,执行 该应用程序;

否则,执行bootloader程序的主函数。

根据本发明实施例的方法,还包括:

若在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过can总线协议刷写应用程序;

若通过can总线协议刷写应用程序,设置can总线协议刷写的标志;

若不通过can总线协议刷写应用程序,及在执行所述设置can总线协议刷写的标志的操作之后,判断是否设置有can总线协议刷写的标志;

若设置有can总线协议刷写的标志,执行所述bootloader程序的主函数;

否则,执行所述判断是否设置有应用程序的标志的操作。

根据本发明实施例的方法,存储空间的指定地址中用于判断是否通过can总线协议刷写应用程序的信息具体在应用程序中设置。

根据本发明实施例的方法,在所述执行bootloader程序的主函数的操作之后,还包括:

判断是否设置有can总线协议刷写的标志;

若设置有can总线协议刷写的标志,通过can总线协议刷写应用程序;

否则,执行bootloader程序的主循环。

根据本发明实施例的方法,所述can总线协议为标定协议或诊断协议。

根据本发明实施例的方法,还包括:

若在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过诊断协议刷写应用程序;

若通过诊断协议刷写应用程序,设置诊断协议刷写的标志;

若不通过诊断协议刷写应用程序,及在执行所述设置诊断协议刷写的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过标定协议刷写 应用程序;

若通过标定协议刷写应用程序,设置标定协议刷写的标志;

若不通过标定协议刷写应用程序,及在执行所述设置标定协议刷写的标志的操作之后,判断是否设置有诊断协议刷写的标志或标定协议刷写的标志;

若设置有诊断协议刷写的标志或标定协议刷写的标志,执行所述bootloader程序的主函数;

否则,执行所述判断是否设置有应用程序的标志的操作。

根据本发明实施例的方法,存储空间的指定地址中用于判断是否通过诊断协议刷写应用程序的信息具体在应用程序中设置;

存储空间的指定地址中用于判断是否通过标定协议刷写应用程序的信息具体在应用程序中设置。

根据本发明实施例的方法,在所述执行bootloader程序的主函数的操作之后,还包括:

判断是否设置有标定协议刷写的标志;

若设置有标定协议刷写的标志,通过标定协议刷写应用程序;

否则,判断是否设置有诊断协议刷写的标志;

若设置有诊断协议刷写的标志,通过诊断协议刷写应用程序;

否则,执行bootloader程序的主循环。

根据本发明实施例的方法,所述执行bootloader程序的主函数具体为初始化相关的协议。

根据本发明实施例的另一个方面,提供一种电子控制器的引导加载装置,包括:

检查单元,用于在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;

初始化单元,用于根据检查单元的检查结果,若在存储空间的指定地址中设有数据,根据应用程序设置的数据初始化can总线的波特率;否则,根据 bootloader程序中预先设置的数据初始化can总线的波特率。

根据本发明实施例的装置,还包括:

判断单元,用于读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;

执行单元,用于根据判断单元的判断结果,若在存储空间中存储有应用程序,执行该应用程序;否则,执行bootloader程序的主函数。

根据本发明实施例的装置,还包括:

判断单元,用于读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;

设置单元,用于根据判断单元的判断结果,响应于在存储空间中存储有应用程序,设置应用程序的标志;

所述判断单元,还用于响应于在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,判断是否设置有应用程序的标志;

执行单元,用于具体根据判断单元的判断结果,若设置有应用程序的标志,执行该应用程序;否则,执行bootloader程序的主函数。

根据本发明实施例的装置,所述判断单元,还用于响应于存储空间中未存储有应用程序,或在执行所述设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过can总线协议刷写应用程序;

所述设置单元,还用于根据判断单元的判断结果,响应于通过can总线协议刷写应用程序,设置can总线协议刷写的标志;

所述判断单元,还用于响应于不通过can总线协议刷写应用程序,或在执行所述设置can总线协议刷写的标志的操作之后,判断是否设置有can总线协议刷写的标志;

所述执行单元,还用于根据判断单元的判断结果,响应于设置有can总线协议刷写的标志,执行所述bootloader程序的主函数;

所述判断单元,用于具体响应于未设置有can总线协议刷写的标志,判 断是否设置有应用程序的标志。

根据本发明实施例的装置,存储空间的指定地址中用于判断是否通过can总线协议刷写应用程序的信息具体在应用程序中设置。

根据本发明实施例的装置,所述判断单元,还用于在执行所述bootloader程序的主函数的操作之后,判断是否设置有can总线协议刷写的标志;

所述执行单元,还用于根据判断单元的判断结果,若设置有can总线协议刷写的标志,通过can总线协议刷写应用程序;否则,执行bootloader程序的主循环。

根据本发明实施例的装置,所述can总线协议为标定协议或诊断协议。

根据本发明实施例的装置,所述判断单元,还用于响应于存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,,读取存储空间的指定地址中的信息,判断是否通过诊断协议刷写应用程序;

所述设置单元,还用于根据判断单元的判断结果,响应于通过诊断协议刷写应用程序,设置诊断协议刷写的标志;

所述判断单元,还用于响应于不通过诊断协议刷写应用程序,及在执行所述设置诊断协议刷写的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过标定协议刷写应用程序;

所述设置单元,还用于根据判断单元的判断结果,响应于通过标定协议刷写应用程序,设置标定协议刷写的标志;

所述判断单元,还用于响应于不通过标定协议刷写应用程序,及在执行所述设置标定协议刷写的标志的操作之后,判断是否设置有诊断协议刷写的标志或标定协议刷写的标志;

所述执行单元,还用于根据判断单元的判断结果,响应于设置有诊断协议刷写的标志或标定协议刷写的标志,执行所述bootloader程序的主函数;

所述判断单元,用于具体响应于未设置有诊断协议刷写的标志或标定协议刷写的标志,判断是否设置有应用程序的标志。

根据本发明实施例的装置,存储空间的指定地址中用于判断是否通过诊断协议刷写应用程序的信息具体在应用程序中设置;

存储空间的指定地址中用于判断是否通过标定协议刷写应用程序的信息具体在应用程序中设置。

根据本发明实施例的装置,所述判断单元,还用于在所述执行bootloader程序的主函数的操作之后,判断是否设置有标定协议刷写的标志;

所述执行单元,还用于根据判断单元的判断结果,响应于设置有标定协议刷写的标志,通过标定协议刷写应用程序;

所述判断单元,还用于响应于未设置有标定协议刷写的标志,判断是否设置有诊断协议刷写的标志;

所述执行单元,还用于根据判断单元的判断结果,若设置有诊断协议刷写的标志,通过诊断协议刷写应用程序;否则,执行bootloader程序的主循环。

根据本发明实施例的装置,所述执行bootloader程序的主函数具体为初始化相关的协议。

根据本发明实施例的又一个方面,提供一种电子控制器,包括:上述的电子控制器的引导加载装置。

根据本发明实施例的再一个方面,提供一种汽车,包括上述的电子控制器。

基于本发明实施例提供的电子控制器的引导加载方法、装置、电子控制器及汽车,在系统上电后,通过读取应用程序设置的can总线的波特率,可以将can模块的波特率自动切换为与我们调试所需要的can总线的波特率相匹配,从而可以通过can总线刷写应用程序,实现软件的升级。这样,无论是在实车调试,还是在汽车维修时,当需要进行软件更新时,如果软件存在bug,就不需要将电子控制器从车辆上取下来,开盖进行应用程序的刷写,节约了人力和时间成本。

附图说明

构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:

图1是本发明电子控制器的引导加载方法的一个实施例的流程图。

图2是本发明电子控制器的引导加载方法的另一个实施例的流程图。

图3是本发明电子控制器的引导加载方法的又一个实施例的流程图。

图4是本发明电子控制器的引导加载方法的再一个实施例的流程图。

图5是本发明电子控制器的引导加载方法的再一个实施例的流程图。

图6是本发明电子控制器的引导加载方法的再一个实施例的流程图。

图7是本发明电子控制器的引导加载方法的再一个实施例的流程图。

图8是本发明电子控制器的引导加载装置的一个实施例的结构图。

图9是本发明电子控制器的引导加载装置的另一个实施例的结构图。

图10是本发明电子控制器的引导加载装置的又一个实施例的结构图。

图11是本发明bootloader程序的主循环的一个实施例的流程图。

图12是本发明应用程序的一个实施例的流程图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

请参阅图1所示,是本发明电子控制器的引导加载方法的一个实施例的流程图。该实施例的方法包括:

120,在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;若在存储空间的指定地址中设有数据,执行操作140;否则,执行操作160。

140,根据应用程序设置的数据初始化can总线的波特率。

160,根据bootloader程序中预先设置的数据初始化can总线的波特率。

其中,存储空间为flash空间,应用程序与bootloader程序是相互独立的,他们分别刷写存储空间中的不同区域,bootloader程序和应用程序均可以访问存储空间中应用程序设置有用于初始化can总线的波特率的数据的区域。应用程序设置的用于初始化can总线的波特率的数据可以是由应用程序或者设计者确定,因此可以实现can总线的波特率的自动匹配,不需要花费时间,并且一定能够匹配成功。

基于本发明实施例提供的电子控制器的引导加载方法,在系统上电后,通过读取应用程序设置的can总线的波特率,可以将can模块的波特率自动切换为与我们调试所需要的can总线的波特率相匹配,从而可以通过can总线刷写应用程序,实现软件的升级。这样,无论是在实车调试,还是在汽车维修时,当需要进行软件更新时,如果软件存在bug,就不需要将电子控制器从车辆上取下来,开盖进行应用程序的刷写,节约了人力和时间成本。

请参阅图2所示,是本发明电子控制器的引导加载方法的另一个实施例的流程图。该实施例的方法包括:

210,在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;若在存储空间的指定地址中设有数据,执行操作220;否则,执行操作230。

220,根据应用程序设置的数据初始化can总线的波特率。

230,根据bootloader程序中预先设置的数据初始化can总线的波特率。

240,读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;若在存储空间中存储有应用程序,执行操作250;否则,执行操作260。

250,执行该应用程序。

其中,执行该应用程序具体为运行该应用程序,执行该应用程序的相关功能,并且在刷写代码时,需要软件复位。

260,执行bootloader程序的主函数。

其中,执行bootloader程序的主函数具体为执行刷代码等相关功能。

请参阅图3所示,是本发明电子控制器的引导加载方法的又一个实施例的流程图。该实施例的方法包括:

310,在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;若在存储空间的指定地址中设有数据,执行操作320;否则,执行操作330。

320,根据应用程序设置的数据初始化can总线的波特率。

330,根据bootloader程序中预先设置的数据初始化can总线的波特率。

340,读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;若在存储空间中存储有应用程序,执行操作350;否则,执行操作360;

350,设置应用程序的标志;之后,执行操作360。

360,判断是否设置有应用程序的标志;若设置有应用程序的标志,执行操作370;否则,执行操作380。

370,执行该应用程序。

其中,执行该应用程序具体为运行该应用程序,执行该应用程序的相关功能,并且在刷写代码时,需要软件复位。

380,执行bootloader程序的主函数。

其中,执行bootloader程序的主函数具体为执行刷代码等相关功能。

请参阅图4所示,是本发明电子控制器的引导加载方法的再一个实施例的流程图。该实施例的方法包括:

410,在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;若在存储空间的指定地址中设有数据,执行操作420;否则,执行操作430。

420,根据应用程序设置的数据初始化can总线的波特率。

430,根据bootloader程序中预先设置的数据初始化can总线的波特率。

440,读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;若在存储空间中存储有应用程序,执行操作450;否则,执行操作490。

450,设置应用程序的标志;之后,执行操作490。

490,读取存储空间的指定地址中的信息,判断是否通过can总线协议刷写应用程序;若通过can总线协议刷写应用程序,执行操作4100;否则,执行操作4110。

其中,存储空间的指定地址中用于判断是否通过can总线协议刷写应用程序的信息具体在应用程序中设置,can总线协议为标定协议或诊断协议。

4100,设置can总线协议刷写的标志;之后,执行操作4110。

4110,判断是否设置有can总线协议刷写的标志;若设置有can总线协议刷写的标志,执行操作480;否则,执行操作460。

460,判断是否设置有应用程序的标志;若设置有应用程序的标志,执行操作470;否则,执行操作480。

470,执行该应用程序。

其中,执行操作470,说明应用程序正常启动。

480,执行bootloader程序的主函数。

基于本发明实施例提供的电子控制器的引导加载方法,在系统上电后,通过读取应用程序设置的can总线的波特率,可以将can模块的波特率自动切换为与我们调试所需要的can总线的波特率相匹配,从而可以通过can总线利用can总线协议刷写应用程序,实现软件的升级。这样,无论是在实车调试,还是在汽车维修时,当需要进行软件更新时,如果软件存在bug,就不需要将电子控制器从车辆上取下来,开盖进行应用程序的刷写,节约了人力和时间成本。

请参阅图5所示,是本发明电子控制器的引导加载方法的再一个实施例的流程图。该实施例的方法包括:

510,在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;若在存储空间的指定地址中设有数据,执行操作520;否则,执行操作530。

520,根据应用程序设置的数据初始化can总线的波特率。

530,根据bootloader程序中预先设置的数据初始化can总线的波特率。

540,读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;若在存储空间中存储有应用程序,执行操作550;否则,执行操作590。

550,设置应用程序的标志;之后,执行操作590。

590,读取存储空间的指定地址中的信息,判断是否通过can总线协议刷写应用程序;若通过can总线协议刷写应用程序,执行操作5100;否则,执行操作5110。

其中,存储空间的指定地址中用于判断是否通过can总线协议刷写应用程序的信息具体在应用程序中设置,can总线协议为标定协议或诊断协议。

5100,设置can总线协议刷写的标志;之后,执行操作5110。

5110,判断是否设置有can总线协议刷写的标志;若设置有can总线协议刷写的标志,执行操作580;否则,执行操作560。

560,判断是否设置有应用程序的标志;若设置有应用程序的标志,执行操作570;否则,执行操作580。

570,执行该应用程序。

580,执行bootloader程序的主函数。

其中,执行bootloader程序的主函数具体为初始化相关的协议。

5120,判断是否设置有can总线协议刷写的标志;若设置有can总线协议刷写的标志,执行操作5130;否则,执行操作5140。

5130,通过can总线协议刷写应用程序。

5140,执行bootloader程序的主循环。

其中,执行操作5140,说明既没有应用程序,也没有通过can总线协议刷写应用程序,此时仅执行bootloader程序循环调度的相关功能。

当然,在本发明的另一个实施例中,在操作580之后,可以不采用上述操作5120至5140的流程,而采用其它能够实现本发明目的的操作流程。

请参阅图6所示,是本发明电子控制器的引导加载方法的再一个实施例的流程图。该实施例的方法包括:

610,在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;若在存储空间的指定地址中设有数据,执行操作620;否则,执行操作630。

620,根据应用程序设置的数据初始化can总线的波特率。

630,根据bootloader程序中预先设置的数据初始化can总线的波特率。

640,读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;若在存储空间中存储有应用程序,执行操作650;否则。执行操作690。

650,设置应用程序的标志;之后,执行操作690。

690,读取存储空间的指定地址中的信息,判断是否通过诊断协议刷写应用程序;若通过诊断协议刷写应用程序,执行操作6100;否则,执行操作6110。

其中,存储空间的指定地址中用于判断是否通过诊断协议刷写应用程序的信息具体在应用程序中设置。

6100,设置诊断协议刷写的标志;之后,执行操作6110。

6110,读取存储空间的指定地址中的信息,判断是否通过标定协议刷写应用程序;若通过标定协议刷写应用程序,执行操作6120;否则,执行操作6130。

其中,存储空间的指定地址中用于判断是否通过标定协议刷写应用程序的信息具体在应用程序中设置。

6120,设置标定协议刷写的标志;之后,执行操作6130。

6130,判断是否设置有诊断协议刷写的标志或标定协议刷写的标志;若设置有诊断协议刷写的标志或标定协议刷写的标志,执行操作680;否则,执行操作660。

660,判断是否设置有应用程序的标志;若设置有应用程序的标志,执行操作670;否则,执行操作680。

670,执行该应用程序。

其中,执行操作670,说明应用程序正常启动。

680,执行bootloader程序的主函数。

基于本发明实施例提供的电子控制器的引导加载方法,在系统上电后,通过读取应用程序设置的can总线的波特率,可以将can模块的波特率自动切换为与我们调试所需要的can总线的波特率相匹配,从而可以通过can总线利用诊断协议和标定协议刷写应用程序,实现软件的升级。这样,无论是在实车调试,还是在汽车维修时,当需要进行软件更新时,如果软件存在bug,就不需要将电子控制器从车辆上取下来,开盖进行应用程序的刷写,节约了人力和时间成本。

请参阅图7所示,是本发明电子控制器的引导加载方法的再一个实施例的流程图。该实施例的方法包括:

710,在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存 储空间的指定地址中是否设置有数据;若在存储空间的指定地址中设有数据,执行操作720;否则,执行操作730。

720,根据应用程序设置的数据初始化can总线的波特率。

730,根据bootloader程序中预先设置的数据初始化can总线的波特率。

740,读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;若在存储空间中存储有应用程序,执行操作750;否则。执行操作790。

750,设置应用程序的标志;之后,执行操作790。

790,读取存储空间的指定地址中的信息,判断是否通过诊断协议刷写应用程序;若通过诊断协议刷写应用程序,执行操作7100;否则,执行操作7110。

其中,存储空间的指定地址中用于判断是否通过诊断协议刷写应用程序的信息具体在应用程序中设置。

7100,设置诊断协议刷写的标志;之后,执行操作7110。

7110,读取存储空间的指定地址中的信息,判断是否通过标定协议刷写应用程序;若通过标定协议刷写应用程序,执行操作7120;否则,执行操作7130。

其中,存储空间的指定地址中用于判断是否通过标定协议刷写应用程序的信息具体在应用程序中设置。

7120,设置标定协议刷写的标志;之后,执行操作7130。

7130,判断是否设置有诊断协议刷写的标志或标定协议刷写的标志;若设置有诊断协议刷写的标志或标定协议刷写的标志,执行操作780;否则,执行操作760。

760,判断是否设置有应用程序的标志;若设置有应用程序的标志,执行操作770;否则,执行操作780。

770,执行该应用程序。

780,执行bootloader程序的主函数。

其中,执行bootloader程序的主函数具体为初始化相关的协议。

7140,判断是否设置有标定协议刷写的标志;若设置有标定协议刷写的标志,执行操作7150;否则,执行操作7160。

7150,通过标定协议刷写应用程序。

其中,通过标定协议刷写应用程序,读取相关的标志,执行代码刷写相关的功能,在通过标定协议刷写应用程序之后,系统重新上电。

7160,判断是否设置有诊断协议刷写的标志;若设置有诊断协议刷写的标志,执行操作7170;否则,执行操作7180。

7170,通过诊断协议刷写应用程序。

其中,通过诊断协议刷写应用程序,执行代码刷写相关的功能,在通过诊断协议刷写应用程序之后,系统重新上电。

7180,执行bootloader程序的主循环。

其中,执行操作7180,说明既没有应用程序,也没有通过标定协议或诊断协议刷写应用程序,此时仅执行bootloader程序循环调度的相关功能。

当然,在本发明的另一个实施例中,在操作780之后,可以不采用上述操作7140至7180的流程,而采用其它能够实现本发明目的的操作流程。

在本发明的另一个实施例中,操作7140、7150与操作7160、7170的执行顺序互换。即在操作780,执行bootloader程序的主函数,初始化相关的协议之后,执行操作7160,判断是否设置有诊断协议刷写的标志;若设置有诊断协议刷写的标志,执行操作7170;否则,执行操作7140。操作7170为通过诊断协议刷写应用程序。操作7140为判断是否设置有标定协议刷写的标志;若设置有标定协议刷写的标志,执行操作7150;否则,执行操作7180。操作7150为通过标定协议刷写应用程序。操作7180为执行bootloader程序的主循环。

在本发明上述任一实施例的电子控制器的引导加载方法中,bootloader程序的主循环的流程请参阅图11所示,图11是本发明bootloader程序的主循环的一个实施例的流程图。该bootloader程序的主循环包括:

1110,执行bootloader程序中循环调度中的其它功能。

1120,运行diagbootloaderbackground函数。

其中,diagbootloaderbackground函数主要用于处理基于诊断协议的一些功能,处理通过can总线接收到的与诊断协议刷写代码相关的数据。

1130,根据接收到的数据,判断是否需要通过诊断协议刷写应用程序;若需要通过诊断协议刷写应用程序,执行操作1140;否则,执行操作1150。

1140,通过诊断协议刷写应用程序。

其中,在通过诊断协议刷写应用程之后,系统重新上电。

1150,运行ccpbootloaderbackground函数。

其中,ccpbootloaderbackground函数主要用于处理基于标定协议的一些功能,处理通过can总线接收到的与标定协议刷写代码相关的数据。

1160,根据接收到的数据,判断是否需要通过标定协议刷写应用程序;若通过标定协议刷写应用程序,执行操作1170;否则,执行操作1010。

1170,通过标定协议刷写应用程序。

其中,在通过标定协议刷写应用程序之后,系统重新上电。

在本发明上述任一实施例的电子控制器的引导加载方法中,应用程序的流程请参阅图12所示,图12是本发明应用程序的一个实施例的流程图。该应用程序包括:

1210,初始化应用程序相关的硬件,同时在内存空间中的指定地址中设置用作can总线波特率的数据,以便在系统上电后初始化电子控制器的基本硬件时读取。

1220,执行应用程序中其它循环调度的功能。

1230,运行diagbootloaderbackground函数。

其中,diagbootloaderbackground函数主要用于处理基于诊断协议的一些功能,处理通过can总线接收到的与诊断协议刷写代码相关的数据。

1240,根据接收到的数据,判断是否需要通过诊断协议刷鞋应用程序;若需要通过诊断协议刷写应用程序,执行操作1250;否则,执行操作1260。

1250,在通过诊断协议刷写应用程序之前,保存相关数据,在存储空间的指定地址中设置诊断协议刷写的标志。

1260,运行ccpbootloaderbackground函数。

其中,ccpbootloaderbackground函数主要用于处理基于标定协议的一些功能,处理通过can总线接收到的与标定协议刷写代码相关的数据。

1270,根据接收到的数据,判断是否需要通过标定协议刷写应用程序;若需要通过标定协议刷写应用程序,执行操作1280;否则,执行操作1290。

1280,在通过标定协议刷写应用程序之前,保存相关数据,在存储空间的指定地址中设置标定协议刷写的标志。

1290,执行操作1220。

在执行操作1250、1280之后,系统软复位,执行系统上电后初始化电子控制器的基本硬件的操作。

请参阅图8所示,是本发明电子控制器的引导加载装置的一个实施例的结构图。该实施例的装置包括:

检查单元820,用于在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据。

初始化单元840,用于根据检查单元820的检查结果,若在存储空间的指定地址中设有数据,根据应用程序设置的数据初始化can总线的波特率;否则,根据bootloader程序中预先设置的数据初始化can总线的波特率。

基于本发明实施例提供的电子控制器的引导加载装置,在系统上电后,通过读取应用程序设置的can总线的波特率,可以将can模块的波特率自动切换为与我们调试所需要的can总线的波特率相匹配,从而可以通过can总线刷写应用程序,实现软件的升级。这样,无论是在实车调试,还是在汽车维修时,当需要进行软件更新时,如果软件存在bug,就不需要将电子控制器从车辆上取下来,开盖进行应用程序的刷写,节约了人力和时间成本。

请参阅图9所示,是本发明电子控制器的引导加载装置的另一个实施例的 结构图。该实施例的装置包括:

检查单元920,用于在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据。

初始化单元940,用于根据检查单元920的检查结果,若在存储空间的指定地址中设有数据,根据应用程序设置的数据初始化can总线的波特率;否则,根据bootloader程序中预先设置的数据初始化can总线的波特率。

判断单元960,用于读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序。

执行单元980,用于根据判断单元960的判断结果,若在存储空间中存储有应用程序,执行该应用程序;否则,执行bootloader程序的主函数。

请参阅图10所示,是本发明电子控制器的引导加载装置的又一个实施例的结构图。该实施例的装置包括:

检查单元1020,用于在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据。

初始化单元1040,用于根据检查单元1020的检查结果,若在存储空间的指定地址中设有数据,根据应用程序设置的数据初始化can总线的波特率;否则,根据bootloader程序中预先设置的数据初始化can总线的波特率。

判断单元1060,用于读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序。

设置单元1070,用于根据判断单元1060的判断结果,响应于在存储空间中存储有应用程序,设置应用程序的标志。

判断单元1060,还用于响应于在存储空间中未存储有应用程序,及在执行设置应用程序的标志的操作之后,判断是否设置有应用程序的标志。

执行单元1080,用于具体根据判断单元1060的判断结果,若设置有应用程序的标志,执行该应用程序;否则,执行bootloader程序的主函数。

在本发明另一个实施例中,判断单元1060,还用于响应于存储空间中未存 储有应用程序,或在执行设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过can总线协议刷写应用程序。设置单元1070,还用于根据判断单元1060的判断结果,响应于通过can总线协议刷写应用程序,设置can总线协议刷写的标志。判断单元1060,还用于响应于不通过can总线协议刷写应用程序,或在执行设置can总线协议刷写的标志的操作之后,判断是否设置有can总线协议刷写的标志。执行单元1080,还用于根据判断单元1060的判断结果,响应于设置有can总线协议刷写的标志,执行bootloader程序的主函数。其中,判断单元1060,用于具体响应于未设置有can总线协议刷写的标志,判断是否设置有应用程序的标志。

在本发明的另一个实施例中,执行单元1080,执行bootloader程序的主函数,具体为初始化相关的协议。判断单元1060,还用于在执行bootloader程序的主函数的操作之后,判断是否设置有can总线协议刷写的标志。执行单元1080,还用于根据判断单元1060的判断结果,若设置有can总线协议刷写的标志,通过can总线协议刷写应用程序;否则,执行bootloader程序的主循环。

基于本发明实施例提供的电子控制器的引导加载装置,在系统上电后,通过读取应用程序设置的can总线的波特率,可以将can模块的波特率自动切换为与我们调试所需要的can总线的波特率相匹配,从而可以通过can总线利用can总线协议刷写应用程序,实现软件的升级。这样,无论是在实车调试,还是在汽车维修时,当需要进行软件更新时,如果软件存在bug,就不需要将电子控制器从车辆上取下来,开盖进行应用程序的刷写,节约了人力和时间成本。

在本发明的另一个实施例中,判断单元1060,还用于响应于存储空间中未存储有应用程序,及在执行设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过诊断协议刷写应用程序。设置单元1070,还用于根据判断单元1060的判断结果,响应于通过诊断协议刷写应用程序,设 置诊断协议刷写的标志。判断单元1060,还用于响应于不通过诊断协议刷写应用程序,及在执行设置诊断协议刷写的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过标定协议刷写应用程序。设置单元1070,还用于根据判断单元1060的判断结果,响应于通过标定协议刷写应用程序,设置标定协议刷写的标志。判断单元1060,还用于响应于不通过标定协议刷写应用程序,及在执行设置标定协议刷写的标志的操作之后,判断是否设置有诊断协议刷写的标志或标定协议刷写的标志。执行单元1080,还用于根据判断单元1060的判断结果,响应于设置有诊断协议刷写的标志或标定协议刷写的标志,执行bootloader程序的主函数。其中,判断单元1060,用于具体响应于未设置有诊断协议刷写的标志或标定协议刷写的标志,判断是否设置有应用程序的标志。

在本发明的另一个实施例中,执行单元1080,执行bootloader程序的主函数,具体为初始化相关的协议。判断单元1060,还用于在执行bootloader程序的主函数的操作之后,判断是否设置有标定协议刷写的标志。执行单元1080,还用于根据判断单元1060的判断结果,响应于设置有标定协议刷写的标志,通过标定协议刷写应用程序。判断单元1060,还用于响应于未设置有标定协议刷写的标志,判断是否设置有诊断协议刷写的标志。执行单元1080,还用于根据判断单元1060的判断结果,若设置有诊断协议刷写的标志,通过诊断协议刷写应用程序;否则,执行bootloader程序的主循环。其中,在通过诊断协议刷写应用程序之后,系统重新上电。在通过标定协议刷写应用程序之后,系统重新上电。

基于本发明实施例提供的电子控制器的引导加载方法,在系统上电后,通过读取应用程序设置的can总线的波特率,可以将can模块的波特率自动切换为与我们调试所需要的can总线的波特率相匹配,从而可以通过can总线利用诊断协议和标定协议刷写应用程序,实现软件的升级。这样,无论是在实车调试,还是在汽车维修时,当需要进行软件更新时,如果软件存在bug,就不需要将电子控制器从车辆上取下来,开盖进行应用程序的刷写,节约了人 力和时间成本。

本发明实施例还提供了一种电子控制器,设置有上述任一实施例的电子控制器的引导加载装置。

基于本发明实施例提供的电子控制器,设置有本发明上述任一实施例的电子控制器的引导加载装置,在系统上电后,通过读取应用程序设置的can总线的波特率,可以将can模块的波特率自动切换为与我们调试所需要的can总线的波特率相匹配,从而可以通过can总线刷写应用程序,实现软件的升级。这样,无论是在实车调试,还是在汽车维修时,当需要进行软件更新时,如果软件存在bug,就不需要将电子控制器从车辆上取下来,开盖进行应用程序的刷写,节约了人力和时间成本。

本发明实施例还提供了一种汽车,设置有上述任一实施例的电子控制器。

基于本发明实施例提供的汽车,设置有本发明上述任一实施例的电子控制器,在系统上电后,通过读取应用程序设置的can总线的波特率,可以将can模块的波特率自动切换为与我们调试所需要的can总线的波特率相匹配,从而可以通过can总线刷写应用程序,实现软件的升级。这样,无论是在实车调试,还是在汽车维修时,当需要进行软件更新时,如果软件存在bug,就不需要将电子控制器从车辆上取下来,开盖进行应用程序的刷写,节约了人力和时间成本。

本发明实施例提供了以下技术方案:

c1、一种电子控制器的引导加载方法,其特征在于,包括:

在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;

若在存储空间的指定地址中设有数据,根据应用程序设置的数据初始化can总线的波特率;

否则,根据bootloader程序中预先设置的数据初始化can总线的波特率。

c2、根据c1所述的方法,其特征在于,所述初始化电子控制器的基本硬 件之后,还包括:

读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;

若在存储空间中存储有应用程序,执行该应用程序;

否则,执行bootloader程序的主函数。

c3、根据c1所述的方法,其特征在于,所述初始化电子控制器的基本硬件之后,还包括:

读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;

若在存储空间中存储有应用程序,设置应用程序的标志;

若在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,判断是否设置有应用程序的标志;若设置有应用程序的标志,执行该应用程序;

否则,执行bootloader程序的主函数。

c4、根据c3所述的方法,其特征在于,还包括:

若在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过can总线协议刷写应用程序;

若通过can总线协议刷写应用程序,设置can总线协议刷写的标志;

若不通过can总线协议刷写应用程序,及在执行所述设置can总线协议刷写的标志的操作之后,判断是否设置有can总线协议刷写的标志;

若设置有can总线协议刷写的标志,执行所述bootloader程序的主函数;

否则,执行所述判断是否设置有应用程序的标志的操作。

c5、根据c4所述的方法,其特征在于,存储空间的指定地址中用于判断是否通过can总线协议刷写应用程序的信息具体在应用程序中设置。

c6、根据c4所述的方法,其特征在于,在所述执行bootloader程序的主 函数的操作之后,还包括:

判断是否设置有can总线协议刷写的标志;

若设置有can总线协议刷写的标志,通过can总线协议刷写应用程序;

否则,执行bootloader程序的主循环。

c7、根据c4或c5或c6所述的方法,其特征在于,所述can总线协议为标定协议或诊断协议。

c8、根据c3所述的方法,其特征在于,还包括:

若在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过诊断协议刷写应用程序;

若通过诊断协议刷写应用程序,设置诊断协议刷写的标志;

若不通过诊断协议刷写应用程序,及在执行所述设置诊断协议刷写的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过标定协议刷写应用程序;

若通过标定协议刷写应用程序,设置标定协议刷写的标志;

若不通过标定协议刷写应用程序,及在执行所述设置标定协议刷写的标志的操作之后,判断是否设置有诊断协议刷写的标志或标定协议刷写的标志;

若设置有诊断协议刷写的标志或标定协议刷写的标志,执行所述bootloader程序的主函数;

否则,执行所述判断是否设置有应用程序的标志的操作。

c9、根据c8所述的方法,其特征在于,

存储空间的指定地址中用于判断是否通过诊断协议刷写应用程序的信息具体在应用程序中设置;

存储空间的指定地址中用于判断是否通过标定协议刷写应用程序的信息具体在应用程序中设置。

c10、根据c8所述的方法,其特征在于,在所述执行bootloader程序的 主函数的操作之后,还包括:

判断是否设置有标定协议刷写的标志;

若设置有标定协议刷写的标志,通过标定协议刷写应用程序;

否则,判断是否设置有诊断协议刷写的标志;

若设置有诊断协议刷写的标志,通过诊断协议刷写应用程序;

否则,执行bootloader程序的主循环。

c11、根据c2或c3或c4或c5或c6或c8或c9或c10所述的方法,其特征在于,所述执行bootloader程序的主函数具体为初始化相关的协议。

c12、一种电子控制器的引导加载装置,其特征在于,包括:

检查单元,用于在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;

初始化单元,用于根据检查单元的检查结果,若在存储空间的指定地址中设有数据,根据应用程序设置的数据初始化can总线的波特率;否则,根据bootloader程序中预先设置的数据初始化can总线的波特率。

c13、根据c12所述的装置,其特征在于,还包括:

判断单元,用于读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;

执行单元,用于根据判断单元的判断结果,若在存储空间中存储有应用程序,执行该应用程序;否则,执行bootloader程序的主函数。

c14、根据c12所述的装置,其特征在于,还包括:

判断单元,用于读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;

设置单元,用于根据判断单元的判断结果,响应于在存储空间中存储有应用程序,设置应用程序的标志;

所述判断单元,还用于响应于在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,判断是否设置有应用程序的标志;

执行单元,用于具体根据判断单元的判断结果,若设置有应用程序的标志,执行该应用程序;否则,执行bootloader程序的主函数。

c15、根据c14所述的装置,其特征在于,

所述判断单元,还用于响应于存储空间中未存储有应用程序,或在执行所述设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过can总线协议刷写应用程序;

所述设置单元,还用于根据判断单元的判断结果,响应于通过can总线协议刷写应用程序,设置can总线协议刷写的标志;

所述判断单元,还用于响应于不通过can总线协议刷写应用程序,或在执行所述设置can总线协议刷写的标志的操作之后,判断是否设置有can总线协议刷写的标志;

所述执行单元,还用于根据判断单元的判断结果,响应于设置有can总线协议刷写的标志,执行所述bootloader程序的主函数;

所述判断单元,用于具体响应于未设置有can总线协议刷写的标志,判断是否设置有应用程序的标志。

c16、根据c15所述的装置,其特征在于,

存储空间的指定地址中用于判断是否通过can总线协议刷写应用程序的信息具体在应用程序中设置。

c17、根据c15所述的装置,其特征在于,

所述判断单元,还用于在执行所述bootloader程序的主函数的操作之后,判断是否设置有can总线协议刷写的标志;

所述执行单元,还用于根据判断单元的判断结果,若设置有can总线协议刷写的标志,通过can总线协议刷写应用程序;否则,执行bootloader程序的主循环。

c18、根据c15或c16或c17所述的装置,其特征在于,所述can总线协议为标定协议或诊断协议。

c19、根据c14所述的装置,其特征在于,

所述判断单元,还用于响应于存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过诊断协议刷写应用程序;

所述设置单元,还用于根据判断单元的判断结果,响应于通过诊断协议刷写应用程序,设置诊断协议刷写的标志;

所述判断单元,还用于响应于不通过诊断协议刷写应用程序,及在执行所述设置诊断协议刷写的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过标定协议刷写应用程序;

所述设置单元,还用于根据判断单元的判断结果,响应于通过标定协议刷写应用程序,设置标定协议刷写的标志;

所述判断单元,还用于响应于不通过标定协议刷写应用程序,及在执行所述设置标定协议刷写的标志的操作之后,判断是否设置有诊断协议刷写的标志或标定协议刷写的标志;

所述执行单元,还用于根据判断单元的判断结果,响应于设置有诊断协议刷写的标志或标定协议刷写的标志,执行所述bootloader程序的主函数;

所述判断单元,用于具体响应于未设置有诊断协议刷写的标志或标定协议刷写的标志,判断是否设置有应用程序的标志。

c20、根据c19所述的装置,其特征在于,

存储空间的指定地址中用于判断是否通过诊断协议刷写应用程序的信息具体在应用程序中设置;

存储空间的指定地址中用于判断是否通过标定协议刷写应用程序的信息具体在应用程序中设置。

c21、根据c19所述的装置,其特征在于,

所述判断单元,还用于在所述执行bootloader程序的主函数的操作之后,判断是否设置有标定协议刷写的标志;

所述执行单元,还用于根据判断单元的判断结果,响应于设置有标定协议刷写的标志,通过标定协议刷写应用程序;

所述判断单元,还用于响应于未设置有标定协议刷写的标志,判断是否设置有诊断协议刷写的标志;

所述执行单元,还用于根据判断单元的判断结果,若设置有诊断协议刷写的标志,通过诊断协议刷写应用程序;否则,执行bootloader程序的主循环。

c22、根据c13或c14或c15或c16或c17或c19或c20或c21所述的装置,其特征在于,所述执行bootloader程序的主函数具体为初始化相关的协议。

c23、一种电子控制器,其特征在于,包括:根据c12至c22中任一权利要求所述的电子控制器的引导加载装置。

c24、一种汽车,其特征在于,包括c23所述的电子控制器。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于装置实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1