CN117170753B - 程序处理方法、程序处理装置、车辆和存储介质 - Google Patents

程序处理方法、程序处理装置、车辆和存储介质 Download PDF

Info

Publication number
CN117170753B
CN117170753B CN202311045798.7A CN202311045798A CN117170753B CN 117170753 B CN117170753 B CN 117170753B CN 202311045798 A CN202311045798 A CN 202311045798A CN 117170753 B CN117170753 B CN 117170753B
Authority
CN
China
Prior art keywords
mode
address
program
keyword
key word
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
CN202311045798.7A
Other languages
English (en)
Other versions
CN117170753A (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.)
Xinqi Co ltd
Original Assignee
Xinqi 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 Xinqi Co ltd filed Critical Xinqi Co ltd
Priority to CN202311045798.7A priority Critical patent/CN117170753B/zh
Publication of CN117170753A publication Critical patent/CN117170753A/zh
Application granted granted Critical
Publication of CN117170753B publication Critical patent/CN117170753B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请涉及一种程序处理方法、程序处理装置、车辆和存储介质,程序处理方法包括:在引导程序模式下,读取共享RAM地址中的第一关键字,根据该第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作,其中,目标程序模式包括引导程序模式和应用程序模式。通过上述方法避免了使用FLASH作为共享区时可能出现的进入某些不确定状态的问题,以及,有效节约资源。

Description

