System and method for providing runtime safety control
Runtime safety control systems address the inflexibility of traditional code development by automatically applying safety controls during execution, enhancing development efficiency and compliance.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-06-06
- Publication Date
- 2026-03-13
AI Technical Summary
Existing code development approaches require developers to know the location of functions during development and link safety controls, limiting flexibility and increasing development time and complexity due to the strong association between functions and safety controls.
Implementing runtime safety control systems that automatically determine safety control requirements and replace no-operation (NOP) slides with appropriate safety control functions during code execution, allowing flexible development without manual intervention.
Enables flexible and efficient code development by ensuring safety controls are met automatically at runtime, reducing development complexity and time while maintaining compliance with safety requirements.
Smart Images

Figure 2026047108000001_ABST
Abstract
Description
Technical Field
[0001] Exemplary embodiments of the present disclosure relate to systems and methods for safety control, and more particularly, to systems and methods for providing runtime safety control.
Background Art
[0002] In the code development approach of related technologies, functions are essentially strongly associated with specific safety controls, and the specific safety controls must always be combined with the functions during the code development stage. This requires linking a library that provides safety control as part of the development, which means that the function placement (e.g., regarding vehicles, etc.) needs to be known during development.
[0003] Furthermore, due to the possibility of safety control being overlooked, the related technology approach prohibits the relocation of functions from an unsafe area to a safe area. To change the location of a function, developers are required to expend significant effort when managing the function, e.g., modifying the function, adding safety control, and then changing the location of the subsequent function.
[0004] Considering the above, the strong link between functions and safety control imposes constraints on the development process. Specifically, to ensure compliance with safety requirements, developers are required to obtain information regarding the location of functions before the start of development. This results in increased development time and complexity. There is a need to provide a solution that allows developers to build and write functions flexibly while ensuring that the required safety control is met.
Summary of the Invention
[0005] Exemplary embodiments consistent with the present disclosure effectively and efficiently provide safety control at runtime.
[0006] According to an exemplary embodiment, a method for providing runtime safety control is provided. The method may be performed by at least one processor and may include: determining whether safety control is required for a process; selecting a safety control function from among a plurality of safety control functions based on the determination that safety control is required; and replacing no-operation (NOP) slides in the code associated with the process with the selected safety control function.
[0007] According to an exemplary embodiment, a system for providing runtime safety control is provided. The system may include at least one memory storage for storing computer executable instructions, and at least one processor communicably connected to the memory storage. The at least one processor may be configured to execute instructions to determine whether safety control is required for a process, and, based on the determination that safety control is required, to select a safety control function from a plurality of safety control functions, and to replace NOP slides in the code associated with the process with the selected safety control function.
[0008] According to an exemplary embodiment, a non-temporary computer-readable recording medium is provided. The non-temporary computer-readable recording medium may record instructions on the non-temporary computer-readable recording medium that cause at least one processor to perform a method for providing runtime safety control, which is an instruction executable by at least one processor. The method may include determining whether safety control is required for a process, selecting a safety control function from a plurality of safety control functions based on the determination that safety control is required, and replacing NOP slides in code associated with the process with the selected safety control function.
[0009] Additional embodiments may be described in part in the following specification and partially revealed therein, or may be realized by implementing the embodiments presented in this disclosure. [Brief explanation of the drawing]
[0010] The features, advantages, and importance of preferred embodiments of the present disclosure are described below with reference to the accompanying drawings, in which similar reference numerals indicate similar elements.
[0011] [Figure 1] Figure 1 shows a diagram of exemplary components of a runtime safety control system according to one or more exemplary embodiments. [Figure 2] Figure 2 shows an exemplary use case for operating a runtime safety control system according to one or more exemplary embodiments. [Figure 3] Figure 3 shows an example of code with annotations according to one or more embodiments. [Figure 4] Figure 4 shows a flowchart of an exemplary method for providing runtime safety control according to one or more exemplary embodiments. [Modes for carrying out the invention]
[0012] A detailed description of preferred embodiments follows with reference to the accompanying drawings. The foregoing disclosure provides examples and explanations, but is not intended to be exhaustive or to limit implementations to the exact forms disclosed. Modifications and variations are possible in view of the foregoing disclosure or may be obtained from carrying out the implementations. Furthermore, one or more functions or components of one embodiment may be incorporated into or combined with another embodiment (or one or more functions of another embodiment). Furthermore, it should be understood that in the flowcharts and descriptions of operations provided below, one or more operations may be omitted, one or more operations may be added, one or more operations may be performed (at least partially) simultaneously, and the order of one or more operations may be changed.
[0013] Where particular combinations of functions are enumerated in the claims and / or disclosed herein, such combinations are not intended to limit the disclosure of possible implementations. In fact, many of these functions can be combined in ways not specifically enumerated in the claims and / or disclosed herein. Each of the dependent claims listed below may depend directly on only one claim, but the disclosure of possible implementations includes each dependent claim combined with all other claims in the set of claims.
[0014] Any element, action, or instruction used herein should not be construed as important or essential unless explicitly stated otherwise. Furthermore, when used herein, the articles “a” and “an” are intended to include one or more items and may be used interchangeably with “one or more.” When referring to only one item, the term “one” or similar terms should be used. Also, when used herein, the terms “has,” “have,” “having,” “include,” “including,” or similar terms are intended to be open-ended. Additionally, the phrase “based on” is intended to mean “at least partially based on” unless explicitly stated otherwise. Furthermore, expressions such as "[A] and / or [B]," “at least one of [A] and [B],” or "[A] or [B]" should be understood as including only A, only B, or both A and B.
[0015] Throughout this specification, references to “one embodiment,” “embodiment,” “non-limiting preferred embodiment,” or similar terms mean that certain functions, structures, or features described in relation to the embodiments shown are included in at least one embodiment of the Solution. Therefore, throughout this specification, phrases such as “in one embodiment,” “in an embodiment,” “in a non-limiting preferred embodiment,” and similar terms may refer to the same embodiment, but not necessarily the same embodiment.
[0016] Furthermore, the functions, benefits, and features described herein may be combined in any preferred manner in one or more exemplary embodiments. Those skilled in the art will recognize, in view of the description herein, that the disclosure may be implemented without one or more of the specific functions or benefits of a particular embodiment. In other examples, additional functions and benefits may be recognized in certain embodiments, which may not be present in all embodiments of the disclosure.
[0017] Furthermore, the term “vehicle” as used herein refers to any preferred type of vehicle on which exemplary embodiments of the present disclosure may be implemented. For example, “vehicle” may refer to a powered vehicle, such as a passenger car, truck, bus, motorcycle, or any other preferred type of motor vehicle powered by an engine, motor, or other mechanical means. Alternatively or further, “vehicle” as used herein may refer to a bicycle, skateboard, and any other preferred type of unpowered vehicle, without departing from the scope of the present disclosure.
[0018] In addition, while some exemplary embodiments are described herein with reference to exemplary use cases including vehicle components (e.g., electronic control units (ECUs)), it is assumed that exemplary embodiments of this disclosure may also be applicable to any other suitable systems or components without departing from the scope of this disclosure.
[0019] As described above, there is a need to provide a solution that allows developers to create and develop code and / or associated functions flexibly and efficiently, without requiring them to know the location of the functions before starting development, while ensuring that the associated safety requirements are met.
[0020] The exemplary embodiments of this disclosure provide runtime safety controls that automatically implement appropriate safety control functions during runtime in code or associated process without requiring the developer to manually intervene in the process. Specifically, the exemplary embodiments of this disclosure automatically determine whether safety controls are required during runtime for a process. Based on the determination that safety controls are required, no-operation (NOP) slides in the code associated with the process are replaced with appropriate safety control functions.
[0021] Figure 1 shows a diagram of a runtime safety control system according to one or more embodiments. As shown in Figure 1, the runtime safety control system 110 may include at least one bus 111, at least one processor 112, at least one memory 113, at least one storage component 114, at least one input component 115, at least one output component 116, and at least one communication interface 117. These components may be configured to operate with each other to implement one or more operations described herein and thus provide runtime safety control. The runtime safety control system 110 may be implemented in a code development system.
[0022] System 110 is envisioned to include more or fewer components than those shown in FIG. 1 without departing from the scope of the present disclosure. For example, in some exemplary embodiments, System 110 can include multiple storage components 114, input component 115 and output component 116 can be implemented as transceiver components, and memory 113 and storage component 114 can be implemented as memory storage, on a case-by-case basis.
[0023] Bus 111 can be configured to facilitate or enable communication between components of System 110. Specifically, Bus 111 can communicatively connect the components to each other and provide a means for data movement and flow of control signals between the components. Bus 111 can be implemented in System 110 to enable real-time (or near real-time) communication and cooperation between components within System 110, and can include one or more of an internal bus, an address bus, a data bus, a control bus, a controller area network (CAN) bus, an Ethernet bus, a peripheral component interconnect express (PCIe) bus, and any other suitable type of bus.
[0024] Processor 112 can be implemented in hardware, firmware, or a combination of hardware and software, and can be configured to handle real-time (or near real-time) data processing and control of System 110. Processor 112 can include one or more of a central processing unit (CPU), a graphics processing unit (GPU), a neural processing unit (NPU), a tensor processing unit (TPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), and / or another type of processing or computing component that can be implemented in System 110.
[0025] In some exemplary implementations, processor 112 may be programmable to perform one or more operations described herein. Further, processor 112 may include multiple processing units, each of which may be dedicated to performing a particular operation (e.g., one processing unit may be configured to compile code, one processing unit may be configured to execute code and provide runtime safety control there, etc.). Further, in some exemplary embodiments, processor 112 may function as a code compiler and may be configured to compile code. Additionally, processor 112 may function as an execution manager and may be configured to execute code to perform a process (e.g., a process associated with an ECU, etc.). Exemplary operations that may be performed by processor 112 are further described below with reference to FIGS. 2-4.
[0026] Memory 113 may include one or more media for storing temporary data, runtime variables, program instructions, and buffers required for the operation of control system 110. Memory 113 may be implemented in control system 110 to store information and / or instructions for use by processor 112, and may include one or more of flash memory, read-only memory (ROM), random access memory (RAM), dynamic or static storage devices (e.g., flash memory, magnetic memory, and / or optical memory), or any other suitable type of memory.
[0027] Storage component 114 may be configured to store non-volatile data, such as firmware, configuration settings, calibration data, information, and / or software related to the operation and use of control system 110. For example, storage component 114 may include, together with a corresponding drive, a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optical disk, and / or a solid state disk), a compact disk (CD), a digital versatile disk (DVD), a floppy disk, a cartridge, a magnetic tape, and / or another type of non-transitory computer-readable medium.
[0028] According to one embodiment, the storage component 114 may be configured to store computer-readable instructions or computer-executable instructions for implementing one or more operations of the system 110. The storage component 114 may provide the stored information to the memory 113 for execution by the processor 112.
[0029] The input component 115 may include one or more input components (e.g., a touchscreen display, keyboard, keypad, mouse, buttons, switches, and / or microphone) that allow the system 110 to receive information via user input or the like. The output component 116 may include one or more output components (e.g., a display, speaker, navigation device, one or more light-emitting diodes (LEDs), etc.) that provide output information from the system 110. According to the embodiment, the input component 115 and / or the output component 116 may be optional and may be excluded from the system 110.
[0030] At least one communication interface 117 may include transceiver-like components (e.g., transceivers and / or separate receivers and transmitters) that enable the control system 110 to communicate with other components (e.g., ECUs, user devices, etc.) via wired connections, wireless connections, or a combination of wired and wireless connections. For example, the communication interface 117 may include a Controller Area Network (CAN) bus interface, an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a Universal Serial Bus (USB) interface, a Wi-Fi interface, a cellular network interface, or similar.
[0031] According to one or more embodiments, the communication interface 117 may include at least one input / output (I / O) interface, at least one network interface, at least one storage interface, or similar, which enable components 112-116 to communicate with other components. Furthermore, the communication interface 117 may include one or more application programming interfaces (APIs) which enable system 110 (or one or more components contained therein) to communicate with one or more software applications (e.g., software applications deployed in an ECU).
[0032] Computer executable instructions (e.g., software instructions) may be read into memory 113 and / or storage component 114 from another computer-readable medium or another device (e.g., a remote server, external storage) via, for example, a communication interface 117. When executed, the computer executable instructions stored in memory 113 and / or storage component 114 may cause the processor 112 to perform one or more processes described herein. Furthermore or alternatively, hardwired circuits may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, the implementations described herein are not limited to any particular combination of hardware circuits and software.
[0033] According to exemplary embodiments, the runtime safety control system 110 may be communicatively connected to one or more components associated with a vehicle system, for example, an ECU associated with a vehicle system. Figure 2 shows an exemplary use case in which the runtime safety control system 110 interacts with the ECU 120 according to one or more exemplary embodiments.
[0034] ECU120 may include physical ECUs (e.g., partially developed / fully developed ECUs), components configured to host or deploy software-based ECUs (e.g., virtual V-ECUs), components configured to emulate ECUs, or a combination thereof. Furthermore, ECU120 may include at least one of the following: a central ECU (CECU), an instrument cluster (IC) ECU, an in-vehicle infotainment (IVI) ECU, an advanced driver-assistance system (ADAS) ECU, a communications ECU, a powertrain ECU, an engine ECU, an odometer ECU, and any other suitable type of ECU.
[0035] As shown in Figure 2, the ECU 120 may include at least one configuration file 121 and a number of safety control functions 122. The configuration file 121 may reside at the root of the ECU 120's primary file system and may be associated with the ECU's Automotive Safety Integrity Level (ASIL) level requirements. For example, the configuration file may define ASIL level requirements and / or associated settings for the ECU's software (or associated code), such as brake control, traction control, airbag control, and the like.
[0036] On the other hand, multiple safety control functions 122 may reside in or be stored in a folder within the ECU, and each of the safety control functions 122 may contain one or more raw assembly formats relating to the safety control function, which can then be selected as needed and inserted into the software (or associated code). Furthermore, each of the safety control functions may be precompiled (by system 110 and / or any other suitable compiler) for safety use cases associated with one or more of each type of safety use case, e.g., end-to-end protection requirements, freedom of interference requirements, sound management requirements, and watchdog requirements. These safety control functions may share common functions, such as placing default variables in memory and setting them to false. In some exemplary embodiments, a configuration file 121 may contain references to folders, so that the runtime safety control system 110 can recognize where to find the appropriate safety control.
[0037] When a process (for example, a process associated with an ECU) is scheduled to be invoked during runtime by a runtime safety control system 110 (or any other suitable execution system), the system 110 may be configured to determine whether safety control is required for the process. Based on the determination that safety control is required, the system 110 may be configured to select a safety control function from among a plurality of safety control functions 122, and then replace a no-operation (NOP) slide in the code associated with the process with the selected safety control function. This NOP slide has the same size as the potential safety control function; that is, the instruction set length or size of the NOP slide matches the instruction set length and size of the safety control function 122. In some exemplary implementations, based on the determination that safety control is not required, the system 110 may be configured to reduce the NOP slide in the code to a single instruction.
[0038] For example, system 110 may obtain a configuration file 121 from the ECU and determine whether the code meets the ASIL level requirements defined in the configuration file 121. Therefore, based on the determination that the code does not meet the ASIL level requirements, system 110 may determine that safety control is required, then select an appropriate safety control function, and modify the code based on the selected safety control function (e.g., replacing NOP slides in the code with a pre-compiled assembly of the safety function), thereby ensuring that the code (and associated processes) meet the safety requirements. On the other hand, based on the determination that the code meets the ASIL level requirements, system 110 may determine that safety control is not required, then reduce the NOP slides in the code to a single instruction, thereby avoiding or reducing performance hits caused by having unnecessary parts in the code. System 110 can then be configured to execute the code and start the process.
[0039] According to an exemplary embodiment, the system 110 may be configured to select a safety control function by determining a folder in the ECU containing a plurality of safety control functions 122 based on a configuration file 121, determining which of the plurality of safety control functions satisfies the ASIL level requirement, and selecting a safety control function that satisfies the ASIL level requirement. In this regard, the system 110 may be configured to replace a NOP slide with the selected safety control function by retrieving the selected safety control function from the folder in the ECU and replacing the NOP slide with the retrieved safety control function.
[0040] According to an exemplary embodiment, system 110 (or any preferred compiler) may be configured to compile code. Specifically, upon receiving the code, system 110 may be configured to determine whether the code contains annotations associated with safety controls. Thus, based on the determination that the code contains annotations, system 110 may be configured to replace the annotations with appropriate NOP slides. Subsequently, when the code is required to be executed to start a process, system 110 may determine, in a manner similar to that described above, whether the NOP slides should be replaced with appropriate safety control functions or reduced to a single instruction.
[0041] Figure 3 shows an example of annotation-containing code according to one or more embodiments. This exemplary code may be constructed for demonstration purposes, and therefore, the content of actual code may differ depending on the requirements of the implementation.
[0042] As shown in Figure 3, the code may include the annotation "[annotation_safety_e2e]", which is an annotation added by the developer to parts of the code where potential safety controls (e.g., end-to-end protection) may be required. In this regard, when compiling the code, the runtime safety control system 110 (or any other suitable compiler) may recognize the annotation and insert an appropriate NOP slide therein. For example, the system 110 (or compiler) may replace the annotation "[annotation_safety_e2e]" with a NOP slide or instruction that matches the length or size of an end-to-end safety control function with respect to parameters "num1" and "num2".
[0043] In this regard, system 110 (or the compiler) can set up the function and call this NOP slide (or instruction) with the appropriate parameters without performing any further actions. Therefore, system 110 (or the compiler) can return a success code unless the default variable is set to false.
[0044] Next, referring to Figure 4, Figure 4 shows a flowchart of an exemplary method 400 for providing runtime safety control according to one or more exemplary embodiments. One or more operations of method 400 may be performed by the runtime safety control system described above with reference to Figures 1 to 3. Specifically, one or more operations of method 400 may be performed by at least one processor of the system (e.g., processor 112) when executing a computer-readable instruction (or computer-executable instruction) stored in the system's memory storage (e.g., memory 113, storage component 114, etc.). Furthermore, it is assumed that method 400 may include one or more functions described above with reference to Figures 1 to 3, e.g., runtime safety control system 110, ECU 120, configuration file 121, safety control function 122, and similar. Therefore, the associated redundant explanations may be omitted below for brevity.
[0045] As shown in Figure 4, in operation S410, the processor may be configured to determine whether safety control is required for the process. According to an exemplary embodiment, the process may be associated with an ECU (e.g., ECU120). Furthermore, as described above, the processor may be configured to determine whether safety control is required for the process by: obtaining a configuration file (e.g., configuration file 121) associated with the automotive safety integrity level (ASIL) level requirements of the ECU; determining, based on the configuration file, whether the code meets the ASIL level requirements; determining, based on the determination that the code does not meet the ASIL level requirements, whether safety control is required; and determining, based on the determination that the code meets the ASIL level requirements, whether safety control is not required.
[0046] Based on the determination that safety control is required, method 400 may proceed to operation S420. Otherwise, based on the determination that safety control is not required, method 400 may terminate or end. Alternatively, based on the determination that safety control is not required, method 400 may proceed to operation S440.
[0047] Referring still to Figure 4, in operation S420, the processor may be configured to select a safety control function from among a plurality of safety control functions. As described above, the processor may be configured to select a safety control function by determining a folder in the ECU containing a plurality of safety control functions based on a configuration file (e.g., obtained in operation S410), determining which of the plurality of safety control functions satisfies the ASIL level requirement, and selecting a safety control function that satisfies the ASIL level requirement. According to an exemplary embodiment, the plurality of safety control functions may be stored in raw assembly format. Furthermore, each of the plurality of safety control functions (including the selected safety control function) may be associated with at least one of the end-to-end protection requirement, the freedom of interference requirement, the sound management requirement, and the watchdog requirement.
[0048] Subsequently, in operation S430, the processor may be configured to replace no-operation (NOP) slides in the code associated with the process with selected safety control functions. As described above, the processor may be configured to replace NOP slides with selected safety control functions by retrieving the selected safety control functions from a folder in the ECU (for example, a folder defined in the configuration file obtained in operation S410) and replacing the NOP slides with the retrieved safety control functions. Thus, the processor may execute the modified code and start the process.
[0049] On the other hand, in operation S440, based on the decision that safety control is not required, the processor may be configured to reduce the NOP slide in the code to a single instruction. Thus, the processor may execute the modified code and start the process.
[0050] According to an exemplary embodiment, the processor may be configured to compile the code before performing operation S410. In this regard, when compiling the code, the processor may be configured to determine whether the code includes annotations associated with safety controls. Thus, based on the determination that the code includes annotations, the processor may be configured to replace the annotations with NOP slides.
[0051] For this purpose, exemplary embodiments of the present disclosure provide systems, methods, and similar entities that can be configured to provide safety controls during runtime. Specifically, when executing code, the system may perform one or more actions to reshape the code according to safety requirements (e.g., by replacing NOP slides with appropriate safety control functions). Furthermore, when compiling code, the system may recognize annotations in the code and appropriately insert NOP slides or replace annotations with NOP slides. Finally, the systems and methods of the exemplary embodiments may provide runtime safety controls without requiring user intervention.
[0052] The functions, advantages, and importance of the exemplary embodiments described herein are merely part of the disclosure and are not intended to be exhaustive or to limit the scope of the disclosure. Further descriptions of the functions, components, configurations, operations, and implementations of the exemplary embodiments of the disclosure, as well as the associated technical advantages and importance, are provided below.
[0053] It is understood that any particular order or hierarchy of blocks in the processes / flowcharts disclosed herein is an example of exemplary technique. It is understood that any particular order or hierarchy of blocks in the processes / flowcharts may be rearranged based on design preferences. Furthermore, some blocks may be combined or omitted. The appended method claims present elements of various blocks in a sample order and are not intended to be limited to any particular order or hierarchy presented.
[0054] Some embodiments may relate to systems, methods, and / or computer-readable media at any possible level of technical detail of integration. Furthermore, as described herein, one or more of the above-described components may be implemented as instructions stored in a computer-readable medium and executable by at least one processor. The computer-readable medium may include a computer-readable non-temporary storage medium (or multiple mediums) having computer-readable program instructions to cause a processor to perform an operation.
[0055] A computer-readable storage medium can be a tangible device capable of holding and storing instructions for use by an instruction-executing device. A computer-readable storage medium may be, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any preferred combination thereof. A non-exhaustive list of more specific examples of computer-readable storage mediums includes, namely, portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices such as punched cards or grooved raised structures on which instructions are recorded, and any preferred combination thereof. Computer-readable storage media as used herein should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmitting media (e.g., light pulses passing through optical fiber cables), or electrical signals transmitted through wires.
[0056] The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to each computing / processing device, or they may be downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface within each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within each computing / processing device.
[0057] Computer-readable program code / instructions for performing an operation may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, or similar, and procedural programming languages such as the "C" programming language or similar programming languages. Computer-readable program instructions may be fully executed on the user's computer, partially executed on the user's computer, executed as a standalone software package, partially executed on the user's computer and partially executed on a remote computer, or fully executed on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or a connection to an external computer may be made (for example, via the Internet using an Internet service provider). In some embodiments, for example, an electronic circuit including a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA) may execute computer-readable program instructions by personalizing the electronic circuit using state information of computer-readable program instructions in order to perform a particular action or operation.
[0058] The computer-readable program instructions may be provided to a processor of a general-purpose computer, a dedicated computer, or other programmable data processing device to generate a machine, and as a result, the instructions executed via the processor of the computer or other programmable data processing device generate means for implementing the functions / actions specified in the blocks or blocks of a flowchart and / or block diagram. The computer-readable program instructions may also be stored in a computer-readable storage medium that can instruct a computer, a programmable data processing device, and / or other device to function in a particular way, and as a result, the computer-readable storage medium in which the instructions are stored comprises a manufactured article containing instructions that implement the modes of functions / actions specified in the blocks or blocks of a flowchart and / or block diagram.
[0059] Computer-readable program instructions can also be loaded onto a computer, other programmable data processing device, or other device to perform a series of operational steps on the computer, other programmable device, or other device, thereby generating a computer implementation process, the instructions executed on the computer, other programmable device, or other device, which implement the functions / actions specified in the blocks or blocks(s) of a flowchart and / or block diagram.
[0060] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer-readable media according to various embodiments. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions comprising one or more executable instructions for implementing a specified logical function. Methods, computer systems, and computer-readable media may include additional blocks, fewer blocks, different blocks, or blocks arranged differently compared to those depicted in the figures. In some alternative implementations, the functions described in the blocks may occur regardless of the order in which they are shown in the figures. For example, two consecutively shown blocks may actually be executed simultaneously or substantially simultaneously, or blocks may be executed in reverse order depending on the functions they relate to. It should also be noted that each block in a block diagram and / or flowchart, and combinations of blocks in a block diagram and / or flowchart, may be implemented by a dedicated hardware-based system that performs a specified function or action or executes a dedicated combination of hardware and computer instructions.
[0061] It will be apparent that the systems and / or methods described herein can be implemented in various forms of hardware, firmware, or combinations of hardware and software. The actual dedicated control hardware or software code used to implement such systems and / or methods is not a limitation of the implementation. Therefore, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, and it is understood that software and hardware can be designed to implement the systems and / or methods based on the descriptions herein.
Claims
1. A method performed by at least one processor to provide runtime safety control, wherein the method is: To determine whether safety controls are required for the process, Based on the decision that the aforementioned safety control is required, a safety control function is selected from among several safety control functions, Replacing the no-operation (NOP) slides in the code associated with the process with the selected safety control function, Methods that include...
2. The method according to claim 1, further comprising reducing the NOP slide in the code into a single instruction based on the determination that the aforementioned safety control is not required.
3. Determining whether the code includes annotations associated with the safety control, Based on the determination that the aforementioned code includes the aforementioned annotation, the annotation is replaced in the NOP slide, The method according to claim 1 or 2, further comprising:
4. The method according to claim 1 or 2, wherein the process is associated with an electronic control unit (ECU).
5. The determination regarding whether the safety control is required for the process is, To obtain the configuration file associated with the Automotive Safety Integrity Level (ASIL) level requirements of the aforementioned ECU, Based on the aforementioned configuration file, it is determined whether the code satisfies the ASIL level requirements, Based on the determination that the aforementioned code does not meet the ASIL level requirements, it is determined that the safety control is required, Based on the determination that the aforementioned code meets the ASIL level requirements, it is determined that the aforementioned safety control is not required. The method according to claim 4, including the method described in claim 4.
6. The selection of the safety control function is Based on the aforementioned configuration file, the folder within the ECU containing the plurality of safety control functions is determined, Determining which of the aforementioned safety control functions satisfies the ASIL level requirements, Selecting the safety control function that satisfies the ASIL level requirements, The method according to claim 5, including the method described in claim 5.
7. The substitution of the NOP slide for the selected safety control function is, Obtain the selected safety control function from the folder of the ECU, Replacing the aforementioned NOP slide with the acquired safety control function, The method according to claim 6, further comprising:
8. The method according to claim 6 or 7, wherein the plurality of safety control functions are stored in raw assembly format.
9. The method according to claim 1 or 2, wherein the selected safety control function is associated with at least one of the following: end-to-end protection requirements, freedom of interference requirements, sound management requirements, and watchdog requirements.
10. A system for providing runtime safety control, wherein the system is Memory storage that stores computer executable instructions, At least one processor that is communicatively connected to the memory storage, The processor comprises the above, and the at least one processor executes the instructions, Determine whether safety controls are required for the process. Based on the decision that the aforementioned safety control is required, a safety control function is selected from among several safety control functions. A system configured to replace no-operation (NOP) slides in the code associated with the process with the selected safety control function.
11. The aforementioned at least one processor further, The system according to claim 10, wherein, based on the determination that the aforementioned safety control is not required, the NOP slide in the code is configured to be reduced to a single instruction.
12. The aforementioned at least one processor further, Determine whether the code includes annotations associated with the safety control. The system according to claim 10 or 11, configured to replace the annotation in the NOP slide based on the determination that the code includes the annotation.
13. The system according to claim 10 or 11, wherein the process is associated with an electronic control unit (ECU).
14. The at least one processor determines whether the safety control relating to the process is required. To obtain the configuration file associated with the Automotive Safety Integrity Level (ASIL) level requirements of the aforementioned ECU, Based on the aforementioned configuration file, it is determined whether the code satisfies the ASIL level requirements, Based on the determination that the aforementioned code does not meet the ASIL level requirements, it is determined that the safety control is required, Based on the determination that the aforementioned code meets the ASIL level requirements, it is determined that the aforementioned safety control is not required. The system according to claim 13, configured to be determined by
15. The aforementioned at least one processor is Based on the aforementioned configuration file, the folder within the ECU containing the plurality of safety control functions is determined, Determining which of the aforementioned safety control functions satisfies the ASIL level requirements, Selecting the safety control function that satisfies the ASIL level requirements, The system according to claim 14, configured to select the safety control function accordingly.
16. The aforementioned at least one processor is Obtain the selected safety control function from the folder of the ECU, Replacing the aforementioned NOP slide with the acquired safety control function, The system according to claim 15, wherein the NOP slide is configured to replace the selected safety control function.
17. The system according to claim 15 or 16, wherein the plurality of safety control functions are stored in raw assembly format.
18. The system according to claim 10 or 11, wherein the selected safety control function is associated with at least one of the following: end-to-end protection requirements, freedom of interference requirements, sound management requirements, and watchdog requirements.
19. A computer program for causing at least one processor to perform a method for providing runtime safety control, The aforementioned method, To determine whether safety controls are required for the process, Based on the decision that the aforementioned safety control is required, a safety control function is selected from among several safety control functions, Replacing the no-operation (NOP) slides in the code associated with the process with the selected safety control function, A computer program that includes [this].
20. The aforementioned method, The computer program according to claim 19, further comprising reducing the NOP slide in the code to a single instruction based on the determination that the aforementioned safety control is not required.