CN107229457B - 电子控制器的引导加载方法、装置、电子控制器及汽车 - Google Patents

电子控制器的引导加载方法、装置、电子控制器及汽车 Download PDF

Info

Publication number
CN107229457B
CN107229457B CN201610176730.6A CN201610176730A CN107229457B CN 107229457 B CN107229457 B CN 107229457B CN 201610176730 A CN201610176730 A CN 201610176730A CN 107229457 B CN107229457 B CN 107229457B
Authority
CN
China
Prior art keywords
application program
protocol
mark
storage space
judging whether
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201610176730.6A
Other languages
English (en)
Other versions
CN107229457A (zh
Inventor
赵俊桃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Borgward Automotive China Co Ltd
Original Assignee
Borgward Automotive China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Borgward Automotive China Co Ltd filed Critical Borgward Automotive China Co Ltd
Priority to CN201610176730.6A priority Critical patent/CN107229457B/zh
Publication of CN107229457A publication Critical patent/CN107229457A/zh
Application granted granted Critical
Publication of CN107229457B publication Critical patent/CN107229457B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

本发明实施例公开了一种电子控制器的引导加载方法、装置、电子控制器及汽车。其中,方法包括:在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;若在存储空间的指定地址中设有数据,根据应用程序设置的数据初始化CAN总线的波特率;否则,根据BootLoader程序中预先设置的数据初始化CAN总线的波特率。本发明实施例可以根据需要自动切换CAN总线的波特率。

Description

电子控制器的引导加载方法、装置、电子控制器及汽车
技术领域
本发明属于汽车领域,特别是涉及一种电子控制器的引导加载方法、装置、电子控制器及汽车。
背景技术
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,运行Diag Bootloader background函数。
其中,Diag Bootloader background函数主要用于处理基于诊断协议的一些功能,处理通过CAN总线接收到的与诊断协议刷写代码相关的数据。
1130,根据接收到的数据,判断是否需要通过诊断协议刷写应用程序;若需要通过诊断协议刷写应用程序,执行操作1140;否则,执行操作1150。
1140,通过诊断协议刷写应用程序。
其中,在通过诊断协议刷写应用程之后,系统重新上电。
1150,运行CCP Bootloader background函数。
其中,CCP Bootloader background函数主要用于处理基于标定协议的一些功能,处理通过CAN总线接收到的与标定协议刷写代码相关的数据。
1160,根据接收到的数据,判断是否需要通过标定协议刷写应用程序;若通过标定协议刷写应用程序,执行操作1170;否则,执行操作1010。
1170,通过标定协议刷写应用程序。
其中,在通过标定协议刷写应用程序之后,系统重新上电。
在本发明上述任一实施例的电子控制器的引导加载方法中,应用程序的流程请参阅图12所示,图12是本发明应用程序的一个实施例的流程图。该应用程序包括:
1210,初始化应用程序相关的硬件,同时在内存空间中的指定地址中设置用作CAN总线波特率的数据,以便在系统上电后初始化电子控制器的基本硬件时读取。
1220,执行应用程序中其它循环调度的功能。
1230,运行Diag Bootloader background函数。
其中,Diag Bootloader background函数主要用于处理基于诊断协议的一些功能,处理通过CAN总线接收到的与诊断协议刷写代码相关的数据。
1240,根据接收到的数据,判断是否需要通过诊断协议刷鞋应用程序;若需要通过诊断协议刷写应用程序,执行操作1250;否则,执行操作1260。
1250,在通过诊断协议刷写应用程序之前,保存相关数据,在存储空间的指定地址中设置诊断协议刷写的标志。
1260,运行CCP Bootloader background函数。
其中,CCP Bootloader background函数主要用于处理基于标定协议的一些功能,处理通过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所述的电子控制器。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于装置实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

Claims (24)

1.一种电子控制器的引导加载方法,其特征在于,包括:
在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;
若在存储空间的指定地址中设有数据,根据应用程序设置的数据初始化CAN总线的波特率;
否则,根据BootLoader程序中预先设置的数据初始化CAN总线的波特率;
读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;
若在存储空间中存储有应用程序,设置应用程序的标志;
若在存储空间中未存储有应用程序,判断是否通过诊断协议和/或标定协议刷写应用程序;
若通过诊断协议和/或标定协议刷写应用程序,则设置诊断协议刷写的标志和/或标定协议刷写的标志;
判断是否设置有诊断协议刷写的标志和/或标定协议刷写的标志;
若设置有诊断协议刷写的标志和/或标定协议刷写的标志,执行所述BootLoader程序的主函数;
否则,执行所述判断是否设置有应用程序的标志的操作。
2.根据权利要求1所述的方法,其特征在于,所述初始化电子控制器的基本硬件之后,还包括:
读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;
若在存储空间中存储有应用程序,执行该应用程序;
否则,执行BootLoader程序的主函数。
3.根据权利要求1所述的方法,其特征在于,所述初始化电子控制器的基本硬件之后,还包括:
读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;
若在存储空间中存储有应用程序,设置应用程序的标志;
若在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,判断是否设置有应用程序的标志;若设置有应用程序的标志,执行该应用程序;
否则,执行BootLoader程序的主函数。
4.根据权利要求3所述的方法,其特征在于,还包括:
若在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过诊断协议刷写应用程序;
若通过诊断协议刷写应用程序,设置诊断协议刷写的标志;
若不通过诊断协议刷写应用程序,及在执行所述设置诊断协议刷写的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过标定协议刷写应用程序;
若通过标定协议刷写应用程序,设置标定协议刷写的标志;
若不通过标定协议刷写应用程序,及在执行所述设置标定协议刷写的标志的操作之后,判断是否设置有诊断协议刷写的标志或标定协议刷写的标志;
若设置有诊断协议刷写的标志或标定协议刷写的标志,执行所述BootLoader程序的主函数;
否则,执行所述判断是否设置有应用程序的标志的操作。
5.根据权利要求4所述的方法,其特征在于,存储空间的指定地址中用于判断是否通过CAN总线协议刷写应用程序的信息具体在应用程序中设置。
6.根据权利要求4所述的方法,其特征在于,在所述执行BootLoader程序的主函数的操作之后,还包括:
判断是否设置有CAN总线协议刷写的标志;
若设置有CAN总线协议刷写的标志,通过CAN总线协议刷写应用程序;
否则,执行BootLoader程序的主循环。
7.根据权利要求5-6任一项所述的方法,其特征在于,所述CAN总线协议为标定协议或诊断协议。
8.根据权利要求3所述的方法,其特征在于,还包括:
若在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过诊断协议刷写应用程序;
若通过诊断协议刷写应用程序,设置诊断协议刷写的标志;
若不通过诊断协议刷写应用程序,及在执行所述设置诊断协议刷写的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过标定协议刷写应用程序;
若通过标定协议刷写应用程序,设置标定协议刷写的标志;
若不通过标定协议刷写应用程序,及在执行所述设置标定协议刷写的标志的操作之后,判断是否设置有诊断协议刷写的标志或标定协议刷写的标志;
若设置有诊断协议刷写的标志或标定协议刷写的标志,执行所述BootLoader程序的主函数;
否则,执行所述判断是否设置有应用程序的标志的操作。
9.根据权利要求8所述的方法,其特征在于,
存储空间的指定地址中用于判断是否通过诊断协议刷写应用程序的信息具体在应用程序中设置;
存储空间的指定地址中用于判断是否通过标定协议刷写应用程序的信息具体在应用程序中设置。
10.根据权利要求8所述的方法,其特征在于,在所述执行BootLoader程序的主函数的操作之后,还包括:
判断是否设置有标定协议刷写的标志;
若设置有标定协议刷写的标志,通过标定协议刷写应用程序;
否则,判断是否设置有诊断协议刷写的标志;
若设置有诊断协议刷写的标志,通过诊断协议刷写应用程序;
否则,执行BootLoader程序的主循环。
11.根据权利要求2-6、8-10中任一权利要求所述的方法,其特征在于,所述执行BootLoader程序的主函数具体为初始化相关的协议。
12.一种电子控制器的引导加载装置,其特征在于,包括:
检查单元,用于在系统上电后初始化电子控制器的基本硬件时,检查应用程序在存储空间的指定地址中是否设置有数据;
初始化单元,用于根据检查单元的检查结果,若在存储空间的指定地址中设有数据,根据应用程序设置的数据初始化CAN总线的波特率;否则,根据BootLoader程序中预先设置的数据初始化CAN总线的波特率;
判断单元,用于读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;
设置单元,用于若在存储空间中存储有应用程序,设置应用程序的标志;
所述判断单元,还用于若在存储空间中未存储有应用程序,判断是否通过诊断协议和/或标定协议刷写应用程序;
所述设置单元,还用于若通过诊断协议和/或标定协议刷写应用程序,则设置诊断协议刷写的标志和/或标定协议刷写的标志;
所述判断单元,还用于判断是否设置有诊断协议刷写的标志和/或标定协议刷写的标志;
执行单元,用于若设置有诊断协议刷写的标志和/或标定协议刷写的标志,执行所述BootLoader程序的主函数;
所述执行单元,还用于若没有设置诊断协议刷写的标志和/或标定协议刷写的标志,执行所述判断是否设置有应用程序的标志的操作。
13.根据权利要求12所述的装置,其特征在于,还包括:
判断单元,用于读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;
执行单元,用于根据判断单元的判断结果,若在存储空间中存储有应用程序,执行该应用程序;否则,执行BootLoader程序的主函数。
14.根据权利要求12所述的装置,其特征在于,还包括:
判断单元,用于读取存储空间的指定地址中的信息,判断在存储空间中是否存储有应用程序;
设置单元,用于根据判断单元的判断结果,响应于在存储空间中存储有应用程序,设置应用程序的标志;
所述判断单元,还用于响应于在存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,判断是否设置有应用程序的标志;
执行单元,用于具体根据判断单元的判断结果,若设置有应用程序的标志,执行该应用程序;否则,执行BootLoader程序的主函数。
15.根据权利要求14所述的装置,其特征在于,
所述判断单元,还用于响应于存储空间中未存储有应用程序,或在执行所述设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过CAN总线协议刷写应用程序;
所述设置单元,还用于根据判断单元的判断结果,响应于通过CAN总线协议刷写应用程序,设置CAN总线协议刷写的标志;
所述判断单元,还用于响应于不通过CAN总线协议刷写应用程序,或在执行所述设置CAN总线协议刷写的标志的操作之后,判断是否设置有CAN总线协议刷写的标志;
所述执行单元,还用于根据判断单元的判断结果,响应于设置有CAN总线协议刷写的标志,执行所述BootLoader程序的主函数;
所述判断单元,用于具体响应于未设置有CAN总线协议刷写的标志,判断是否设置有应用程序的标志。
16.根据权利要求15所述的装置,其特征在于,
存储空间的指定地址中用于判断是否通过CAN总线协议刷写应用程序的信息具体在应用程序中设置。
17.根据权利要求15所述的装置,其特征在于,
所述判断单元,还用于在执行所述BootLoader程序的主函数的操作之后,判断是否设置有CAN总线协议刷写的标志;
所述执行单元,还用于根据判断单元的判断结果,若设置有CAN总线协议刷写的标志,通过CAN总线协议刷写应用程序;否则,执行BootLoader程序的主循环。
18.根据权利要求15-17任一项所述的装置,其特征在于,所述CAN总线协议为标定协议或诊断协议。
19.根据权利要求14所述的装置,其特征在于,
所述判断单元,还用于响应于存储空间中未存储有应用程序,及在执行所述设置应用程序的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过诊断协议刷写应用程序;
所述设置单元,还用于根据判断单元的判断结果,响应于通过诊断协议刷写应用程序,设置诊断协议刷写的标志;
所述判断单元,还用于响应于不通过诊断协议刷写应用程序,及在执行所述设置诊断协议刷写的标志的操作之后,读取存储空间的指定地址中的信息,判断是否通过标定协议刷写应用程序;
所述设置单元,还用于根据判断单元的判断结果,响应于通过标定协议刷写应用程序,设置标定协议刷写的标志;
所述判断单元,还用于响应于不通过标定协议刷写应用程序,及在执行所述设置标定协议刷写的标志的操作之后,判断是否设置有诊断协议刷写的标志或标定协议刷写的标志;
所述执行单元,还用于根据判断单元的判断结果,响应于设置有诊断协议刷写的标志或标定协议刷写的标志,执行所述BootLoader程序的主函数;
所述判断单元,用于具体响应于未设置有诊断协议刷写的标志或标定协议刷写的标志,判断是否设置有应用程序的标志。
20.根据权利要求19所述的装置,其特征在于,
存储空间的指定地址中用于判断是否通过诊断协议刷写应用程序的信息具体在应用程序中设置;
存储空间的指定地址中用于判断是否通过标定协议刷写应用程序的信息具体在应用程序中设置。
21.根据权利要求19所述的装置,其特征在于,
所述判断单元,还用于在所述执行BootLoader程序的主函数的操作之后,判断是否设置有标定协议刷写的标志;
所述执行单元,还用于根据判断单元的判断结果,响应于设置有标定协议刷写的标志,通过标定协议刷写应用程序;
所述判断单元,还用于响应于未设置有标定协议刷写的标志,判断是否设置有诊断协议刷写的标志;
所述执行单元,还用于根据判断单元的判断结果,若设置有诊断协议刷写的标志,通过诊断协议刷写应用程序;否则,执行BootLoader程序的主循环。
22.根据权利要求13-17、19-21任一项所述的装置,其特征在于,所述执行BootLoader程序的主函数具体为初始化相关的协议。
23.一种电子控制器,其特征在于,包括:根据权利要求12至22中任一权利要求所述的电子控制器的引导加载装置。
24.一种汽车,其特征在于,包括权利要求23所述的电子控制器。
CN201610176730.6A 2016-03-24 2016-03-24 电子控制器的引导加载方法、装置、电子控制器及汽车 Expired - Fee Related CN107229457B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610176730.6A CN107229457B (zh) 2016-03-24 2016-03-24 电子控制器的引导加载方法、装置、电子控制器及汽车

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610176730.6A CN107229457B (zh) 2016-03-24 2016-03-24 电子控制器的引导加载方法、装置、电子控制器及汽车

Publications (2)

Publication Number Publication Date
CN107229457A CN107229457A (zh) 2017-10-03
CN107229457B true CN107229457B (zh) 2020-12-11

Family

ID=59931708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610176730.6A Expired - Fee Related CN107229457B (zh) 2016-03-24 2016-03-24 电子控制器的引导加载方法、装置、电子控制器及汽车

Country Status (1)

Country Link
CN (1) CN107229457B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739562A (zh) * 2018-12-28 2019-05-10 潍柴动力股份有限公司 一种数据处理方法及电子控制设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294511A (zh) * 2013-05-31 2013-09-11 哈尔滨工业大学 基于CAN总线的bootloader软件的升级方法
CN103777538A (zh) * 2012-10-19 2014-05-07 重庆长安汽车股份有限公司 控制器与can总线的波特率自动匹配方法
CN103885791A (zh) * 2012-12-20 2014-06-25 北汽福田汽车股份有限公司 一种车辆控制器的烧写装置
CN104809009A (zh) * 2015-03-23 2015-07-29 陕西法士特齿轮有限责任公司 一种汽车电控单元的程序加载引导方法
CN105334768A (zh) * 2015-10-15 2016-02-17 深圳市轱辘软件开发有限公司 获取波特率的方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190095B1 (en) * 2009-05-15 2012-05-29 Crestron Electronics Inc. RF audio distribution system including IR presence detection
US8630764B2 (en) * 2011-12-02 2014-01-14 Continential Automotive Systems, Inc. System operation for telematics systems that use a battery
US8929497B2 (en) * 2012-03-16 2015-01-06 Lsi Corporation Dynamic deskew for bang-bang timing recovery in a communication system
CN104102607A (zh) * 2014-07-17 2014-10-15 航天科工深圳(集团)有限公司 基于VxWorks操作系统环境下的CAN总线驱动方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103777538A (zh) * 2012-10-19 2014-05-07 重庆长安汽车股份有限公司 控制器与can总线的波特率自动匹配方法
CN103885791A (zh) * 2012-12-20 2014-06-25 北汽福田汽车股份有限公司 一种车辆控制器的烧写装置
CN103294511A (zh) * 2013-05-31 2013-09-11 哈尔滨工业大学 基于CAN总线的bootloader软件的升级方法
CN104809009A (zh) * 2015-03-23 2015-07-29 陕西法士特齿轮有限责任公司 一种汽车电控单元的程序加载引导方法
CN105334768A (zh) * 2015-10-15 2016-02-17 深圳市轱辘软件开发有限公司 获取波特率的方法和装置

Also Published As

Publication number Publication date
CN107229457A (zh) 2017-10-03

Similar Documents

Publication Publication Date Title
US8607094B2 (en) Operational system test method
US7356684B2 (en) Booting system and/or method for initializing peripherals
CN109960523B (zh) 一种嵌入式设备的固件升级方法及装置
CN109669873B (zh) 用户界面自动测试方法及装置、电子设备及存储介质
CN109408122B (zh) 一种设备启动方法、电子设备和计算机存储介质
CN105760191A (zh) 嵌入式系统设备程序烧写量产方法
CN102609290B (zh) 电子产品的软件升级方法
CN113961259A (zh) 启动引导程序加载方法、装置、系统、电子设备及介质
CN111638916B (zh) 一种用于数据取证的通用安卓移动终端驱动系统及方法
US9600397B2 (en) Dynamic debugging method of a software module and corresponding device
JP2009252194A (ja) データ処理装置、ハードウェアアクセス方法、及びハードウェアアクセスプログラム
TWI478061B (zh) 更新韌體的方法
CN115357262A (zh) 一种驱动器固件批量升级的方法
CN107229457B (zh) 电子控制器的引导加载方法、装置、电子控制器及汽车
US8042104B2 (en) Method and system for sending a rewrite control program to a control unit
TWI464583B (zh) 取得觸發功能之指令的方法
CN113377586A (zh) 一种服务器自动化检测方法、装置及存储介质
CN114816491A (zh) 用于多系统移动终端的系统升级方法、装置及终端
CN110618908A (zh) 一种快速验证屏幕和机器显示接口的方法
JP4558376B2 (ja) コントローラ
CN113076140B (zh) 一种gpio配置检测方法、装置及服务器
CN104572181A (zh) 启动备份引导程序的方法和装置
CN116107673A (zh) 屏幕配适方法、车载终端及计算机存储介质
CN114296754A (zh) 芯片平台升级方法及相关装置
KR101420026B1 (ko) 부팅 프로세스 중에 파일들을 로딩하기 위한 방법, 장치 및 컴퓨터 판독가능 저장 매체

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Guiding loading method and device of electronic controller, electronic controller and automobile

Effective date of registration: 20211213

Granted publication date: 20201211

Pledgee: BEIJING AUTOMOTIVE GROUP Co.,Ltd.

Pledgor: Borgward Automotive (China) Co., Ltd.

Registration number: Y2021990001167

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201211

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20231201

Granted publication date: 20201211

Pledgee: BEIJING AUTOMOTIVE GROUP Co.,Ltd.

Pledgor: Beijing baowo Automobile Co.,Ltd.|Borgward Automotive (China) Co., Ltd.

Registration number: Y2021990001167