程序处理方法、程序处理装置、车辆和存储介质
技术领域
本申请涉及程序处理技术领域,特别是涉及一种程序处理方法、程序处理装置、车辆和存储介质。
背景技术
随着车辆的智能化发展,软件功能随之不断升级,也让车辆控制器的程序更新操作越来越频繁。现有的车辆控制器的程序更新方案中,都需要在FLASH区内,为引导程序和应用程序选取一块FLASH地址当做共享区(也可以称之为共享FLASH地址),用来存储一些关键信息(如关键字),便于在引导程序模式和应用程序模式下准确识别这些关键信息,从而基于关键信息准确实现程序更新。但是,采用FLASH地址当做共享区,因为FLASH的特性会导致以下问题:1)格式化过程中,如果掉电,则扇区可能进入保护状态,而进入保护状态后,如果程序访问共享FLASH地址就会导致程序异常,进入某些不确定状态;2)FLASH地址较大,一般都是KB级别,而共享FLASH地址的信息量一般是几十个字节以内,这个扇区(用于存放共享FLASH地址的信息的地址所对应的FLASH扇区)的FLASH只能专用于共享数据存储功能,导致资源浪费。
发明内容
基于此,有必要针对上述技术问题,提供一种程序处理方法、程序处理装置、车辆和存储介质。
第一方面,提供一种程序处理方法,所述程序处理方法包括:
在引导程序模式下,读取共享RAM地址中的第一关键字;
根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作;其中,所述目标程序模式包括引导程序模式和应用程序模式。
第二方面,提供一种程序处理装置,所述程序处理装置包括:
读取模块,用于在引导程序模式下,读取共享RAM地址中的第一关键字;
模式确定模块,用于根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作;其中,所述目标程序模式包括引导程序模式和应用程序模式。
第三方面,提供一种车辆,所述车辆包括控制器,所述控制器用于执行第一方面所述的程序处理方法的步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的程序处理方法的步骤。
上述程序处理方法、程序处理装置、车辆和存储介质,程序处理方法包括:在引导程序模式下,读取共享RAM地址中的第一关键字,根据第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作,其中,目标程序模式包括引导程序模式和应用程序模式。其中,因为使用RAM作为共享RAM地址,并将第一关键字存储于共享RAM地址,由于RAM是易失性存储器,掉电后数据会丢失,RAM不会进入保护状态,因此,避免了使用FLASH作为共享区时可能出现的进入某些不确定状态的问题。此外,由于RAM地址较小,共享RAM地址的信息量是几十个字节以内,用共享RAM地址存储第一关键字等数据,可以有效节约资源。
附图说明
图1为一个实施例中程序处理方法的流程图;
图2为一个实施例中RAM区和FIASH区的内存分配示意图;
图3为一个实施例中周期任务调度的流程图;
图4为另一个实施例中程序处理方法的流程图;
图5为一个实施例中程序处理装置的结构图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种程序处理方法,所述程序处理方法包括:
步骤S101,在引导程序模式下,读取共享RAM地址中的第一关键字。
步骤S102,根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作;其中,所述目标程序模式包括引导程序模式和应用程序模式。
在本发明实施例中,每次控制器上电(也可以称之为系统上电)后,控制器开始运行于引导程序模式,在该模式下,会读取共享RAM地址中的第一关键字。
其中,共享RAM地址是一个处理器内部的一块掉电就丢失数据的存储地址,是一个固定地址。根据设计需求,划分了一个地址区间用来做功能规划,引导程序可以使用,应用程序也可以使用,属于共同使用的地址,所以称之为共享RAM地址。其中,访问、检测、清除等行为都是对这个地址的操作。
其中,第一关键字也可称之为编程数据标志,该第一仅表示一个区别作用,第一关键字存储于共享RAM地址中。第二关键字也可称之为数据有效标志,该第二仅表示一个区别作用,第二关键字存储于FIASH地址中。
其中,第一关键字可以用于引导程序和应用程序之间的跳转判断,以确定系统应该运行在引导程序模式还是应用程序模式。通过检查第一关键字的状态,系统可以决定是否需要进行程序更新或其他特定的编程操作。
在本发明实施例中,可以根据第一关键字和FIASH地址中的第二关键字进入目标程序模式,或者,根据第一关键字进入目标程序模式。
其中,RAM区和FIASH区的内存分配如图2所示,RAM区分别包括共享RAM地址(即第一关键字存放地址)和其他地址(即其他用途的地址)。FIASH区分别包括引导程序存放地址、第二关键字存放地址和应用程序存放地址。本申请可以以SPC563M系列芯片为依托,将RAM区预留一个128个字节的空间,将该128个字节的空间作为共享RAM地址,主要用于存放第一关键字,通过准确识别出该第一关键字,提高程序跳转的安全性。该第一关键字主要用于在应用程序阶段写入,在引导程序模式下,可识别使用并清除该第一关键字,属于易失性数据。将SPC563M的FIASH区预留出128字节的空间,作为上述的FIASH地址,其主要存放第二关键字,通过准确识别第二关键字,提高跳转的安全性。
其中,当第一关键字无效时,清除存放在上述共享RAM地址里的信息。
在本发明实施例中,因此使用RAM作为共享RAM地址,并将第一关键字存储于共享RAM地址,由于RAM是易失性存储器,掉电后数据会丢失,RAM不会进入保护状态,因此,避免了使用FLASH作为共享区时可能出现的进入某些不确定状态的问题。此外,由于RAM地址较小,共享RAM地址的信息量是几十个字节以内,用共享RAM地址存储第一关键字等数据,可以有效节约资源。
此外,因为RAM的掉电易丢失特性,如果发生严重错误,修复逻辑也无法处理的时候,则只要掉电复位一次,即可清除之前的错误。当然前提是这个严重错误是可以通过掉电恢复的。
此外,使用共享RAM地址作为引导程序模式和应用程序模式间的共享地址,其存储了第一关键字,而RAM是易失性存储器,其数据在掉电或软件复位后会被清除,当系统上电或软件复位时,RAM中存储的数据将被重置为初始状态,即数据被清除,无需额外的擦除操作,因此,数据清除时不需要擦除整个扇区,解决了数据清除耗时较长的问题,且RAM的读写速度快,也可以提高程序执行的效率。解决了现有技术中每次数据清除时,都需要擦除整个扇区,耗时较长的技术问题。
可选地,在进入目标程序模式(也可称之为运行于目标程序模式)后,如,当运行于引导程序模式,执行共享RAM地址的初始化操作,之后,可基于程序更新指令执行程序更新。进一步的,程序更新后,在第二关键字的地址内写入有效的第二关键字,并跳转至应用程序模式。
可选地,跳转至应用程序模式后,当需要进行程序更新时,且当前条件满足跳转至引导程序模式的条件,设置第一关键字为有效,启动软件复位,之后程序运行于引导程序模式,并基于程序更新指令执行程序更新。
在可选的一个实施例中,所述读取共享RAM地址中的第一关键字,之后还包括:
当进入内核异常中断,修正当前的异常访问地址,并初始化所述共享RAM地址,设置所述第一关键字为无效。
当未进入内核异常中断,执行所述根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作的步骤。
其中,进入内核异常中断可以是进入IVOR1/2中断。进入内核异常中断是一种被动行为,比如,访问、读取、写入当前的访问地址,如果当前的访问地址没有初始化,则就会进入IVOR1/2中断。其中,在内核异常中断中,可以通过读取特殊寄存器知道当前是因为什么地址导致异常,这个地址就称之为异常访问地址。
其中,修正当前的异常访问地址表示为将当前控制器的执行地址增加1,不执行当前的访问地址,执行下一个取址指令,访问下一个地址。
在本发明实施例中,读取共享RAM地址中的第一关键字后,判断是否进入内核异常中断,当进入内核异常中断,修正当前的异常访问地址,并初始化该共享RAM地址,设置第一关键字为无效,当未进入内核异常中断,则执行所述根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作的步骤。
在可选的一个实施例中,当进入内核异常中断,修正当前的异常访问地址,并初始化所述共享RAM地址,具体包括:
当进入内核异常中断,判断当前的异常访问地址是否为所述第一关键字的地址。
当当前的异常访问地址为所述第一关键字的地址,设置初始化标志有效,修正当前的异常访问地址,并初始化所述共享RAM地址。
当当前的异常访问地址不为所述第一关键字的地址,修正当前的异常访问地址,并初始化所述共享RAM地址。
其中,初始化标志为一个表示有效性的标志位,作用是用来指示共享RAM地址的状态。如果初始化标志为有效,表示共享RAM地址需要进行初始化操作,如果初始化标志为无效,表示共享RAM地址已经修正或不需要进一步的处理。
在可选的一个实施例中,所述在引导程序模式下,读取共享RAM地址中的第一关键字,之前还包括:
设置初始化标志无效。
在本发明实施例中,在控制器上电或者软件复位后,会设置初始化标志无效。其中,设置初始化标志无效是表示在运行开始将初始化标志置为一个无效状态,保持一个确定状态,便于与后面置为有效状态做区分。
在可选的一个实施例中,所述根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式,包括:
判断所述第一关键字是否有效,且所述初始化标志是否无效。
当所述第一关键字有效且所述初始化标志无效,则将所述第一关键字设置为无效,并运行于所述引导程序模式。
其中,可以预设一个标志为11,则当前的第一关键字为11的时候,其和预设的标志匹配,则表示第一关键字有效。
在本发明实施例中,当第一关键字有效且初始化标志无效的时候,将第一关键字设置为无效,并继续运行于引导程序模式。
当所述第一关键字无效,和/或,所述初始化标志有效,读取所述FIASH地址中的第二关键字;判断所述第二关键字是否满足预设的模式跳转条件;当所述第二关键字满足所述模式跳转条件,则从所述引导程序模式跳转到所述应用程序模式;当所述第二关键字不满足所述模式跳转条件,则运行于所述引导程序模式。
其中,第二个关键字的设计中,前8个字节是固定的数据,后8个字节是前8个字节的累加和做固定偏移规则得到的数据。其满足预设的模式跳转条件可以是将第二关键字和预设的一些数据进行比对,当比对一致的时候,则满足预设的模式跳转条件。
在本发明实施例中,当出现下述三种情况,当第一关键字无效,或,初始化标志有效,或,第一关键字无效且初始化标志有效,则读取FIASH地址中的第二关键字。其中,该第二关键字主要用于在引导程序模式的写入和识别,属于非易失性数据。
其中,当跳转到应用程序模式下,初始化共享RAM地址,并设置第一关键字为无效。这样做的目的是,因为共享RAM地址没有初始化,读取共享RAM地址的时候,会进入内核异常中断,所以在应用模式下,直接对共享RAM地址进行初始化,为后面如果存在编程请求需要设置第一关键字的时候,可以成功执行数据写入。
在可选的一个实施例中,在跳转到应用程序模式下,初始化共享RAM地址,并设置第一关键字设置为无效之后,会进入周期任务调度阶段。其中,在周期任务调度阶段,需要执行如图3的操作:
步骤S301,调用程序更新查询接口。
其中,调用程序更新查询接口用于查询是否有程序更新请求。
步骤S302,判断是否执行编程操作。
其中,判断是否执行编程操作就是检测是否有请求程序更新的时间发生,如果发生了,即执行编程操作,执行步骤S303。
步骤S303,判断设备参数是否满足预设的编程条件。当设备参数满足编程条件,则执行步骤S304。
步骤S304,在所述共享RAM地址内写入有效的第一关键字,并执行软件复位操作。
其中,判断设备参数是否满足预设的编程条件,当设备参数满足编程条件,在共享RAM地址内写入有效的第一关键字,并执行软件复位操作。之后,进入引导程序模式。其中,该过程为在初始化阶段的流程。
其中,该编程条件是预设的检测条件,可根据各厂家需求设计不一样的检测条件。设备参数可以是车辆的一些参数,如,车速或者系统电压。编程条件可以为车速是否为0km/h、系统电压是否正常等。
在本发明实施例中,在跳转到应用程序模式下(即程序运行在应用程序模式下),当控制器接收到应用程序更新指令后,应用程序检测车速是否为0km/h,或者,系统电压是否正常等。当车速为0km/h,或者,系统电压正常,即表示设备参数满足预设的编程条件,则在共享RAM地址内写入有效的第一关键字,之后执行软件复位操作。在软件复位后,进入引导程序模式,执行引导程序模式下的操作。
其中,当不执行编程操作,或,当设备参数不满足编程条件,则返回执行所述调用程序更新查询接口的步骤。
其中,当判断不执行编程操作时,或,当设备参数不满足编程条件时,均会退出当前的周期任务调度。可选地,会在预设时段后再次执行周期任务调度,调用程序更新查询接口,判断是否执行编程操作等。
其中,当设备参数满足编程条件,在共享RAM地址内写入有效的第一关键字,并执行软件复位操作后,也会退出当前的周期任务调度。可选地,会在预设时段后再次执行周期任务调度,调用程序更新查询接口,判断是否执行编程操作等。
如图4所示,为另一个实施例中的程序处理方法的流程图,包括:
步骤S401,控制器上电,或,软件复位。
步骤S402,设置初始化标志无效。
步骤S403,读取共享RAM地址中的第一关键字。
步骤S404,判断是否进入内核异常中断。其中,进入内核异常中断是一种被动行为。当进入内核异常中断,执行步骤S405。当未进入内核异常中断,执行步骤S409。
步骤S405,判断当前的异常访问地址是否为所述第一关键字的地址。当当前的异常访问地址为第一关键字的地址,执行步骤S406。当当前的异常访问地址不为第一关键字的地址,直接执行步骤S407。
步骤S406,设置初始化标志有效。之后,执行步骤S407。
步骤S407,修正当前的异常访问地址,并初始化所述共享RAM地址。
步骤S408,设置第一关键字为无效。之后,执行步骤S409。
步骤S409,判断所述第一关键字是否有效,且所述初始化标志是否无效。当所述第一关键字有效且所述初始化标志无效,则执行步骤S410。当所述第一关键字无效,和/或,所述初始化标志有效,则执行步骤S411。
步骤S410,将第一关键字设置为无效。之后执行步骤S414。
步骤S411,读取所述FIASH地址中的第二关键字。
步骤S412,判断所述第二关键字是否满足预设的模式跳转条件。当所述第二关键字满足所述模式跳转条件,则执行步骤S413。当所述第二关键字不满足所述模式跳转条件,则执行步骤S414。
步骤S413,从所述引导程序模式跳转到所述应用程序模式。
步骤S414,运行于所述引导程序模式。
其中,设置第一关键字为无效的行为(如步骤S408,步骤S410中)即表示清除共享RAM地址内的信息,也就是设置第一关键字的内容为无效。
在本发明实施例中,每次断电复位(控制器上电)后再读取共享RAM地址的数据,都会导致进入内核异常,这样就可以直接不管共享RAM地址的数据。在编程模式下,设计了超时响应,达到超时后,会再次断电复位。软件复位的行为也是会存在数据无效的,因为只有编程行为触发,才会写入有效的数据。
在本实施中,相关特征和方案的解释描述参见上文,此处不加以详细赘述。
本申请可以以SPC563M系列芯片为依托,使用共享RAM地址作为引导程序模式和应用程序模式间的共享地址,其存储了第一关键字,以FLASH的某一特定地址为初始化标志的存储地址。本申请依据RAM地址的易失性,掉电再上电后,不初始化RAM地址,如果访问共享RAM地址,会触发IVOR1/2异常中断。而软件复位不会进入IVOR1/2异常中断,当然前提是访问的RAM地址中的数据并未出现异常。所以对于第一关键字的存放地址,需要IVOR1/2的异常中断中进行独立识别,属于共享RAM地址范围内的异常,才允许程序退出该异常中断,否则不允许退出该异常中断。
在本发明实施例中,引导程序的设计包括初始化阶段和运行阶段。
其中,初始化阶段包括:
(1)上电或软件复位后,引导程序的第一关键字检测阶段:不初始化共享RAM地址,定义初始化标志的初始状态为无效。其中,如果此时初始化共享RAM地址,数据就丢失了。
(2)开启内核异常中断检测:判断是否进入内核异常中断,设计内核异常中断中关于第一关键字的RAM异常修正退出逻辑,设置初始化标志为有效。
(3)读取第一关键字,读取完成后,如果初始化标志为有效,则初始化共享RAM地址,并设置第一关键字为无效。其中,如果初始化标志为无效并且得到的第一关键字通过预设的逻辑验证,则第一关键字设为有效,写入特定无效数据,如,在第一关键字的地址写入如0xFFFFFFFF这样的无效数据。
(4)如果第一关键字为有效,则该程序继续处于引导程序模式下,等待其他程序更新指令。如果第一关键字为无效,则读取第二关键字,读取完成后,并对第二关键字进行相应的逻辑验证,如果通过,则表明可以进入应用程序运行,直接跳转进入应用程序模式。如果第二关键字相应的逻辑验证不通过,则程序继续处于引导程序模式下。
运行阶段:
(1)在运行阶段,如果当前无程序更新指令,当启动超时时间达到设定值,则启动软件复位的微控制器(Microcontroller Unit,MCU)。
(2)如果执行程序更新,则在更新校验完毕后,在第二关键字的地址内写入有效的第二关键字,并跳转至应用程序模式。
在本发明实施例中,应用程序的设计如下:
(1)初始化共享RAM地址,并在共享RAM地址写入固定数据,该固定数据的验证使第一关键字无法通过逻辑验证。
(2)当需要进行程序更新时,且当前条件满足跳转至引导程序模式的条件,设置第一关键字为有效,该第一关键字满足预设的逻辑验证,可以通过引导程序的初始化阶段的3)的逻辑验证。
(3)设计其他回复响应(其他回复响应表示软件工程的其他功能模块的行为),待其他回复响应完成后,启动软件复位。
(4)软件复位后程序开始执行引导程序,处于引导程序模式下。
应该理解的是,虽然图1、图3和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、图3和图4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种程序处理装置,包括:
读取模块,用于在引导程序模式下,读取共享RAM地址中的第一关键字;
模式确定模块,用于根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作;其中,所述目标程序模式包括引导程序模式和应用程序模式。
在可选的一个实施例中,所述读取共享RAM地址中的第一关键字,之后还包括:
当进入内核异常中断,修正当前的异常访问地址,并初始化所述共享RAM地址;
设置所述第一关键字为无效。
在可选的一个实施例中,所述当进入内核异常中断,修正当前的异常访问地址,并初始化所述共享RAM地址,包括:
当进入内核异常中断,判断当前的异常访问地址是否为所述第一关键字的地址;
当当前的异常访问地址为所述第一关键字的地址,设置初始化标志有效,修正当前的异常访问地址,并初始化所述共享RAM地址;
当当前的异常访问地址不为所述第一关键字的地址,修正当前的异常访问地址,并初始化所述共享RAM地址。
在可选的一个实施例中,当未进入内核异常中断,执行所述根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作的步骤。
在可选的一个实施例中,所述在引导程序模式下,读取共享RAM地址中的第一关键字,之前还包括:
设置初始化标志无效。
在可选的一个实施例中,所述根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式,包括:
判断所述第一关键字是否有效,且所述初始化标志是否无效;
当所述第一关键字有效且所述初始化标志无效,则将所述第一关键字设置为无效,并运行于所述引导程序模式。
在可选的一个实施例中,当所述第一关键字无效,和/或,所述初始化标志有效,读取所述FIASH地址中的第二关键字;
判断所述第二关键字是否满足预设的模式跳转条件;
当所述第二关键字满足所述模式跳转条件,则从所述引导程序模式跳转到所述应用程序模式;
当所述第二关键字不满足所述模式跳转条件,则运行于所述引导程序模式。
在可选的一个实施例中,当跳转到所述应用程序模式后,初始化所述共享RAM地址,并设置所述第一关键字为无效。
在可选的一个实施例中,调用程序更新查询接口,判断是否执行编程操作;
当执行编程操作,判断设备参数是否满足预设的编程条件;
当所述设备参数满足所述编程条件,在所述共享RAM地址内写入有效的第一关键字,并执行软件复位操作;
当不执行编程操作,或,当所述设备参数不满足所述编程条件,则返回执行所述调用程序更新查询接口的步骤。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种程序处理方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种车辆,所述车辆包括控制器,所述控制器用于执行上述任一个实施例所述的程序处理方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一个实施例所述的程序处理方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种程序处理方法,其特征在于,所述程序处理方法包括:
在引导程序模式下,读取共享RAM地址中的第一关键字;
根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作;其中,所述目标程序模式包括引导程序模式和应用程序模式;
其中,所述根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式,包括:
判断所述第一关键字是否有效,且初始化标志是否无效;
当所述第一关键字有效且所述初始化标志无效,则将所述第一关键字设置为无效,并运行于所述引导程序模式;
当所述第一关键字无效,和/或,所述初始化标志有效,读取所述FIASH地址中的第二关键字;
判断所述第二关键字是否满足预设的模式跳转条件;
当所述第二关键字满足所述模式跳转条件,则从所述引导程序模式跳转到所述应用程序模式;
当所述第二关键字不满足所述模式跳转条件,则运行于所述引导程序模式。
2.根据权利要求1所述的程序处理方法,其特征在于,所述读取共享RAM地址中的第一关键字,之后还包括:
当进入内核异常中断,修正当前的异常访问地址,并初始化所述共享RAM地址;
设置所述第一关键字为无效。
3.根据权利要求2所述的程序处理方法,其特征在于,所述当进入内核异常中断,修正当前的异常访问地址,并初始化所述共享RAM地址,包括:
当进入内核异常中断,判断当前的异常访问地址是否为所述第一关键字的地址;
当当前的异常访问地址为所述第一关键字的地址,设置初始化标志有效,修正当前的异常访问地址,并初始化所述共享RAM地址;
当当前的异常访问地址不为所述第一关键字的地址,修正当前的异常访问地址,并初始化所述共享RAM地址。
4.根据权利要求2所述的程序处理方法,其特征在于,所述方法还包括:
当未进入内核异常中断,执行所述根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作的步骤。
5.根据权利要求1至4任一项权利要求所述的程序处理方法,其特征在于,所述在引导程序模式下,读取共享RAM地址中的第一关键字,之前还包括:
设置初始化标志无效。
6.根据权利要求1所述的程序处理方法,其特征在于,当跳转到所述应用程序模式后,所述方法还包括:
初始化所述共享RAM地址,并设置所述第一关键字为无效。
7.根据权利要求6所述的程序处理方法,其特征在于,所述方法还包括:
调用程序更新查询接口,判断是否执行编程操作;
当执行编程操作,判断设备参数是否满足预设的编程条件;
当所述设备参数满足所述编程条件,在所述共享RAM地址内写入有效的第一关键字,并执行软件复位操作;
当不执行编程操作,或,当所述设备参数不满足所述编程条件,则返回执行所述调用程序更新查询接口的步骤。
8.一种程序处理装置,其特征在于,所述程序处理装置包括:
读取模块,用于在引导程序模式下,读取共享RAM地址中的第一关键字;
模式确定模块,用于根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式并执行程序更新操作;其中,所述目标程序模式包括引导程序模式和应用程序模式;
其中,所述根据所述第一关键字,和/或,FIASH地址中的第二关键字,进入目标程序模式,包括:
判断所述第一关键字是否有效,且初始化标志是否无效;
当所述第一关键字有效且所述初始化标志无效,则将所述第一关键字设置为无效,并运行于所述引导程序模式;
当所述第一关键字无效,和/或,所述初始化标志有效,读取所述FIASH地址中的第二关键字;
判断所述第二关键字是否满足预设的模式跳转条件;
当所述第二关键字满足所述模式跳转条件,则从所述引导程序模式跳转到所述应用程序模式;
当所述第二关键字不满足所述模式跳转条件,则运行于所述引导程序模式。
9.一种车辆,其特征在于,所述车辆包括控制器,所述控制器用于执行所述权利要求1至7任一项所述的程序处理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的程序处理方法的步骤。
CN202311045798.7A 2023-08-18 2023-08-18 程序处理方法、程序处理装置、车辆和存储介质 Active CN117170753B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311045798.7A CN117170753B (zh) 2023-08-18 2023-08-18 程序处理方法、程序处理装置、车辆和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311045798.7A CN117170753B (zh) 2023-08-18 2023-08-18 程序处理方法、程序处理装置、车辆和存储介质

