[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN103995712B - 一种自动更新的bootloader装置及更新方法 - Google Patents

一种自动更新的bootloader装置及更新方法 Download PDF

Info

Publication number
CN103995712B
CN103995712B CN201410153269.3A CN201410153269A CN103995712B CN 103995712 B CN103995712 B CN 103995712B CN 201410153269 A CN201410153269 A CN 201410153269A CN 103995712 B CN103995712 B CN 103995712B
Authority
CN
China
Prior art keywords
bootloader
bootstrap
ems
module
host computer
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.)
Active
Application number
CN201410153269.3A
Other languages
English (en)
Other versions
CN103995712A (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.)
Weichai Power Co Ltd
Original Assignee
Weichai Power 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 Weichai Power Co Ltd filed Critical Weichai Power Co Ltd
Priority to CN201410153269.3A priority Critical patent/CN103995712B/zh
Publication of CN103995712A publication Critical patent/CN103995712A/zh
Application granted granted Critical
Publication of CN103995712B publication Critical patent/CN103995712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供一种自动更新的bootloader装置及更新方法,包括:bootloader引导程序第一模块和bootloader引导程序第二模块;所述bootloader引导程序第一模块,用于bootloader引导程序和更新EMS区;所述bootloader引导程序第二模块,用于根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序第一模块中的bootloader引导程序。通过使用以上装置,可以实现对bootloader的程序故障响应恢复,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。

Description

