CN118226836A - 控制器变量读写方法、装置、车辆控制器和介质 - Google Patents
控制器变量读写方法、装置、车辆控制器和介质 Download PDFInfo
- Publication number
- CN118226836A CN118226836A CN202410306244.6A CN202410306244A CN118226836A CN 118226836 A CN118226836 A CN 118226836A CN 202410306244 A CN202410306244 A CN 202410306244A CN 118226836 A CN118226836 A CN 118226836A
- Authority
- CN
- China
- Prior art keywords
- read
- write
- controller
- target address
- variable
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
- G05B23/0213—Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种控制器变量读写方法、装置、车辆控制器和可读存储介质。方法由待测控制器执行,包括:接收读写请求端发送的读写操作信息,并对读写操作信息进行解析得到读写指令;读写指令包括待读写变量在待测控制器的存储单元中的目标地址以及读写信息;读写信息包括读取指令和写入指令其中之一;写入指令包括待读写变量的目标值;在判定目标地址合法后,对目标地址进行读取或将目标值写入目标地址;根据预先设定的数据交互协议将读写结果反馈至读写请求端。本发明无须增加任何硬件成本,能够显著减少控制器软件测试过程中的时间和人力成本,而且可以读取底层软件中的全局变量,从而显著缩短控制器软件的测试周期并提高测试效率。
Description
技术领域
本发明涉及控制器测试技术领域,特别涉及一种控制器变量读写方法、装置、车辆控制器和可读存储介质。
背景技术
在汽车控制器的软件开发、测试以及售后问题排查的过程中,常常需要让软件运行在特定的逻辑并不断更改输入变量的数值,以验证软件相关逻辑的正确性。目前,主要通过以下两种方式:
(1)使用专业的芯片调试器
使用专业的芯片调试器,只需在将芯片调试器连接电脑后,通过芯片调试器实时对待测控制器软件的变量进行读写操作,通过读写待测控制器的RAM(random-accessmemory,内存,也称为随机存储器)就可对待测控制器软件进行调试与测试,看似简单易行。然而,对于芯片调试器的使用有着较为严格的限制条件:首先,专业的芯片调试器不仅价格非常昂贵,而且不同的控制器(比如采用的芯片不同)往往需要不同的芯片调试器,这就导致某一类型的芯片调试器的数量有限,其真实的使用频率其实并不高;其次,使用芯片调试器对待测控制器软件调试需要专业的操作人员(通常只有底层软件工程师才掌握相关测试技能),不仅上手难度较高,而且若操作不当,可能会造成待测控制器的永久性损坏。这对于其他非专业人员(如售后质量、标定工程师等)来说并不适用,这也限制了芯片调试器的使用范围。最后,需要将芯片调试器连接在待测控制器的芯片的调试端口(比如JTAG,JointTest Action Group)上,而通常情况下,控制器都有气密性与防水等级的要求,这就需要对控制器进行“开盖”操作。开盖就意味着待测控制器及相关功能电路模块的报废,因此芯片调试器也不适用于售后件的问题调试。
(2)制作测试软件,模拟待测试情景
具体地,可以先专门制作一版对应待测逻辑并修改特殊变量的临时测试软件,提供给测试工程师对待测控制器软件进行测试。通常情况下软件工程师会把需要更改的变量赋予一个可变标定量来实现这一操作。而该方法存在以下两个弊端:一方面,现如今汽车软件的编译过程往往非常复杂,一次编译少则需要几十分钟,多则数小时,常常给开发以及测试人员带来不便。另一方面,这种临时测试软件由于仅针对待测控制器软件中的特定待测逻辑且修改的是针对该特定待测逻辑相关的特殊变量,因此,临时测试软件的编译只是一次性的操作,若再测试待测控制器软件中的另一段待测逻辑,或者需要调整另一个变量的数值时,就需要软件工程师重新编译临时测试软件(通常情况下,测试软件集成在汽车软件中)。这样的临时测试软件在整个项目开发、测试周期中,可能要制作上百次之多,最终可能导致测试所需的时间甚至比开发的时间还要漫长,费时且费力。
除此之外,在进行控制器软件的测试时,也常常借助XCP(Universal CalibrationProtocol)标定协议在线修改待测控制器软件的标定量(芯片的标定数据段)。XCP标定协议是汽车控制器必备的基础通讯协议,它可以帮助软件开发人员在线更改待测控制器软件中的标定量,以及读取A2L(ASAM MCD-2MC Language,标定量描述文件)文件中所定义的RAM中的变量数值。相比于专业的芯片调试器而言,标定设备的价格低廉,运用范围广,上手简单,可以说是汽车电子从业人员的必备技能。然而,XCP标定协议依然存在着诸多限制。举例而言,使用标定设备只能读取定义在A2L文件中定义的变量,而这种变量一般只存在于应用层软件(ASW,Application Software)中,对于底层软件(BSW,Basic Software)中的全局变量(不在A2L文件中,只存在于MAP文件中,MAP文件是测试软件经编译器编译之后,生成的程序、数据及IO空间信息的一种映射文件),由于不在A2L文件上,通过标定设备就无法直接读取。不仅如此,测试软件也不能像芯片调试器那样,直接修改RAM区域内的变量。
需要说明的是,公开于该发明背景技术部分的信息仅仅旨在加深对本发明一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
发明内容
本发明的目的在于在控制器软件测试时现有技术中存在的芯片控制器价格昂贵、对操作人员要求高、可能会造成待测控制器的永久性损坏及适用场景有限、临时测试软件效率低及无法读取底层软件中的全局变量等其中的一个或多个问题,提供一种控制器变量读写方法、装置、车辆控制器和介质,本发明无需增加任何硬件成本,不仅能够显著减少控制器软件测试过程中的时间和人力成本,而且可以读取底层软件中的全局变量,从而显著缩短控制器软件的测试周期并提高测试效率。
为了达到上述目的,本发明通过以下技术方案实现,一种控制器变量读写方法,由待测控制器执行,所述控制器变量读写方法,包括:
接收读写请求端发送的读写操作信息,并对所述读写操作信息进行解析得到读写指令;所述读写指令包括待读写变量在所述待测控制器的存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;
在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;
根据预先设定的数据交互协议将读写结果反馈至所述读写请求端。
可选地,控制器变量读写方法,还包括:
使能所述待测控制器的标定测试开关;
所述判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址,包括:
判定所述标定测试开关是否为使能状态,若是,则在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址。
可选地,判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址,包括:
按照预设读写周期,对接收到的每一个所述读写指令,执行以下步骤:
判断所述待读写变量的所述目标地址是否在所述存储单元的有效地址范围内:
若是,则判定所述目标地址合法;并执行以下操作之一:
根据所述目标地址,读取所述待读写变量在所述存储单元中的实时值以及将所述读写结果设置为所述实时值;
或者将所述目标值写入所述存储单元中的所述目标地址处以及根据写入操作的返回结果将所述读写结果设置为写入成功或写入失败;
若否,则将所述读写结果设置为无效操作。
可选地,所述将所述目标值写入所述目标地址,包括:
采用写冲突预设规避策略将所述目标值写入所述目标地址。
可选地,所述采用写冲突预设规避策略将所述目标值写入所述目标地址,包括:
在对所述目标地址有写入操作的功能模块对所述目标地址的写入操作全部完成之后,再将所述目标值写入所述目标地址。
可选地,所述采用写冲突预设规避策略将所述目标值写入所述目标地址,包括:
失能对所述目标地址有写入操作的功能模块;
将所述目标值写入所述目标地址。
可选地,所述预先设定的数据交互协议包括XCP标定协议;所述待测控制器包括车辆控制器;
所述根据预先设定的数据交互协议将读写结果反馈至所述读写请求端,包括:
将所述读写反馈结果写回至在A2L文件对应的预设标定变量中,并通过所述车辆控制器的XCP通信接口返回至所述读写请求端。
为了实现上述目的,本发明还提供了一种设置在待测控制器内的控制器变量读写装置,所述控制器变量读写装置包括:
读写指令接收模块,被配置为接收读写请求端发送的读写操作信息,并对所述读写操作信息进行解析得到读写指令;所述读写指令包括待读写变量在所述待测控制器的存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;
读写指令执行模块,被配置为在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;
读写结果反馈模块,被配置为根据预先设定的数据交互协议将读写结果反馈至所述读写请求端。
为了实现上述目的,本发明还提供了一种车辆控制器,所述车辆控制器包括XCP通信接口、XCP标定协议栈、读写处理模块以及存储单元;
所述XCP通信接口,被配置为接收读写请求端发送的读写操作信息,并将所述读写操作信息发送至所述XCP标定协议栈;
所述XCP协议标定栈,被配置为对所述读写操作信息进行解析,得到所述读写指令,并将所述读写指令发送至所述读写处理模块;所述读写指令包括待读写变量在所述存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;
所述读写处理模块,被配置为在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;以及通过所述XCP通信接口将读写结果反馈至所述读写请求端。
为了实现上述目的,本发明还提供了另一种车辆控制器,所述车辆控制器包括上述的控制器变量读写装置;或者所述车辆控制器包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现如上述任一项所述的控制器变量读写方法。
为了实现上述目的,本发明还提供了一种可读存储介质,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一项所述的控制器变量读写方法。
与现有技术相比,本发明提供的控制器变量读写方法、装置、车辆控制器和可读存储介质,具有以下优点:
本发明提供的控制器变量读写方法,由待测控制器执行,所述控制器变量读写方法,首先接收读写请求端发送的读写操作信息,并对所述读写操作信息进行解析得到读写指令;所述读写指令包括待读写变量在所述待测控制器的存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;然后在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;最后根据预先设定的数据交互协议将读写结果反馈至所述读写请求端。由此,本发明提供的控制器变量读写方法,由待测控制器(比如车辆控制器)执行,无须增加任何硬件成本,就能够根据读写请求端发送的读写操作信息(读取待读取变量的实时值或写入目标变量的目标值或使能/失能标定测试开关),执行相应的读取或写入操作,不仅能够显著减少控制器软件测试过程中的时间和人力成本,而且可以读取底层软件中的全局变量,从而显著缩短控制器软件的测试周期并提高测试效率。进一步地,本发明提供的控制器变量读写方法,仅对判定所述目标地址合法后的待读取变量进行读取或写入对应的目标值,从而不仅能有效避免对非法目标地址的读取返回错误值,更能有效避免对非法目标地址的误写入导致待测控制器发生异常,从而能够保证写入操作的安全性。
进一步地,本发明提供的控制器变量读写方法还进一步包括:使能所述待测控制器的标定测试开关。且在判定所述标定测试开关为使能状态且在判定所述目标地址合法后,才对所述目标地址进行读取或将所述目标值写入所述目标地址,而标定测试开关可以根据标定测试需要动态使能(比如在需要执行控制器变量读写方法之前打开(使能)标定测试开关,在不需要执行控制器变量读写方法时关闭(失能)标定测试开关),由此,可以通过编写程序代码将本发明提供的控制器变量读写方法嵌入到待测控制器软件的源文件中一同编译而无需再制作临时测试软件,从而能够减少测试过程中反复修改测试软件以及重复编译控制器软件的过程,从而显著缩短控制器软件的测试周期并提高测试效率。
进一步地,本发明提供的控制器变量读写方法,采用写冲突预设规避策略将所述目标值写入所述目标地址,能够显著提升本发明提供的控制器变量读写方法的可靠性和稳定性,从而进一步提升控制器测试的效率。
由于本发明提供的控制器变量读写装置、车辆控制器和可读存储介质,与本发明提供的控制器变量读写方法属于同一发明构思,因此,本发明提供的控制器变量读写装置、车辆控制器和可读存储介质至少具有本发明提供的控制器变量读写方法的所有优点,详细的内容请参见上文关于控制器变量读写方法的有益效果的相关描述,在此,不再一一赘述。
附图说明
图1为本发明第一种实施例提供的控制器变量读写方法的总体流程示意图;
图2为本发明提供的控制器变量读写方法的其中一具体应用场景示意图;
图3为图1中步骤S200及步骤S300的其中一具体示例的流程示意图;
图4示意性地给出了相关技术中发生“写”冲突的基本原理示意图;
图5为本发明第一种实施例的第一种实施方式提供的控制器变量读写方法避免写冲突的原理示意图;
图6为本发明第一种实施例的第二种实施方式提供的控制器变量读写方法避免写冲突的原理示意图;
图7为本发明第二种实施例提供的设置在待测控制器内的控制器变量读写装置的结构框图;
图8为本发明第三种实施例第一种实施方式提供的车辆控制器的方框结构示意图;
图9为本发明第三种实施例第二种实施方式提供的车辆控制器的方框结构示意图;
图10为本发明第三种实施例第三种实施方式提供的车辆控制器的方框结构示意图;
其中,附图标记如下:
读写请求端-100、用户操作端-110、标定设备-120;
车辆控制器-200、存储单元-210;
控制器变量读写装置-220、读写指令接收模块-221、读写指令执行模块-222、读写结果反馈模块-223;
XCP通信接口-231、XCP标定协议栈-232、读写处理模块-233;
处理器-241、通信接口-242、存储器-243、通信总线-244。
具体实施方式
以下结合附图对本发明提出的控制器变量读写方法、装置、车辆控制器和可读存储介质作进一步详细说明。根据下面的说明,本发明的优点和特征将更清楚。需要说明的是,附图采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施方式的目的。为了使本发明的目的、特征和优点能够更加明显易懂,请参阅附图。须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明实施的限定条件,任何结构的修饰、比例关系的改变或大小的调整,在与本发明所能产生的功效及所能达成的目的相同或近似的情况下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。本文所公开的本发明的具体设计特征包括例如具体尺寸、方向、位置和外形将部分地由具体所要应用和使用的环境来确定。以及,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。另外,如果本文所述的方法包括一系列步骤,且本文所呈现的这些步骤的顺序并非必须是可执行这些步骤的唯一顺序,且一些所述的步骤可被省略和/或一些本文未描述的其他步骤可被添加到该方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。单数形式“一”、“一个”以及“该”包括复数对象,术语“或”通常是以包括“和/或”的含义而进行使用的,术语“若干”通常是以包括“至少一个”的含义而进行使用的,术语“至少两个”通常是以包括“两个或两个以上”的含义而进行使用的,此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
本发明的核心思想在于提供一种控制器变量读写方法、装置、车辆控制器和可读存储介质,本发明无需增加任何硬件成本,不仅能够显著减少控制器软件测试过程中的时间和人力成本,而且可以读取底层软件中的全局变量,从而显著缩短控制器软件的测试周期并提高测试效率。
需要说明的是,本发明提供的控制器变量读写方法以及可读存储介质可应用于本发明提供的设置在待测控制器内的控制器变量读写装置以及车辆控制器上,本发明提供的控制器变量读写方法、控制器变量读写装置、车辆控制器和可读存储介质可应用于汽车上。应当理解本文所使用的术语“汽车”或“汽车的”或者其它类似术语包括一般的机动车辆,例如包括运动型多用途车(SUV)、公共汽车、卡车、各种商用车辆在内的载客车辆,并且包括混合动力车辆、电动车辆、插电式混合动力电动车辆、燃料电池车辆和其它代用燃料车辆(例如从石油之外的资源获取的燃料)。
为了实现上述思想,本发明的第一种实施例提供的控制器变量读写方法,由待测控制器执行。示例性地,请参见图1,图1为本发明第一种实施例提供的控制器变量读写方法的总体流程示意图。从图1可以看出,本实施例提供的控制器变量读写方法,包括:
S100:接收读写请求端发送的读写操作信息,并对所述读写操作信息进行解析得到读写指令;所述读写指令包括待读写变量在所述待测控制器的存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;
S200:在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;
S300:根据预先设定的数据交互协议将读写结果反馈至所述读写请求端。
由此,本发明提供的控制器变量读写方法,由待测控制器(比如车辆控制器)执行,无须增加任何硬件成本,就能够根据读写请求端发送的读写操作信息(读取待读取变量的实时值或写入目标变量的目标值或),执行相应的读取或写入操作,不仅能够显著减少控制器软件测试过程中的时间和人力成本,而且可以读取底层软件中的全局变量,从而显著缩短控制器软件的测试周期并提高测试效率。进一步地,本发明提供的控制器变量读写方法,仅对判定所述目标地址合法后的待读取变量进行读取或写入对应的目标值,从而不仅能有效避免对非法目标地址的读取返回错误值,更能有效避免对非法目标地址的误写入导致待测控制器发生异常,从而能够保证写入操作的安全性。
为了便于理解和说明,本文中以所述待测控制器为车辆控制器,所述预先设定的数据交互协议为XCP标定协议为例对本发明提供的控制器变量读写方法予以示例性说明。但需要说明的是,如本领域技术人员可以理解地,本发明对所述待测控制器和所述预先设定的数据交互协不作任何限定。示例性地,所述待测控制器可以为但不限于为车辆控制器、医疗设备控制器、无人机或工业领域的控制器;所述预先设定的数据交互协议可以为但不限于为基于CAN总线的KWP2000或CCP、基于CAN总线或基于LIN或基于USB等的XCP标定协议、基于K线或Flex Ray协议等。进一步地,本发明对所述待测控制器的芯片类型也不作任何限定,有关控制器的芯片类型更详细内容请参见为本领域技术人员所悉知的相关技术,限于篇幅,在此不展开赘述。更进一步地,如本领域技术人员可以理解地,本发明对所述车辆控制器的类型也不作任何限定,所述车辆控制器可以为但不限于为电机控制器、整车控制器以及自动驾驶域控制器等。再进一步地,本发明对所述待读写变量也不作限定,所述待读写变量包括但不限于A2L文件中的标定量以及MAP文件中的全局变量,所述待读写变量可以为但不限于系统参数、总线参数、通信参数、硬件信息以及其他系统环境参数等。
示例性地,请参见图2,图2为本发明提供的控制器变量读写方法的其中一具体应用场景示意图。在该示例中,所述读写请求端100包括用户操作端110、标定设备120以及能够执行本发明提供的控制器变量读写方法的车辆控制器200。从图2可以看出,采用本发明提供的控制器变量读写方法,无需增加任何额外的硬件,与相关技术中的标定流程无异。只需所述车辆控制器200能够执行本发明提供的控制器变量读写方法即可。需要说明的是,本领域的技术人员应该能够理解,本发明对所述用户操作端110不作任何限定,所述用户操作端110包括但不限于可以运行标定软件的个人电脑、移到手机和云端等。示例性地,所述用户操作端110可以为装载有INCA或CANape的PC端,标定设备120可以为但不限于为ETAS 582等。
优选地,在其中一些示范性实施方式中,所述控制器变量读写方法,还包括:使能所述待测控制器的标定测试开关。
相对应地,请参见图3,图3为图1中步骤S200及步骤S300的其中一具体示例的流程示意图。从图3可以看出,步骤S200所述判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址,包括:
判定所述标定测试开关是否为使能状态,若是,则在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址。
由此,本发明提供的控制器变量读写方法还进一步包括:使能所述待测控制器的标定测试开关。且在判定所述标定测试开关为使能状态且在判定所述目标地址合法后,才对所述目标地址进行读取或将所述目标值写入所述目标地址,而标定测试开关可以根据标定测试需要动态使能(比如在需要执行控制器变量读写方法之前打开(使能)标定测试开关,在不需要执行控制器变量读写方法时关闭(失能)标定测试开关),由此,可以通过编写程序代码将本发明提供的控制器变量读写方法嵌入到待测控制器软件的源文件中一同编译而无需再制作临时测试软件,从而能够减少测试过程中反复修改测试软件以及重复编译控制器软件的过程,进而显著缩短控制器软件的测试周期并提高测试效率。
需要说明的是,本发明对所述标定测试开关的打开方式及具体打开时机不作具体限定。举例而言,在其中一些实施方式中,可以通过读写请求端100发送的读写操作信息指定使能或失能所述标定测试开关;在另外一些实施方式中,默认情况下失能所述标定测试开关,待测控制器在第一次接收到读写操作信息时自动使能所述标定测试开关。
示例性地,请继续参见图3,当判定所述标定测试开关为失能(即非使能)状态时,既不判断所述目标地址是否合法,更不会对所述目标地址进行读取或将所述目标值写入所述目标地址。即不执行读写操作指令。由此,在标定测试开关为失能状态时,待测控制器软件无需本发明提供的运行控制器变量读写方法,从而为将本发明提供的控制器变量读写方法嵌入到待测控制器软件的源文件中一同编译而无需再制作临时测试软件奠定了坚实基础。
请继续参见图3,在其中一些示范性实施方式中,步骤S200判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址,具体包括:
按照预设读写周期,对接收到的每一个所述读写指令,执行以下步骤:
判断所述待读写变量的所述目标地址是否在所述存储单元的有效地址范围内:
若是,则判定所述目标地址合法;并执行以下操作之一:根据所述目标地址,读取所述待读写变量在所述存储单元中的实时值以及将所述读写结果设置为所述实时值;或者将所述目标值写入所述存储单元中的所述目标地址处以及根据写入操作的返回结果将所述读写结果设置为写入成功或写入失败;
若否,则将所述读写结果设置为无效操作。
由此,本发明提供的控制器变量读写方法,只有在判断目标地址合法后,才会根据所述目标地址读取所述待读写变量在所述存储单元中的实时值以及将所述读写结果设置为所述实时值;或者将所述目标值写入所述存储单元中的所述目标地址处以及根据写入操作的返回结果将所述读写结果设置为写入成功或写入失败,从而不仅能有效避免对非法目标地址的读取返回错误值,更能有效避免对非法目标地址的误写入导致待测控制器发生异常,从而能够保证写入操作的安全性。进一步地,在读取待读写变量时,将读取的所述实时值作为所述反馈结果、在写入待读写变量的目标值时,根据写入操作的返回结果将写入成功或写入失败作为所述反馈结果、在目标地址非法(无效地址)时将无效操作作为所述反馈结果,能够使得操作者(比如标定工程师)通过读写请求端收到的反馈结果知悉读写请求是否成功达成,从而进一步提升标定及测试效率。
需要说明的是,如本领域技术人员可以理解地,本发明对所述预设读写周期的具体取值不作具体限定,示例性地,所述预设读写周期可以为1ms、5ms或10ms以及除1ms、5ms或10ms之外的其他值。在实施本发明时,应根据实际需要合理设置,比如说,在一些实施方式中,本发明提供的控制器变量读写方法可以由待测控制器软件的主程序的周期(即预设读写周期)性进程实现。进一步需要说明的是,如本领域技术人员可以理解地,在其中一些实施方式中,步骤S100可以实时执行,待测控制器软件将读写指令放在待读写队列中;在每一个预设读写周期,待测控制器软件可以从待读写队列中逐一处理读写指令直至完成(即步骤S200和步骤S300是按照预设读写周期周期性执行)。在另外一些实施方式中,待测控制器软件也可以一接收到读写指令即刻执行步骤S200和步骤S300。即本发明对步骤S200和步骤S300的执行方式不作过多限定。
优选地,在其中一些示范性实施方式中,步骤S200中将所述目标值写入所述目标地址,具体包括:
采用写冲突预设规避策略将所述目标值写入所述目标地址。
由此,本发明提供的控制器变量读写方法,采用写冲突预设规避策略将所述目标值写入所述目标地址,能够显著提升本发明提供的控制器变量读写方法的可靠性和稳定性,从而进一步提升控制器测试的效率。
需要说明的是,“写冲突”指的是软件中存在着多个地方同时对目标地址(区域)进行写入操作。示例性地,从参见图4,图4示意性地给出了相关技术中发生“写”冲突的基本原理示意图。从图4可以看出,由于本发明提供的控制器变量读写方法(比如由下文的图7中的控制器变量读写装置220执行)是直接对目标地址区域进行写入操作(比如向目标地址0x80000000写入数值a),如果待测控制器的其他功能模块(比如功能模块B)在此之后对同一地址区域进行赋值(如同样往0x80000000写入数值b),则待测模块A所读取的数值则为b,而非期望的数值a。但需明白,“写冲突”是任何软件都可能有的问题(即使使用芯片调试器也无法避免),并非由本发明提供的控制器变量读写方法本身缺陷导致。
优选地,所述采用写冲突预设规避策略将所述目标值写入所述目标地址,具体包括:
在对所述目标地址有写入操作的功能模块对所述目标地址的写入操作全部完成之后,再将所述目标值写入所述目标地址。
由此,本发明提供的控制器变量读写方法,通过在对所述目标地址有写入操作的功能模块对所述目标地址的写入操作全部完成之后,再将所述目标值写入所述目标地址,从而能够有效避免写冲突,从而提升本发明提供的控制器变量读写方法的可靠性和稳定性,从而进一步提升控制器测试的效率。
示例性地,请参见图5,图5为本发明第一种实施例的第一种实施方式提供的控制器变量读写方法避免写冲突的原理示意图。图5中,功能模块B为待测控制器软件中除待测模块A之外的其他所有功能模块(应该能够理解待测控制器软件通常有多个功能模块组成,对于同一待标定量,比如车速,可能有多个功能模块改写),本发明提供的控制器变量读写方法(比如由下文的图7中的控制器变量读写装置220执行)直接对目标地址区域进行写入操作(比如向目标地址0x80000000写入数值a)。假如功能模块B和控制器变量读写装置220均会对地址段0x80000000有写入操作。如图5所示,采用本实施方式提供的控制器变量读写方法中的写冲突预设规避策略,就能够很好地避免控制器变量读写装置220写入的目标值被功能模块B覆盖,从而使得待测模块A能够读取到正确的目标值。
优选地,在本发明第一种实施例的第二种实施方式提供的控制器变量读写方法中,所述采用写冲突预设规避策略将所述目标值写入所述目标地址,具体包括:
失能所述待测控制器的对所述目标地址有写入操作的功能模块;
将所述目标值写入所述目标地址。
由此,本发明提供的控制器变量读写方法,通过先失能所述待测控制器的对所述目标地址有写入操作的功能模块,然后再将所述目标值写入所述目标地址,从而能够有效避免写冲突,从而提升本发明提供的控制器变量读写方法的可靠性和稳定性,从而进一步提升控制器测试的效率。
示例性地,请参见图6,图6为本发明第一种实施例的第二种实施方式提供的控制器变量读写方法避免写冲突的原理示意图。图6中,功能模块B为待测控制器软件中除待测模块A之外的其他所有功能模块(应该能够理解待测控制器软件通常有多个功能模块组成,对于同一待标定量,比如车速,可能有多个功能模块改写),本发明提供的控制器变量读写方法(比如由下文的图7中的控制器变量读写装置220执行)直接对目标地址区域进行写入操作(比如向目标地址0x80000000写入数值a)。假如功能模块B和制器变量读写装置220均会对地址段0x80000000有写入操作。如图6所示,采用本实施方式提供的控制器变量读写方法中的写冲突预设规避策略,由于功能模块B被失能,不再执行对目标地址段0x80000000的写入操作,因此,只有制器变量读写装置220对目标地址段0x80000000有写入操作,从而使得待测模块A能够读取到正确的目标值。
需要说明的是,本发明对失能所述待测控制器的对所述目标地址有写入操作的功能模块的方式及时机不作过多限定,只要在将所述目标值写入所述目标地址之前均可。另外,在待测控制器软件和/或A2L文件确定之后,对于同一目标地址有哪些功能模块(通常情况下仅有一个功能模块)会进行写入操作的相关信息即可确定,用户可以通过读写请求端失能所述待测控制器的对所述目标地址有写入操作的功能模块,也可以由待测控制器在进行目标地址写入操作之前自行失能所述待测控制器的对所述目标地址有写入操作的功能模块。
需要进一步需要说明的是,如本领域技术人员可以理解地,上述有关写冲突预设规避策略的说明仅是示例性说明,而非本发明的限制,本发明对写冲突预设规避策略的具体内容不作过多限定。
请继续参见图3,优选地,在其中一些示范性实施方式中,步骤S300中所述预先设定的数据交互协议包括XCP标定协议;所述待测控制器包括车辆控制器。相对应地,步骤S300根据预先设定的数据交互协议将读写结果反馈至所述读写请求端,具体包括:
将所述读写反馈结果写回至在A2L文件对应的预设标定变量中,并通过所述车辆控制器的XCP通信接口返回至所述读写请求端。
由此,能够使得操作者(比如标定工程师)通过读写请求端收到的反馈结果知悉读写请求是否成功达成,从而进一步提升标定及测试效率。进一步地,XCP标定协议作为Autosar(汽车开放系统架构(AUTomotive Open System Architecture))软件架构的基础组件,能够连接待测控制器与读写请求端(比如标定软件PC端),XCP标定协议的通信速率快、效率高、价格低廉。由此,通过XCP标定协议不仅可以高效地更改待读写变量(比如标定量)送入待测控制器软件中生效而无需刷新,同时还能快速地返回A2L文件中所描述的标定变量(比如RAM变量)。
具体地,如前文所车辆控制器程序(软件)是由软件程序员编写的,而软件程序员很难把系统参数、总线参数以及硬件信息等参数设置成合理的值,这些值都是在实验中根据汽车数学模型和实际情况进行设置的,在软件开发后利用改变参数分析性能反复迭代最终测定,通过XCP标定协议很好地实现了这种标定方式。
本发明的第二种实施例提供了一种设置在待测控制器内的控制器变量读写装置。示例性地,请参见图7,图7示意性地给出了本实施例提供的设置在待测控制器内的控制器变量读写装置的结构框图。从图7可以看出,本实施例提供的控制器变量读写装置,包括读写指令接收模块221、读写指令执行模块222以及读写结果反馈模块223。示例性地,所述读写指令接收模块221,被配置为接收读写请求端100发送的读写操作信息,并对所述读写操作信息进行解析得到读写指令;所述读写指令包括待读写变量在所述待测控制器(图中以车辆控制器200为例)的存储单元210中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值。所述读写指令执行模块222,被配置为在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址。所述读写结果反馈模块223,被配置为根据预先设定的数据交互协议将读写结果反馈至所述读写请求端100。
由此可见,本实施例提供的设置在待测控制器内的控制器变量读写装置220,所述读写指令接收模块221能够根据读写请求端发送的读写操作信息(读取待读取变量的实时值或写入目标变量的目标值或使能/失能标定测试开关);所述读写指令执行模块222执行相应的读取或写入操作,不仅能够显著减少控制器软件测试过程中的时间和人力成本,而且可以读取底层软件中的全局变量,从而显著缩短控制器软件的测试周期并提高测试效率;所述读写结果反馈模块223能够根据预先设定的数据交互协议将读写结果反馈至所述读写请求端100,通过读写指令接收模块221、读写指令执行模块222、读写结果反馈模块223的相互配合,从接收读写操作信息到反馈读写结果的完整闭环。进一步地,本发明提供的控制器变量读写方法,仅对判定所述目标地址合法后的待读取变量进行读取或写入对应的目标值,从而不仅能有效避免对非法目标地址的读取返回错误值,更能有效避免对非法目标地址的误写入导致待测控制器发生异常,从而能够保证写入操作的安全性。
由于本实施例提供的设置在待测控制器内的控制器变量读写装置220,与上文实施例提供的控制器变量读写方法的基本原理相同,限于篇幅,有关本实施例提供的控制器变量读写装置220的更详细内容,请参见上文实施例提供的控制器变量读写方法的相关内容适应性理解,在此不展开赘述。
本发明的第三种实施例提供了一种车辆控制器。示例性地,请参见图8,其示意性地给出了本发明第三种实施例第一种实施方式提供的车辆控制器的方框结构示意图。从图8可以看出,本实施例方式提供的车辆控制器200包括XCP通信接口231、XCP标定协议栈232、读写处理模块233以及存储单元210。具体地,所述XCP通信接口231,被配置为接收读写请求端100发送的读写操作信息,并将所述读写操作信息发送至所述XCP标定协议栈。所述XCP协议标定栈232,被配置为对所述读写操作信息进行解析,得到所述读写指令,并将所述读写指令发送至所述读写处理模块233;所述读写指令包括待读写变量在所述存储单元210中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值。所述读写处理模块233,被配置为在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;以及通过所述XCP通信接口231将读写结果反馈至所述读写请求端100。由于本实施方式提供的车辆控制器与本发明上文提供的控制器变量读写方法属于同一发明构思,因此,本实施例提供的车辆控制器至少具有本发明提供的控制器变量读写方法的所有优点,详细的内容请参见上文关于控制器变量读写方法的有益效果的相关描述,在此,不再一一赘述。
需要说明的是,如本领域技术人员可以理解地,本发明对所述存储单元410的具体类型不作限定,所述存储单元410可以为但不限于为RAM存储器和FLASH存储器。较佳地,所述存储单元410优选为RAM存储器。又进一步地,本发明对所述目标地址也不作过多限定。但需明白,对于不同的车辆控制器,存储单元(比如RAM)210的地址范围区域可能不同,而且目标地址有可能存在于多个不连续的地址段中,因此,在具体实施本发明时,应根据车辆控制器的芯片的数据手册(DataSheet)进行额外配置。
有关读写请求端100、XCP通信接口231以及XCP标定协议栈232的更详细内容及读写请求端100与XCP通信接口231之间、以及XCP通信接口231与XCP标定协议栈232之间如何进行数据交互的更详细内容请参见为本领域技术人员所悉知的相关技术,在此,不展开细述。
本发明的第三种实施例的第二种实施方式提供了另外一种车辆控制器,具体地,请参见图9,图9为本发明第三种实施例第二种实施方式提供的车辆控制器的方框结构示意图,从图9可以看出,在该实施方式中,所述车辆控制器200包括上文实施例提供的控制器变量读写装置220。由于本实施方式提供的车辆控制器200包括本发明提供的控制器变量读写装置220,因此,本实施例方式提供的车辆控制器200至少具有本发明提供的控制器变量读写装置220所有有益效果,在此,不展开赘述。
本发明的第三种实施例的第三种实施方式提供了又一种车辆控制器,示例性地,请参见图10,图10为本发明第三种实施例第三种实施方式提供的车辆控制器的方框结构示意图。如图10所示,本实施例提供的车辆控制器包括处理器241和存储器243,所述存储器243上存储有计算机程序,所述计算机程序被所述处理器241执行时,实现上文任一实施例提供的控制器变量读写方法。由于本实施例提供的车辆控制器与本发明提供的控制器变量读写方法属于同一发明构思,因此,本实施例提供的车辆控制器至少具有本发明提供的控制器变量读写方法的所有优点,详细的内容请参见上文关于控制器变量读写方法的有益效果的相关描述,在此,不再一一赘述。
示例性地,如图10所示,所述车辆控制器还可以包括通信接口242和通信总线244,其中所述处理器241、所述通信接口242、所述存储器243通过通信总线244完成相互间的通信。所述通信总线244包括但不限于CAN总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。所述通信接口242用于上述车辆控制器(比如电机控制器)与其他控制器(比如整车控制器、自动驾驶域控制器、电池管理系统等,图中未示出)之间的通信。所述通信总线244将上述车辆控制器(比如电机控制器)与其他控制器(比如电池管理系统等,图中未示出)等各个分散的节点连成一个闭环系统,使得各个控制器能够进行多个工作状态(停车状态、充电状态、启动状态、运行状态、车辆前进和后退状态、回馈制动状态、机械制动状态、一般故障状态、重大故障状态)的通讯和数据传输,从而实现车辆的控制功能。
本发明中所称处理器241可以是微控制单元(Microcontroller Unit;MCU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器241是所述电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分。
所述存储器243可用于存储所述计算机程序,所述处理器241通过运行或执行存储在所述存储器243内的计算机程序,以及调用存储在存储单元210和/或存储器243内的数据,实现所述电子设备的各种功能。
所述存储器243可以包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
本发明的第四种实施例提供了一种可读存储介质,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时可以实现上文所述的控制器变量读写方法。由于本实施例提供的可读存储介质与本发明提供的控制器变量读写方法属于同一发明构思,因此,本实施例提供的可读存储介质至少具有本发明提供的控制器变量读写方法的所有优点,详细的内容请参见上文关于控制器变量读写方法的有益效果的相关描述,在此,不再一一赘述。
本发明实施方式的可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的示例)包括:具有一个或多个导线的电连接、便携式计算机硬盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其组合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
综上所述,与现有技术相比,本发明提供的控制器变量读写方法、装置、车辆控制器和可读存储介质具有以下优点:
本发明提供的控制器变量读写方法,由待测控制器(比如车辆控制器)执行,无须增加任何硬件成本,就能够根据读写请求端发送的读写操作信息(读取待读取变量的实时值或写入目标变量的目标值或使能/失能标定测试开关),执行相应的读取或写入操作,不仅能够显著减少控制器软件测试过程中的时间和人力成本,而且可以读取底层软件中的全局变量,从而显著缩短控制器软件的测试周期并提高测试效率。进一步地,本发明提供的控制器变量读写方法,仅对判定所述目标地址合法后的待读取变量进行读取或写入对应的目标值,从而不仅能有效避免对非法目标地址的读取返回错误值,更能有效避免对非法目标地址的误写入导致待测控制器发生异常,从而能够保证写入操作的安全性。
由于本发明提供的控制器变量读写装置、车辆控制器和可读存储介质,与本发明提供的控制器变量读写方法属于同一发明构思,因此,本发明提供的控制器变量读写装置、车辆控制器和可读存储介质至少具有本发明提供的控制器变量读写方法的所有优点,详细的内容请参见上文关于控制器变量读写方法的有益效果的相关描述,在此,不再一一赘述。
应当注意的是,在本文的实施方式中所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施方式仅仅是示意性的,例如,附图中的流程图和框图显示了根据本文的多个实施方式的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用于执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本文各个实施方式中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
上述描述仅是对本发明提供的控制器变量读写方法、装置、车辆控制器和可读存储介质较佳实施方式的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于本发明的保护范围。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若这些修改和变型属于本发明及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (11)
1.一种控制器变量读写方法,其特征在于,由待测控制器执行,所述控制器变量读写方法,包括:
接收读写请求端发送的读写操作信息,并对所述读写操作信息进行解析得到读写指令;所述读写指令包括待读写变量在所述待测控制器的存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;
在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;
根据预先设定的数据交互协议将读写结果反馈至所述读写请求端。
2.根据权利要求1所述的控制器变量读写方法,其特征在于,还包括:
使能所述待测控制器的标定测试开关;
所述判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址,包括:
判定所述标定测试开关是否为使能状态,若是,则在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址。
3.根据权利要求1所述的控制器变量读写方法,其特征在于,判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址,包括:
按照预设读写周期,对接收到的每一个所述读写指令,执行以下步骤:
判断所述待读写变量的所述目标地址是否在所述存储单元的有效地址范围内:
若是,则判定所述目标地址合法;并执行以下操作之一:根据所述目标地址,读取所述待读写变量在所述存储单元中的实时值以及将所述读写结果设置为所述实时值;或者将所述目标值写入所述存储单元中的所述目标地址处以及根据写入操作的返回结果将所述读写结果设置为写入成功或写入失败;
若否,则将所述读写结果设置为无效操作。
4.根据权利要求1所述的控制器变量读写方法,其特征在于,所述将所述目标值写入所述目标地址,包括:
采用写冲突预设规避策略将所述目标值写入所述目标地址。
5.根据权利要求4所述的控制器变量读写方法,其特征在于,所述采用写冲突预设规避策略将所述目标值写入所述目标地址,包括:
在对所述目标地址有写入操作的功能模块对所述目标地址的写入操作全部完成之后,再将所述目标值写入所述目标地址。
6.根据权利要求4所述的控制器变量读写方法,其特征在于,所述采用写冲突预设规避策略将所述目标值写入所述目标地址,包括:
失能所述待测控制器的对所述目标地址有写入操作的功能模块;
将所述目标值写入所述目标地址。
7.根据权利要求1所述的控制器变量读写方法,其特征在于,所述预先设定的数据交互协议包括XCP标定协议;所述待测控制器包括车辆控制器;
所述根据预先设定的数据交互协议将读写结果反馈至所述读写请求端,包括:
将所述读写反馈结果写回至在A2L文件对应的预设标定变量中,并通过所述车辆控制器的XCP通信接口返回至所述读写请求端。
8.一种设置在待测控制器内的控制器变量读写装置,其特征在于,包括:
读写指令接收模块,被配置为接收读写请求端发送的读写操作信息,并对所述读写操作信息进行解析得到读写指令;所述读写指令包括待读写变量在所述待测控制器的存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;
读写指令执行模块,被配置为在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;
读写结果反馈模块,被配置为根据预先设定的数据交互协议将读写结果反馈至所述读写请求端。
9.一种车辆控制器,其特征在于,包括XCP通信接口、XCP标定协议栈、读写处理模块以及存储单元;
所述XCP通信接口,被配置为接收读写请求端发送的读写操作信息,并将所述读写操作信息发送至所述XCP标定协议栈;
所述XCP协议标定栈,被配置为对所述读写操作信息进行解析,得到所述读写指令,并将所述读写指令发送至所述读写处理模块;所述读写指令包括待读写变量在所述存储单元中的目标地址以及读写信息;所述读写信息包括读取指令和写入指令其中之一;所述写入指令包括所述待读写变量的目标值;
所述读写处理模块,被配置为在判定所述目标地址合法后,对所述目标地址进行读取或将所述目标值写入所述目标地址;以及通过所述XCP通信接口将读写结果反馈至所述读写请求端。
10.一种车辆控制器,其特征在于,包括如权利要求9所述的控制器变量读写装置;或者所述车辆控制器包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至8任一项所述的控制器变量读写方法。
11.一种可读存储介质,其特征在于,所述可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1至8中任一项所述的控制器变量读写方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410306244.6A CN118226836A (zh) | 2024-03-18 | 2024-03-18 | 控制器变量读写方法、装置、车辆控制器和介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410306244.6A CN118226836A (zh) | 2024-03-18 | 2024-03-18 | 控制器变量读写方法、装置、车辆控制器和介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN118226836A true CN118226836A (zh) | 2024-06-21 |
Family
ID=91512244
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410306244.6A Pending CN118226836A (zh) | 2024-03-18 | 2024-03-18 | 控制器变量读写方法、装置、车辆控制器和介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN118226836A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118760634A (zh) * | 2024-06-24 | 2024-10-11 | 上海奎芯集成电路设计有限公司 | 用于非法地址处理的存储器控制系统和相关方法 |
-
2024
- 2024-03-18 CN CN202410306244.6A patent/CN118226836A/zh active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118760634A (zh) * | 2024-06-24 | 2024-10-11 | 上海奎芯集成电路设计有限公司 | 用于非法地址处理的存储器控制系统和相关方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7270764B2 (ja) | 人工知能チップ検証 | |
| JP2014203314A (ja) | Ecuシミュレーション装置 | |
| JP7262818B2 (ja) | エンジンデバッグ、テスト、較正、及び調節を制御するためのソフトウェア環境 | |
| KR20200007133A (ko) | 차량 ecu 소프트웨어 검증을 위한 동적 결함 주입 방법 및 장치 | |
| CN112068530A (zh) | 一种ecu自动化测试方法、系统、存储介质及装置 | |
| US20230161931A1 (en) | Simulation device and method of controlling the same | |
| CN111506509A (zh) | 汽车软件单元自动测试方法、装置、设备及存储介质 | |
| CN118226836A (zh) | 控制器变量读写方法、装置、车辆控制器和介质 | |
| CN116069648A (zh) | 一种软件测试方法、系统、设备以及存储介质 | |
| US20120036499A1 (en) | System and method for automatically testing a program for safety-related automation systems | |
| Weiland et al. | A classification of modeling variability in simulink | |
| CN117234926A (zh) | 基于autosar架构的软件组件接口检查方法及装置 | |
| CN114383856A (zh) | 一种车辆自动测试方法、装置、存储介质及设备 | |
| US20070214451A1 (en) | Method and Device for the Stimulation of Functions for Controlling Operating Sequence | |
| US9971321B2 (en) | Method for influencing a control program | |
| CN115268403A (zh) | 一种整车eol自动化测试方法 | |
| US20230087569A1 (en) | Automatic test generation for highly complex existing software | |
| CN111199084B (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 | |
| CN112269740A (zh) | 自动驾驶软件的自动测试方法及装置 | |
| CN113495509A (zh) | 一种控制器刷写方法及装置 | |
| CN115658527B (zh) | 批量驾驶数据回注测试方法、装置、设备及存储介质 | |
| Ahmed et al. | Formal verification of AUTOSAR watchdog manager module using symbolic execution | |
| Shaout et al. | Automotive embedded systems-model based approach review. | |
| CN115617677B (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 |