Publications (2)

Publication Number Publication Date
CN117170753A CN117170753A (zh) 2023-12-05
CN117170753B true CN117170753B (zh) 2024-04-09

Family

ID=88929016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311045798.7A Active CN117170753B (zh) 2023-08-18 2023-08-18 程序处理方法、程序处理装置、车辆和存储介质

Country Status (1)

Country Link
CN (1) CN117170753B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010056103A (ko) * 1999-12-14 2001-07-04 서평원 시스템에서 부팅 및 수행 프로그램을 공유하는 플래시메모리 및 그 메모리 갱신 방법
CN104331305A (zh) * 2014-10-15 2015-02-04 联合汽车电子有限公司 产品中应用程序的刷新配置方法
CN105608370A (zh) * 2015-12-30 2016-05-25 科力远混合动力技术有限公司 一种ecu程序刷写和检测方法
CN109582370A (zh) * 2018-11-01 2019-04-05 浙江大华技术股份有限公司 一种nor flash嵌入式设备的启动方法及装置
CN112463230A (zh) * 2020-11-23 2021-03-09 浙江地芯引力科技有限公司 程序运行方法及装置、电子设备、存储介质
CN113778485A (zh) * 2021-09-07 2021-12-10 珠海格力电器股份有限公司 电子芯片的系统运行方法、装置、电子芯片和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348677A (ja) * 2003-05-26 2004-12-09 Sony Corp プログラムおよび情報処理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010056103A (ko) * 1999-12-14 2001-07-04 서평원 시스템에서 부팅 및 수행 프로그램을 공유하는 플래시메모리 및 그 메모리 갱신 방법
CN104331305A (zh) * 2014-10-15 2015-02-04 联合汽车电子有限公司 产品中应用程序的刷新配置方法
CN105608370A (zh) * 2015-12-30 2016-05-25 科力远混合动力技术有限公司 一种ecu程序刷写和检测方法
CN109582370A (zh) * 2018-11-01 2019-04-05 浙江大华技术股份有限公司 一种nor flash嵌入式设备的启动方法及装置
CN112463230A (zh) * 2020-11-23 2021-03-09 浙江地芯引力科技有限公司 程序运行方法及装置、电子设备、存储介质
CN113778485A (zh) * 2021-09-07 2021-12-10 珠海格力电器股份有限公司 电子芯片的系统运行方法、装置、电子芯片和存储介质