一种自动更新的bootloader装置及更新方法
技术领域
本发明涉及单片机控制技术领域,特别涉及一种自动更新的bootloader装置及更新方法。
背景技术
随着在现有的机电控制技术领域中,电子控制单元ECU(Electronic ControlUnit)被广泛应用于各种电子控制设备上。
在共轨式蓄压器喷射系统中,ECU用于通过接收传感器的信号,借助于喷油器上的电磁阀让柴油以正确的喷油压力在正确的喷油点喷射出正确的喷油量,保证柴油机最佳的燃烧比、最佳的雾化效果和最佳的点火时间,以实现良好的经济性和最少的污染排放。
其中,ECU中包括有bootloader引导程序和EMS应用程序。bootloader引导模块是系统上电后运行的第一段软件代码,用于引导、更新程序和数据。EMS应用模块中包括基础软件和应用软件,是ECU能够控制发动机正常工作所需要的程序。
在现有技术中,bootloader引导程序和EMS应用程序都处于同一个编译镜像内。Bootloader引导程序自我更新时,需要将bootloader引导程序相关代码复制到RAM中执行。
但在这种使用方式中存在一定的风险:
一种情况是在对镜像文件中的EMS应用程序进行修改时,对镜像中的bootloader程序或整个镜像文件造成误修改,使bootloader引导程序或镜像文件不能正常加载;另一种情况是在对bootloader引导程序进行升级时出现突然断电等情况,造成bootloader程序升级不完整。以上两种情况下对bootloader程序的破坏都会造成系统在重新上电时出现错误。而其解决方法只能是通过维护人员将ECU进行开盖操作,使用Trace32或者P&E等仿真器重新刷写ECU,从而大大增加了维护人员的工作量。
发明内容
本发明要解决的技术问题是提供一种自动更新的bootloader装置及更新方法,实现对ECU中bootloader引导程序的故障恢复或版本更新,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,,大大减小了维护人员的工作量。
一种自动更新的bootloader装置,包括:
bootloader引导程序第一模块和bootloader引导程序第二模块;
所述bootloader引导程序第一模块,用于运行bootloader引导程序;
所述bootloader引导程序第二模块,用于根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序第一模块中的bootloader引导程序。
优选地,所述bootloader引导程序第二模块安装在所述bootloader引导程序第一模块之后,在所述bootloader引导程序第一模块不能正常运行bootloader引导程序时,顺序运行所述bootloader引导程序第二模块。
优选地,所述bootloader引导程序第二模块,还包括:更新失败反馈子模块;
所述更新失败反馈子模块,用于在使用所述上位机发送的bootloader引导更新程序无法正常更新所述bootloader引导程序第一模块中的bootloader引导程序时,向所述上位机发送更新错误信息。
优选地,所述bootloader引导程序第二模块,还包括:当前进程反馈子模块;
所述当前进程反馈子模块,用于在接收到所述上位机的查询指令后,向所述上位机反馈当前运行的程序信息。
优选地,所述bootloader引导程序第一模块还包括:引导程序更新跳转子模块;
所述引导程序更新跳转模块,用于在接收到所述上位机发送的bootloader引导程序更新指令时,跳转运行所述bootloader引导程序第二模块。
优选地,还包括:EMS应用程序模块;
所述EMS应用程序模块,用于在所述bootloader引导程序正常运行后运行EMS应用程序。
优选地,所述bootloader引导程序第一模块还包括:EMS应用程序更新子模块;
所述EMS应用程序更新子模块,用于根据上位机发送的EMS应用更新程序更新所述EMS应用程序模块中的EMS应用程序。
优选地,所述EMS应用程序模块中还包括:应用程序更新跳转子模块;
所述应用程序更新跳转子模块,用于在接收到所述上位机发送的EMS应用程序更新指令时,跳转运行所述bootloader引导程序第一模块中的EMS应用程序更新子模块。
优选地,所述bootloader引导程序第一模块还包括:EMS应用计时加载子模块;
所述EMS应用计时加载子模块,用于在所述EMS应用程序模块运行之前,在指定时间内等待所述上位机发送的所述EMS应用更新指令;所述指定时间为所述上位机发送所述EMS应用更新指令的时间窗。
优选地,所述bootloader引导程序第一模块还包括:EMS应用程序检测子模块;
所述EMS应用程序检测子模块,用于检测所述EMS应用程序是否正确,若检测到所述EMS应用程序不正确,将所述bootloader引导程序第一模块设置为等待状态。
一种自动更新的bootloader方法,包括:
运行bootloader引导程序;
检测bootloader引导程序是否需要更新;
若所述bootlader引导程序需要更新,根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序。
优选地,在所述根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序之后,还包括:
若无法使用所述上位机发送的bootloader引导更新程序更新所述bootloader引导程序,向所述上位机发送更新错误信息。
优选地,还包括:
若所述bootloader引导程序正常运行,则运行EMS应用程序。
优选地,在运行EMS应用程序之后还包括:
若接收到所述上位机发送的EMS应用程序更新指令,跳转运行所述bootloader引导程序,根据所述上位机发送的EMS应用更新程序更新所述EMS应用程序。
优选地,在所述运行EMS应用程序之前,还包括:
在所述指定时间内等待接收所述上位机发送的EMS应用更新指令;
若在所述指定时间内接收到所述上位机发送的更新EMS应用程序指令,则接收所述上位机发送的EMS应用更新程序更新本地所述EMS应用程序。
优选地,在所述运行EMS应用程序之前,还包括:
检测所述EMS应用程序是否正确;
若检测到所述EMS应用程序不正确,将所述bootloader引导程序等待状态,接收所述上位机发送的EMS应用更新程序更新本地所述EMS应用程序。
与现有技术相比,本发明具有以下优点:
在本发明中,包括bootloader引导程序第一模块和bootloader引导程序第二模块。其中,bootloader引导程序第一模块用于运行bootloader引导程序。bootloader引导程序第二模块用于根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序第一模块中的bootloader引导程序。通过使用以上装置,可以实现对ECU中的bootloader引导程序故障响应恢复或版本更新操作,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
附图说明
图1是本发明提供的一种自动更新的bootloader装置第一实施例的原理框图;
图2是本发明提供的一种自动更新的bootloader装置第二实施例的原理框图;
图3是本发明提供的一种自动更新的bootloader装置第三实施例的原理框图;
图4是本发明提供的一种自动更新的bootloader装置第四实施例的原理框图;
图5是本发明提供的一种自动更新的bootloader装置第五实施例的原理框图;
图6是本发明提供的一种自动更新的bootloader装置第六实施例的原理框图;
图7是本发明提供的一种自动更新的bootloader方法第一实施例的流程图;
图8是本发明提供的一种自动更新的bootloader方法第二实施例的流程图;
图9是本发明提供的一种自动更新的bootloader方法第三实施例的流程图;
图10是本发明提供的一种自动更新的bootloader方法第四实施例的流程图。
图11是本发明提供的一种自动更新的bootloader方法第五实施例的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,,下面结合附图对本发明的具体实施方式做详细的说明。
为了方便介绍本发明,首先介绍一下ECU启动时候的执行顺序。
在一般ECU的正常启动过程中,首先应该加载bootloader引导加载程序,在bootloader引导加载程序正常运行的情况下,再加载EMS应用程序,运行其中的基础软件和应用软件。
参见图1,该图为本发明提供的一种自动更新的bootloader装置第一实施例的原理框图。
在本实施例中,本装置100包括:
bootloader引导程序第一模块10和bootloader引导程序第二模块20。
所述bootloader引导程序第一模块10,用于运行bootloader引导程序。
所述bootloader引导程序第二模块20,用于根据上位机40发送的bootloader引导更新程序更新所述bootloader引导程序第一模块中的bootloader引导程序。
在bootloader引导程序第一模块10中,存储有bootloader引导程序。而在bootloader引导程序第二模块20中,存储有接收程序和更新bootloader引导程序的写入程序。
在实际使用时,bootloader引导程序第一模块10首先运行bootloader引导程序。
在某些情况下,bootloader引导程序会因为误修改或突然断电等情况出现无法正常运行加载的问题。因此,可以将bootloader引导程序第二模块20安装在所述bootloader引导程序第一模块10之后。这样,在出现bootloader引导程序第一模块10不能正常运行bootloader引导程序时,,顺序运行所述bootloader引导程序第二模块20。另外,如果出现bootloader引导程序不能正常加载的情况此时,还可以通过故障灯或消息指令等方式对用户或上位机40进行提示,告知bootloader引导程序不能正常运行。
在另外一些情况下时,在上位机40中还可能存在需要bootloader引导程序的新版本,需要替换bootloader第一模块10中的旧版本的bootloader引导程序。
在出现以上情况时,可以将控制权跳转到bootloader引导程序第二模块20来执行其中的程序。由于在bootloader引导程序第二模块20中存储有接收上位机40的接收程序和bootloader引导程序写入程序。因此,,用户可以将上位机40与本装置进行连接,通过上位机40将bootloader引导更新程序发送到bootloader引导程序第二模块20,并由bootloader引导程序第二模块20将接到的bootloader引导更新程序更新bootloader引导程序第一模块10中的bootloader引导程序,实现对bootloader引导程序的重新写入。
在本实施例中,包括bootloader引导程序第一模块和bootloader引导程序第二模块。其中,bootloader引导程序第一模块用于运行bootloader引导程序。bootloader引导程序第二模块用于根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序第一模块中的bootloader引导程序。通过使用以上装置,可以实现对ECU的故障响应恢复或版本更新,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
参见图2,该图为本发明提供的一种自动更新的bootloader装置第二实施例的原理框图。
在本实施例中,所述bootloader引导程序第二模块20,还包括:更新失败反馈子模块201。
所述更新失败反馈子模块201,用于在使用所述上位机发送的bootloader引导更新程序无法正常更新所述bootloader引导程序第一模块中的bootloader引导程序时,向所述上位机发送更新错误信息。
在bootloader引导程序第一模块10不能正常运行bootloader的情况下,上位机40可以将bootloader引导程序传送到bootloader引导程序第二模块20中,由bootloader引导程序第二模块20进行更新操作。
但在实际发生故障时,上位机40并不知道是bootloader引导程序出现问题,还是其它程序(例如EMS应用程序)出现问题。因此,上位机40可能会发送EMS应用程序进行更新。
如果bootloader引导程序第二模块20根据上位机40发送的更新程序无法正常对bootloader引导程序进行更新写入时,更新失败反馈子模块201可以向上位机40发送消息,提示上位机40程序更新操作错误。
上位机40在接收到程序更新操作错误后,可以根据其中的内容重新发送更新程序。例如:上位机在第一次发送的是EMS应用更新程序,在接收到更新失败反馈子模块201发出的更新错误信息后,改为发送bootloader引导更新程序。
在本实施例中,在bootloader引导程序第二模块中还包括:更新失败反馈子模块。更新失败反馈子模块用于在无法正常使用所述bootloader引导更新程序进行更新操作时向所述上位机发送更新错误消息。通过使用以上装置,可以实现在上位机发送错误更新文件时对上位机及时进行错误消息反馈,从而由上位机再次发送正确的更新文件进行操作,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
参见图3,该图为本发明提供的一种自动更新的bootloader装置第三实施例的原理框图。
在本实施例中,所述bootloader引导程序第二模块20还包括:当前进程反馈子模块202。
所述当前进程反馈子模块202,用于在接收到所述上位机的查询指令后,向所述上位机反馈当前运行的程序信息。
在有些情况下,上位机40为了进行程序更新或其它调试等需要,还要了解bootloader装置中的当前程序运行信息。因此,可以在bootloader引导程序第二模块20中设置当前进程反馈子模块202。当前进程反馈子模块202用于在接收到上位机的查询指令后,向上位机返回当前运行的程序信息。例如:上位机向本装置发送请求,询问当前正在运行的程序或模块。假设当前bootloader装置中正在运行的是bootloader引导程序,则当前进程反馈子模块202向上位机反馈bootloader引导程序的信息。
在本实施例中,在bootloader引导程序第一模块10还包括:引导程序更新跳转子模块101。
所述引导程序更新跳转模块101,用于在接收到所述上位机发送的bootloader引导程序更新指令时,跳转运行所述bootloader引导程序第二模块。
在需要对bootloader引导程序进行更新时,上位机首先使用当前进程反馈子模块202询问当前运行的程序或模块,如果反馈的结果为bootloader引导程序正在运行或bootloader引导程序第一模块正在运行,则上位机可以向bootloader引导程序第一模块10中的引导程序更新跳转子模块101发送跳转指令。引导程序更新跳转子模块101在接收到跳转指令后,,将从正在运行的bootloader引导程序中断,跳转执行bootloader引导程序第二模块中的程序。这样,bootloader引导程序第二模块中的接收程序和更新程序就可以接收上位机的更新程序,对bootloader引导程序第一模块中的bootloader引导程序进行更新。
通过使用以上装置,可以实现在正常使用情况下对bootloader引导程序的自动更新,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
参见图4,该图为本发明提供的一种自动更新的bootloader装置第四实施例的原理框图。
在本实施例中,还包括:EMS应用程序模块30。
所述EMS应用程序模块30,用于在所述bootloader引导程序正常运行后运行EMS应用程序。
在bootloader引导程序第一模块10正常运行bootloader引导程序后,就可以开始运行后续的EMS应用程序。因此,在本实施例中可以在bootloader引导程序第一模块10和bootloader引导程序第二模块20后,安装EMS应用程序模块30,在bootloader引导程序正常运行后运行EMS应用程序。
在本实施例中,在bootloader引导程序第一模块10中还包括:EMS应用程序更新子模块102。
所述EMS应用程序更新子模块102,用于将所述上位机40发送的EMS应用更新程序更新所述EMS应用程序模块30中的EMS应用程序。
由于在实际使用中,EMS应用程序也有可能因为误修改或突然断电等情况导致EMS应用程序无法正常运行,或者需要运行新版本的EMS应用程序。因此,EMS应用程序也存在需要进行EMS程序更新的技术要求。
为了实现以上功能,可以在bootloader引导程序第一模块10中设置EMS应用程序更新子模块102。
在bootloader引导程序第一模块10正常运行bootloader引导程序后,开始由EMS应用程序模块30来运行EMS应用程序。如果EMS应用程序模块30在运行EMS应用程序出现错误时(可以通过故障灯或消息指令等方式对用户或上位机40进行提示),或者在上位机中存在了EMS应用程序的新版本,需要对EMS应用程序模块30中的EMS应用程序进行更新替换时,可以将控制权跳转到EMS应用程序更新子模块102等待用户或上位机40的指令和更新程序。
在上位机40连接本装置后,通过向bootloader引导程序第一模块10中的EMS应用程序更新子模块102发送正确的EMS应用更新程序,由EMS应用程序更新子模块102来更新EMS应用程序。
为了能够实现对EMS应用程序在任意时刻的更新操作,可以在EMS应用程序模块中安装应用程序更新跳转子模块103,用于在接收到所述上位机发送的EMS应用程序更新指令时,跳转运行bootloader引导程序第一模块10中的EMS应用程序更新子模块102。这样,不管当前运行的是什么内容的EMS应用程序,都可以在接收到上位机的EMS应用程序更新指令后中断运行,将控制器跳转到EMS应用程序更新子模块102进行执行。
在本实施例中,在bootloader引导程序第一模块中设置EMS应用程序更新子模块,可以在EMS应用程序无法正常运行或需要进行升级时,将上位机发送的EMS应用程序通过EMS应用程序更新模块进行更新操作。通过使用以上装置,可以实现EMS应用程序的故障响应或程序版本升级,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
参见图5,该图为本发明提供的一种自动更新的bootloader装置第五实施例的原理框图。
在本实施例中,所述bootloader引导程序第一模块10还包括:EMS应用计时加载子模块103。
所述EMS应用计时加载子模块103,用于在所述EMS应用程序模块运行之前,在指定时间内等待所述上位机发送的所述EMS应用更新指令;所述指定时间为所述上位机发送所述EMS应用更新指令的时间窗。
在bootloader引导程序正常运行后,开始启动EMS应用程序模块30来运行EMS应用程序。
但由于在上位机40可能存在新版本的EMS应用程序,,因此可以在EMS应用程序运行前由EMS应用计时加载子模块103计时等待一定时间,例如50ms。如果在这段时间窗内接收到上位机40发送的EMS应用更新指令,则跳转执行EMS应用程序更新子模块102来接收上位机40之后发送的EMS应用更新程序更新本装置中的EMS应用程序。如果没有接收到上位机40的EMS应用更新程序,则继续正常启动EMS应用程序模块30运行其中的EMS应用程序。
在本实施例中,通过在bootloader引导程序第一模块设置EMS应用计时加载子模块,可以在指定时间内等待上位机的更新指令,为自动更新EMS应用程序提供合理的时间窗口,方便了对ECU中EMS应用程序的更新,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
参见图6,该图为本发明提供的一种自动更新的bootloader装置第六实施例的原理框图。
在本实施例中,在所述bootloader引导程序第一模块10中还可以包括:EMS应用程序检测子模块104。
所述EMS应用程序检测子模块104,用于检测所述EMS应用程序是否正确,若检测到所述EMS应用程序不正确,则将所述bootloader引导程序第一模块设置为等待状态。
在运行EMS应用程序之前时,为了能够确定EMS应用程序的完整性,可以在bootloader引导程序第一模块10中设置EMS应用程序检测子模块103。EMS应用程序检测子模块104可以检测在EMS应用程序模块30中的EMS应用程序是否完整,如果完整则由EMS应用程序模块30进行运行加载。如果不完整,则认为EMS应用程序受损,可以通过故障灯或消息指令等方式对用户或上位机40进行提示。同时,可以将bootloader引导程序第一模块10设置为等待状态,直至上位机对EMS应用程序故障进行响应,例如上位机40发送EMS应用更新程序更新EMS应用程度模块中受损的EMS应用程序。
通过在bootloader引导程序第一模块中设置EMS应用程序检测子模块,可以实现在每次启动EMS应用程序模块前都自动检测EMS应用程序是否完整,能够及时的确定EMS应用程序的问题,并结合EMS应用程序更新子模块实现了对损坏的EMS应用程序的更新更新,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
基于上述提供的一种自动更新的bootloader装置,本发明还提供了一种自动更新bootloader的方法,下面结合具体实施例来详细说明其组成部分。
参见图7,该图为本发明提供的一种自动更新的bootloader方法第一实施例的流程图。
在本实施例中,包括:
S101:运行bootloader引导程序。
S102:检测bootloader引导程序是否需要更新。
S103:若所述bootlader引导程序需要更新,根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序。
在启动本装置后,首先运行bootloader引导程序。
在某些情况下,bootloader引导程序会因为误修改、突然断电等情况出现无法正常加载的问题,需要检测bootloader引导程序是否正常运行。在这种情况下,可以通过故障灯或消息指令等方式对用户或上位机40进行提示,或直接暂停执行后面的程序,等待上位机40的指令。
在另一些情况下,在上位机存在新版本的bootloader引导程序,需要对本装置中存储的bootloader引导程序进行更新替换。
在以上情况出现时,可以连接上位机,通过上位机将bootloader引导更新程序发送到本地,并使用接到的bootloader引导更新程序更新本地的bootloader引导程序,实现对bootloader引导程序的重新写入。
为了保证更新操作的完成,可以在根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序之后,还包括:
若无法使用所述上位机发送的bootloader引导更新程序更新所述bootloader引导程序,向所述上位机发送更新错误信息。
在本实施例中,首先运行bootloader引导程序,之后检测bootloader引导程序是否需要更新,若bootlader引导程序需要更新,则根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序。通过使用以上方法,可以实现对bootloader引导程序的故障响应恢复,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
参见图8,该图为本发明提供的一种自动更新的bootloader方法第二实施例的流程图。
本实施例中的步骤S201-203与自动更新的bootloader方法第一实施例中的步骤S101-S103相同,在此不再重复介绍。
在本实施例中,所述根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序之后,还包括;
S204:检测使用所述bootloader引导更新程序更新所述bootloader引导程序是否正常完成。
S205:若无法正常使用所述bootloader引导更新程序更新所述bootloader引导程序,则向所述上位机发送更新错误消息。
在bootloader引导程序不能正常运行或进行版本更新的情况下,上位机可以将bootloader引导更新程序发送到本地更新bootloader引导程序。
但在实际操作时,由于各种原因可能在对bootloader引导程序进行更新时可能不能正常完成;或者上位机可能并不知道是bootloader引导程序出现问题,还是EMS应用程序出现问题,上位机可能会发送错误的更新程序。
在根据上位机发送的更新程序无法完成本地bootloader引导程序的更新操作后,用户或上位机在更新完成后会向本地发送查询指令,查询bootloader引导程序更新结果。在接收到查询指令后,可以将更新错误信息发送到上位机进行反馈;或者可以直接向上位机发送更新错误信息,提示本地程序更新操作错误。
上位机在接收到程序更新操作错误后,可以根据其中的内容重新发送更新程序。如上位机第一次发送的是EMS应用更新程序,在接收到更新错误信息后,改为发送bootloader引导更新程序。
在本实施例中,在根据上位机发送的bootloader引导更新程序更新bootloader引导程序之后,还包括:若无法使用上位机发送的bootloader引导更新程序更新bootloader引导程序,向所述上位机发送更新错误信息。通过使用以上方法,可以实现在更新失败后对上位机及时进行错误信息反馈,从而由上位机再次发送正确的更新程序进行更新操作,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
参见图9,该图为本发明提供的一种自动更新的bootloader方法第三实施例的流程图。
本实施例中的步骤S301-303与自动更新的bootloader方法第一实施例中的步骤S101-S103相同,在此不再重复介绍。
在本实施例中,还包括:
S304:若所述bootloader引导程序正常运行,则运行EMS应用程序。
在bootloader引导程序正常运行后,就可以开始运行后续的EMS应用程序。
由于在实际使用中,EMS应用程序有可能因为误修改或突然断电等情况导致EMS应用程序无法正常运行,或者需要运行新版本的EMS应用程序。因此,EMS应用程序也存在需要进行EMS程序更新的技术要求。
因此,在本实施例中,还包括:
S305:判断是否接收到所述上位机发送的EMS应用程序更新指令。
S306:若接收到所述上位机发送的EMS应用程序更新指令,跳转运行所述bootloader引导程序,根据所述上位机发送的EMS应用更新程序更新所述EMS应用程序。
在有些情况下,在上位机可能存在新版本的EMS应用程序,需要对本地的EMS应用程序进行更新替换。在这种情况下,上位机可能随时会向本地发送EMS应用程序更新指令。
在接收到EMS应用程序更新指令后,可以中止当前正在运行的EMS应用程序,将跳转执行bootloader引导程序。其中,在bootloader引导程序中包括有EMS应用程序的写入程序。在上位机连接到本地后,可以使用将接收到的新版本的EMS应用更新程序更新替换本地的EMS应用程序。
在本实施例中,在bootloader引导程序正常运行的情况下,则运行EMS应用程序。如果接收到所述上位机发送的EMS应用程序更新指令,跳转运行所述bootloader引导程序,根据所述上位机发送的EMS应用更新程序更新所述EMS应用程序。通过使用以上方法,可以实现对EMS应用程序的故障响应和程序版本升级,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
参见图10,该图为本发明提供的一种自动更新的bootloader方法第四实施例的流程图。
本实施例中的步骤S401-S403和S406与自动更新的bootloader方法第三实施例中的步骤S301-S303和S304相同,在此不再重复介绍。
在本实施例中,在所述运行EMS应用程序之前,还包括:
S404:在所述指定时间内等待接收所述上位机发送的EMS应用更新指令。
S405:若在所述指定时间内接收到所述上位机发送的更新EMS应用程序指令,则接收所述上位机发送的EMS应用更新程序更新本地所述EMS应用程序。
在bootloader引导程序正常运行后,开始运行EMS应用程序。
但由于在上位机可能存在新版本的EMS应用程序,因此,可以在EMS应用程序运行前等待一定时间,例如50ms。如果在这段时间窗内接收到上位机40发送的EMS应用更新指令,则认为上位机存在新版本的EMS应用程序,需要对本地EMS应用程序进行更新,根据上位机发送的EMS应用更新程序更新本地的EMS应用程序。如果没有接收到上位机发送的应用更新程序,则继续正常运行EMS应用程序。
在本实施例中,通过在指定时间内等待接收上位机发送的EMS应用更新指令,可以为上位机提供时间窗口进行新版本更新交互,方便了对ECU中EMS应用程序的更新,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
参见图11,该图为本发明提供的一种自动更新的bootloader方法第五实施例的流程图。
本实施例中的步骤S501-S503和S506与自动更新的bootloader方法第三实施例中的步骤S301-S303和S304相同,在此不再重复介绍。
在本实施例中,在所述运行EMS应用程序之前,还包括:
S504:检测所述EMS应用程序是否正确。
S505:若检测到所述EMS应用程序不正确,将所述bootloader引导程序等待状态,接收所述上位机发送的EMS应用更新程序更新本地所述EMS应用程序。
在运行EMS应用程序之前时,为了能够确定EMS应用程序的完整性,可以检测EMS应用程序是否完整,如果检测到EMS应用程序完整,则运行该EMS应用程序。如果检测到EMS应用程序不完整,则认为EMS应用程序受损,可以通过故障灯或消息指令等方式对用户或上位机进行提示,同时,等待上位机发送EMS应用更新程序进行更新操作。
在本实施例中,在运行EMS应用程序之前检测EMS应用程序是否正确,如果检测到EMS应用程序不正确,接收上位机发送的EMS应用更新程序更新本地所述EMS应用程序。通过使用以上方法,可以实现在每次启动EMS应用程序模块前都自动检测EMS应用程序是否完整,能够及时的确定EMS应用程序的问题,并结合EMS应用程序更新子模块实现了对损坏的EMS应用程序的更新更新,避免了现有技术中维护人员需要将ECU开盖进行程序重置的繁琐工作,大大减小了维护人员的工作量。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (15)

