WO2017165454A1 - Method for remote system onboard software updating and protection - Google Patents
Method for remote system onboard software updating and protection Download PDFInfo
- Publication number
- WO2017165454A1 WO2017165454A1 PCT/US2017/023461 US2017023461W WO2017165454A1 WO 2017165454 A1 WO2017165454 A1 WO 2017165454A1 US 2017023461 W US2017023461 W US 2017023461W WO 2017165454 A1 WO2017165454 A1 WO 2017165454A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- software
- remote system
- code
- protection
- software updating
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Definitions
- the present invention relates generally to a new method of storing and updating or replacing software code in an embedded computer system, with greatest application to remote systems located some distance from the user such that data communications is limited (for example environmental and equipment monitoring systems, unmanned aerial vehicle, satellites and robots). More specifically, the present invention is a new way of reducing the quantity of data communication necessary for a system to receive and update its operating system and application software. The present invention simplifies the updating of embedded software.
- Spacecraft Example Currently, spacecraft software is written before the satellite is launched, is compiled into a binary and loaded into the spacecraft memory before launch. Some spacecraft allow the possibility to update the software by compiling a new binary on the ground and communicating the entire binary file to the spacecraft. Spacecraft are becoming more complex, and the software is becoming larger. The act of communicating the entire binary to the spacecraft takes time. This is especially true for spacecraft operating at great distance from earth.
- the present invention is a new method for updating embedded software by having a code repository on the remote system.
- To implement changes to the software only the changed lines of code are uploaded to the embedded system, along with instructions on where in the code these are to be inserted.
- the code can be complied and executed within the remote system. Upload verification is also proposed, to improve reliability.
- Upload may be compressed by various means, including partial compiling or compiling into object files.
- a system architecture with multiple processors and memory banks can store code in one or more locations, compile it in one or more locations and execute it is one or more locations, each location being possibly on different subsystem, chip or virtual environment within the remote system.
- Watchdog systems may be incorporated at the system level, within subsystems (circuit boards) and in the run environment.
- the process of the present invention utilizes several main components onboard the remote system: A) software code repository (binary or text), B) binary system boot loader software and C) software compiler, D) means to execute the compiled code.
- A) software code repository binary or text
- D) means to execute the compiled code This combination of non-obvious and unique method of software upload results in higher efficiency as compared with traditional systems and does not require the time-consuming uploading of an entire full-length binary code update.
- the invention applies equally to software that must be compiled and to software that must be interpreted.
- the compiler is not present and instead there is an interpreter. Variation on the compiler/interpreter are also possible.
- this invention will enable the field deployment of remote systems with no application software. All software can then be delivered and compiled after deployment.
- a versioning system history program for additional safety mechanisms related to fault protection based on a dual hash check verification process 2.
- the present invention comprises the following machinery components:
Abstract
Software updating and protection system comprising: Code repositories; Remote system and/or subsystem boot loader; Pre-compilation; and Power, communications, and processing sensor and communication systems.
Description
Deep Space Industries
Method for remote system onboard software updating and protection
FIELD OF THE INVENTION
The present invention relates generally to a new method of storing and updating or replacing software code in an embedded computer system, with greatest application to remote systems located some distance from the user such that data communications is limited (for example environmental and equipment monitoring systems, unmanned aerial vehicle, satellites and robots). More specifically, the present invention is a new way of reducing the quantity of data communication necessary for a system to receive and update its operating system and application software. The present invention simplifies the updating of embedded software.
BACKGROUND OF THE INVENTION
Spacecraft Example: Currently, spacecraft software is written before the satellite is launched, is compiled into a binary and loaded into the spacecraft memory before launch. Some spacecraft allow the possibility to update the software by compiling a new binary on the ground and communicating the entire binary file to the spacecraft. Spacecraft are becoming more complex, and the software is becoming larger. The act of communicating the entire binary to the spacecraft takes time. This is especially true for spacecraft operating at great distance from earth.
When writing software it is common practice to store the software code in a code repository or
"concurrent versioning system" that resides on a server. Updates made to any one or more software source files by a software developer are sent to the repository, which updates the "head" of the repository. The changes are sent to all other developers. In this way every developer can always be assured of having the latest version of the software code. An important aspect of the repository is that is only communicates the changes in the updated code file, and sometimes considerably less than the entire file. For example if line 2500 and 2501 are changed, only those two lines need be communicated from the developer to the repository.
DETAIL DESCRIPTIONS OF THE INVENTION
The present invention is a new method for updating embedded software by having a code repository on the remote system. To implement changes to the software, only the changed lines of code are uploaded to the embedded system, along with instructions on where in the code these are to be inserted. The code can be complied and executed within the remote system. Upload verification is also proposed, to improve reliability.
Upload may be compressed by various means, including partial compiling or compiling into object files.
By retaining previous versions of the software, bot pre-compiled code and compiled binary files, it is possible to revert to a known-working version without uploading any code. Reversion can be autonomous, with triggers defined by the software developer or within the compiler or watchdog systems.
Deep Space Industries (c) 2014. All Rights Reserved. Confidential
The architecture on which this method is implemented is also part of this invention. A system architecture with multiple processors and memory banks can store code in one or more locations, compile it in one or more locations and execute it is one or more locations, each location being possibly on different subsystem, chip or virtual environment within the remote system.
Watchdog systems may be incorporated at the system level, within subsystems (circuit boards) and in the run environment.
The process of the present invention utilizes several main components onboard the remote system: A) software code repository (binary or text), B) binary system boot loader software and C) software compiler, D) means to execute the compiled code. This combination of non-obvious and unique method of software upload results in higher efficiency as compared with traditional systems and does not require the time-consuming uploading of an entire full-length binary code update.
The invention applies equally to software that must be compiled and to software that must be interpreted. In the later case, the compiler is not present and instead there is an interpreter. Variation on the compiler/interpreter are also possible.
It is envisaged that this invention will enable the field deployment of remote systems with no application software. All software can then be delivered and compiled after deployment.
This can be achieved by the following advances:
1. An algorithm distributing these three elements among the remote system's subsystems for efficiency of the compiler, repository, and reboot functions.
2. A versioning system history program for additional safety mechanisms related to fault protection based on a dual hash check verification process.
The simplicity of this approach - utilizing a code repository storage and self-correction mechanisms - allows for ease of implementation and readily scales to larger remote systems.
In the preferred embodiment, the present invention comprises the following machinery components:
1. Code repositories;
2. Remote system and/or sub-system boot loader;
3. Pre-compilation;
4. Power, communications, and processing sensor and communication systems; and
Although the invention has been explained in relation to its preferred embodiment, it is to be understood that many other possible modifications and variations can be made without departing from the spirit and scope of the invention as herein described including to terrestrial applications such as automobiles, aircraft, sea-going systems, and intelligent housing applications.
Claims
1. Software updating and protection system comprising:
Code repositories;
Remote system and/or sub-system boot loader;
Pre-compilation; and
Power, communications, and processing sensor and communication systems.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662311376P | 2016-03-21 | 2016-03-21 | |
US62/311,376 | 2016-03-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017165454A1 true WO2017165454A1 (en) | 2017-09-28 |
Family
ID=59900717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2017/023461 WO2017165454A1 (en) | 2016-03-21 | 2017-03-21 | Method for remote system onboard software updating and protection |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2017165454A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5878432A (en) * | 1996-10-29 | 1999-03-02 | International Business Machines Corporation | Object oriented framework mechanism for a source code repository |
US20060129846A1 (en) * | 2004-12-01 | 2006-06-15 | Lambert Mark J | System and method for processing encrypted source code updates |
US20100205596A1 (en) * | 2007-07-26 | 2010-08-12 | Gangneung-Wonju Nationa University Industrial Academy Cooperation Group | Method for updating firmware of sensor nodes on the wireless sensor network |
US20100215280A1 (en) * | 2009-02-26 | 2010-08-26 | Microsoft Corporation | Rdp bitmap hash acceleration using simd instructions |
-
2017
- 2017-03-21 WO PCT/US2017/023461 patent/WO2017165454A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5878432A (en) * | 1996-10-29 | 1999-03-02 | International Business Machines Corporation | Object oriented framework mechanism for a source code repository |
US20060129846A1 (en) * | 2004-12-01 | 2006-06-15 | Lambert Mark J | System and method for processing encrypted source code updates |
US20100205596A1 (en) * | 2007-07-26 | 2010-08-12 | Gangneung-Wonju Nationa University Industrial Academy Cooperation Group | Method for updating firmware of sensor nodes on the wireless sensor network |
US20100215280A1 (en) * | 2009-02-26 | 2010-08-26 | Microsoft Corporation | Rdp bitmap hash acceleration using simd instructions |
Non-Patent Citations (1)
Title |
---|
PREDKI ET AL.: "Intelligent Platform-Management Controller for Low-Level RF Control System ATCA Carrier Board", IEEE TRANSACTIONS ON NUCLEAR SCIENCE, vol. 58, no. 4, August 2011 (2011-08-01), pages 1538 - 1543, XP011373144, Retrieved from the Internet <URL:http://ieeexplore.ieee.org/document/5778959> [retrieved on 20170510] * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860299B2 (en) | Extensible data transformation authoring and validation system | |
US9507581B2 (en) | Systems and methods of device firmware delivery for pre-boot updates | |
US9507604B2 (en) | Boot method and boot system | |
US9104504B2 (en) | Systems and methods for embedded shared libraries in an executable image | |
US20170322796A1 (en) | Device and method for updating firmware and firmware update system | |
US20120240108A1 (en) | Method and device for installing/uninstalling software modules, with centralized resolution of constraints, in aircraft apparatuses | |
US10108402B2 (en) | Persistent pointers for programs running on NVRAM based computers | |
Sünter et al. | Firmware updating systems for nanosatellites | |
US20110035405A1 (en) | Method and system for data class update | |
US11263001B2 (en) | Car onboard control device and program updating software | |
WO2017165454A1 (en) | Method for remote system onboard software updating and protection | |
US11360673B2 (en) | Removable data volume management | |
US10733065B2 (en) | Recovery of local resource | |
CN105453057A (en) | Storing difference information in a backup system | |
CN105260196A (en) | Method for making Android system support QT APP | |
Ayres et al. | Virtualisation as a means for dynamic software update within the automotive E/E architecture | |
US20180341475A1 (en) | Just In Time Deployment with Package Managers | |
CN110134456B (en) | Method, apparatus, device and storage medium for managing operating system | |
US10678734B2 (en) | Communication system for controlling or monitoring vehicle components | |
US20230419745A1 (en) | Systems and techniques for providing an adaptable and container-based internet of things platform environment | |
KR102142905B1 (en) | Automatic Restoring Method of User File System in Communication Terminal | |
CN110990041A (en) | Bootloader upgrading method and bootloader upgrading system | |
Miller | Space-operating Linux: An Operating System for High Performance AI Computation on Commercial-Grade Equipment in Low Earth Orbit | |
KR102057524B1 (en) | Execution point restoration mtehod for performing the satellite control system | |
CN116166473A (en) | Data processing method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17771015 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17771015 Country of ref document: EP Kind code of ref document: A1 |