Also Published As

Publication number Publication date
CN117170753A (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
KR100444537B1 (ko) 데이타처리장치
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
US6587916B2 (en) Microcomputer with built-in programmable nonvolatile memory
US7925821B2 (en) Nonvolatile semiconductor storage device and method of managing the same
JPH10207768A (ja) エンジン動作中におけるフラッシュ・メモリにアクセスするための方法および装置
JP2008009721A (ja) 評価システム及びその評価方法
CN101645046A (zh) 一次性可编程存储器仿真
CN114721493B (zh) 芯片启动方法、计算机设备及可读存储介质
CN115017058A (zh) 一种内核模块的测试方法、装置、电子设备及存储介质
US7096351B2 (en) Single-chip microcomputer and boot region switching method thereof
CN117170753B (zh) 程序处理方法、程序处理装置、车辆和存储介质
CN116578327B (zh) 一种程序更新方法、装置及电子设备和存储介质
JP2000293440A (ja) 制御装置のメモリ機能保護方法及び制御装置
CN115248658A (zh) 数据存储方法、装置、衣物处理设备及存储介质
KR20050076156A (ko) 플래시 메모리의 데이터 복구 장치 및 방법
CN108984347B (zh) 一种基于Linux系统的嵌入式设备重启状态记录方法
JP5541194B2 (ja) フラッシュメモリに対してデータの読み出しおよび書き込みを行う制御装置
JP2018028830A (ja) 電子制御装置およびその情報記憶方法
CN113836600B (zh) 一种Embedded Flash误写保护方法
JP2008047155A (ja) 一括消去型不揮発性メモリおよび携帯電話
CN110865906B (zh) 一种电机初始位置角度存储方法、装置、车辆及存储介质
JP6040895B2 (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法
CN108628699B (zh) 一种基于ecc的flash数据异常处理方法及装置
CN114138314A (zh) 一种cpu微码升级方法、系统及相关组件
CN112634964A (zh) 电子控制单元的数据写入方法、装置、设备及存储介质

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