1.一种自动更新的bootloader装置,其特征在于,包括:
bootloader引导程序第一模块和bootloader引导程序第二模块;
所述bootloader引导程序第一模块,用于运行bootloader引导程序;
所述bootloader引导程序第二模块,用于接收上位机发送的bootloader引导更新程序,并且根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序第一模块中的bootloader引导程序;
所述bootloader引导程序第二模块安装在所述bootloader引导程序第一模块之后,在所述bootloader引导程序第一模块不能正常运行bootloader引导程序时,顺序运行所述bootloader引导程序第二模块。
2.根据权利要求1所述的装置,其特征在于,所述bootloader引导程序第二模块,还包括:更新失败反馈子模块;
所述更新失败反馈子模块,用于在使用所述上位机发送的bootloader引导更新程序无法正常更新所述bootloader引导程序第一模块中的bootloader引导程序时,向所述上位机发送更新错误信息。
3.根据权利要求1所述的装置,其特征在于,所述bootloader引导程序第二模块,还包括:当前进程反馈子模块;
所述当前进程反馈子模块,用于在接收到所述上位机的查询指令后,向所述上位机反馈当前运行的程序信息。
4.根据权利要求1所述的装置,其特征在于,所述bootloader引导程序第一模块还包括:引导程序更新跳转子模块;
所述引导程序更新跳转模块,用于在接收到所述上位机发送的bootloader引导程序更新指令时,跳转运行所述bootloader引导程序第二模块。
5.根据权利要求1所述的装置,其特征在于,还包括:EMS应用程序模块;
所述EMS应用程序模块,用于在所述bootloader引导程序正常运行后运行EMS应用程序。
6.根据权利要求5所述的装置,其特征在于,所述bootloader引导程序第一模块还包括:EMS应用程序更新子模块;
所述EMS应用程序更新子模块,用于根据上位机发送的EMS应用更新程序更新所述EMS应用程序模块中的EMS应用程序。
7.根据权利要求6所述的装置,其特征在于,所述EMS应用程序模块中还包括:应用程序更新跳转子模块;
所述应用程序更新跳转子模块,用于在接收到所述上位机发送的EMS应用程序更新指令时,跳转运行所述bootloader引导程序第一模块中的EMS应用程序更新子模块。
8.根据权利要求6所述的装置,其特征在于,所述bootloader引导程序第一模块还包括:EMS应用计时加载子模块;
所述EMS应用计时加载子模块,用于在所述EMS应用程序模块运行之前,在指定时间内等待所述上位机发送的所述EMS应用更新指令;所述指定时间为所述上位机发送所述EMS应用更新指令的时间窗。
9.根据权利要求6所述的装置,其特征在于,所述bootloader引导程序第一模块还包括:EMS应用程序检测子模块;
所述EMS应用程序检测子模块,用于检测所述EMS应用程序是否正确,若检测到所述EMS应用程序不正确,将所述bootloader引导程序第一模块设置为等待状态。
10.一种自动更新的bootloader方法,其特征在于,包括:
bootloader引导程序第一模块运行bootloader引导程序;
检测bootloader引导程序是否需要更新;
若所述bootlader引导程序需要更新,bootloader引导程序第二模块接收上位机发送的bootloader引导更新程序,并且根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序第一模块中的bootloader引导程序;
其中,所述bootloader引导程序第二模块安装在所述bootloader引导程序第一模块之后,所述方法还包括:在所述bootloader引导程序第一模块不能正常运行bootloader引导程序时,顺序运行所述bootloader引导程序第二模块。
11.根据权利要求10所述的方法,其特征在于,在所述根据上位机发送的bootloader引导更新程序更新所述bootloader引导程序之后,还包括:
若无法使用所述上位机发送的bootloader引导更新程序更新所述bootloader引导程序,向所述上位机发送更新错误信息。
12.根据权利要求10所述的方法,其特征在于,还包括:
若所述bootloader引导程序正常运行,则运行EMS应用程序。
13.根据权利要求12所述的方法,其特征在于,在运行EMS应用程序之后还包括:
若接收到所述上位机发送的EMS应用程序更新指令,跳转运行所述bootloader引导程序,根据所述上位机发送的EMS应用更新程序更新所述EMS应用程序。
14.根据权利要求12所述的方法,其特征在于,在所述运行EMS应用程序之前,还包括:
在指定时间内等待接收所述上位机发送的EMS应用更新指令;
若在所述指定时间内接收到所述上位机发送的更新EMS应用程序指令,则接收所述上位机发送的EMS应用更新程序更新本地所述EMS应用程序。
15.根据权利要求12所述的方法,其特征在于,在所述运行EMS应用程序之前,还包括:
检测所述EMS应用程序是否正确;
若检测到所述EMS应用程序不正确,将所述bootloader引导程序等待状态,接收所述上位机发送的EMS应用更新程序更新本地所述EMS应用程序。
CN201410153269.3A 2014-04-16 2014-04-16 一种自动更新的bootloader装置及更新方法 Active CN103995712B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410153269.3A CN103995712B (zh) 2014-04-16 2014-04-16 一种自动更新的bootloader装置及更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410153269.3A CN103995712B (zh) 2014-04-16 2014-04-16 一种自动更新的bootloader装置及更新方法

