CPC G06F 8/658 (2018.02) [B60W 50/02 (2013.01); B60W 50/0205 (2013.01); B60W 50/0225 (2013.01); B60W 50/04 (2013.01); B60W 50/045 (2013.01); G06F 8/60 (2013.01); G06F 8/65 (2013.01); G06F 8/654 (2018.02); G06F 8/656 (2018.02); G06F 8/71 (2013.01); G06F 9/4401 (2013.01); G06F 9/445 (2013.01); G06F 9/44521 (2013.01); G06F 11/0721 (2013.01); G06F 11/0751 (2013.01); G06F 11/079 (2013.01); G06F 11/0793 (2013.01); G06F 11/1433 (2013.01); G06F 11/1629 (2013.01); G06F 11/3612 (2013.01); G06F 12/0284 (2013.01); G06F 12/0646 (2013.01); G06F 16/188 (2019.01); G06F 21/57 (2013.01); G06F 21/572 (2013.01); G06F 21/577 (2013.01); B60W 2050/021 (2013.01); G06F 8/66 (2013.01); G06F 2212/1008 (2013.01); G06F 2212/1044 (2013.01); G06F 2212/1056 (2013.01); G06F 2221/033 (2013.01); G06N 20/00 (2019.01)] | 18 Claims |
1. A non-transitory computer-readable medium including instructions that, when executed by at least one processor, cause the at least one processor to perform operations for providing software changes, comprising:
determining a controller software change configured to adjust a controller from being configured to execute a first version of controller software to being configured to execute a second version of the controller software; and
sending, to the controller and based on the determining, a delta file, wherein the delta file:
comprises a plurality of deltas;
is constructed based on differences between the first version of the controller software and the second version of the controller software; and
is configured to:
link execution of current code stored on the controller with a segment of code from the delta file;
update a program counter of the controller to cause the controller to skip a portion of the current code and execute code contained in the delta file instead of the skipped code;
extract code for updating memory addresses in the controller; and
update the memory addresses in the controller to correspond to the plurality of deltas.
|