Publications (2)

Publication Number Publication Date
CN103995712A CN103995712A (zh) 2014-08-20
CN103995712B true CN103995712B (zh) 2018-05-04

Family

ID=51309890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410153269.3A Active CN103995712B (zh) 2014-04-16 2014-04-16 一种自动更新的bootloader装置及更新方法

Country Status (1)

Country Link
CN (1) CN103995712B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360877B (zh) * 2014-10-24 2017-12-05 同济大学 基于Bootloader自更新的ECU固件更新方法
CN104391714A (zh) * 2014-10-30 2015-03-04 奇瑞汽车股份有限公司 一种车辆的软件更新方法和装置
CN104699514A (zh) * 2015-04-01 2015-06-10 江苏惠通集团有限责任公司 遥控器端系统的更新方法和装置
CN105468420B (zh) * 2015-12-25 2018-12-28 广州视睿电子科技有限公司 操作系统升级方法和装置
CN106444730B (zh) * 2016-12-19 2022-06-21 普华基础软件股份有限公司 一种防软件僵死的电子控制单元的诊断方法
CN108664256A (zh) * 2017-03-28 2018-10-16 宁德时代新能源科技股份有限公司 系统的固件更新方法、装置和电池管理系统
CN108572839A (zh) * 2018-07-12 2018-09-25 四川虹美智能科技有限公司 智能冰箱系统升级方法、系统、智能冰箱和云端服务器
CN109358892B (zh) * 2018-09-26 2022-04-05 潍柴动力股份有限公司 一种软件版本升级方法及装置
CN109375941B (zh) * 2018-09-29 2022-01-07 延锋伟世通电子科技(南京)有限公司 一种应用于组合仪表的新型主从式flash boot loader软件升级方法
CN111475179B (zh) * 2019-01-23 2023-10-03 北京新能源汽车股份有限公司 一种软件在线刷写方法、装置、电子控制单元及上位机
CN110162321B (zh) * 2019-05-06 2023-07-28 晶晨半导体(上海)股份有限公司 一种引导加载程序的更新方法
CN110209420A (zh) * 2019-08-01 2019-09-06 潍柴动力股份有限公司 一种更新引导加载程序的方法及装置
CN111273928B (zh) * 2019-09-10 2024-02-27 深圳市汇泰科电子有限公司 一种自升级的bootloader设计方法
CN114253567A (zh) * 2020-09-21 2022-03-29 北京海博思创科技股份有限公司 程序更新方法、装置和设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567184A (zh) * 2003-07-03 2005-01-19 英业达股份有限公司 引导程序更新恢复系统及其方法
CN101923500A (zh) * 2010-07-14 2010-12-22 康佳集团股份有限公司 一种嵌入式设备中引导程序备份及更新的方法及装置
CN103226482A (zh) * 2013-03-22 2013-07-31 深圳市九洲电器有限公司 一种机顶盒引导启动方法和装置
CN103246536A (zh) * 2013-04-28 2013-08-14 常州南京大学高新技术研究院 物联定位系统的固件无线升级方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567184A (zh) * 2003-07-03 2005-01-19 英业达股份有限公司 引导程序更新恢复系统及其方法
CN101923500A (zh) * 2010-07-14 2010-12-22 康佳集团股份有限公司 一种嵌入式设备中引导程序备份及更新的方法及装置
CN103226482A (zh) * 2013-03-22 2013-07-31 深圳市九洲电器有限公司 一种机顶盒引导启动方法和装置
CN103246536A (zh) * 2013-04-28 2013-08-14 常州南京大学高新技术研究院 物联定位系统的固件无线升级方法

Also Published As

Publication number Publication date
CN103995712A (zh) 2014-08-20

Similar Documents

Publication Publication Date Title
CN103995712B (zh) 一种自动更新的bootloader装置及更新方法
CN102495744B (zh) 基于can总线的电动汽车电控设备控制软件升级方法
CN101425018B (zh) 基于分段式的嵌入式固件升级方法及装置
CN101281469B (zh) 嵌入式系统及其启动加载的方法
CN105183515B (zh) 云台固件升级的方法及装置
CN101594613A (zh) 终端设备及其升级的方法、系统
CN107659458B (zh) 基于git版本控制的Agent部署升级方法及系统
CN100346290C (zh) 可编程控制器及系统、中央处理器和双重化运转开始方法
CN109710320A (zh) 一种两级驱动的启动引导BootLoader方法
US7681183B2 (en) Method, system, and program product for checking control model and/or control program
CN110196726A (zh) 一种基于cpu+cpld实现fpga程序远程升级加载的方法
KR20200067474A (ko) Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템
CN110377303B (zh) 基于备用存储区方式升级程序的方法及其设备
CN101267645B (zh) 用于w基站业务流程软件开发的自动化测试方法和系统
CN105677424A (zh) 一种基于微内核的组件化开发集成的热加载方法
CN113741940A (zh) 在线升级电动汽车整车控制器bootloader的方法
CN102226888A (zh) 框架加载方法及设备
CN100359485C (zh) 嵌入式系统的测试装置及测试方法
CN1658161A (zh) 具有主用和备用引导程序的系统及启动方法
CN104699569B (zh) 一种mqx操作系统映像结构、mqx操作系统、用电信息采集终端及映像更新方法
CN111459827A (zh) 一种跨平台调试shell的实现方法、装置和计算机
CN110990177A (zh) 故障修复方法、装置、系统、存储介质及电子设备
CN103177213A (zh) 一种软件漏洞修复方法及系统
US11899561B2 (en) Method for operating a control unit when testing software of the control unit, and method for operating a test computer when testing software of a control unit
CN106598686B (zh) 系统分区中实现差分升级调试的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant