US 12,169,710 B2
Self-healing learning system for one or more controllers
Zohar Fox, Tel Aviv (IL)
Assigned to Aurora Labs Ltd., Tel Aviv (IL)
Filed by Aurora Labs Ltd., Tel Aviv (IL)
Filed on Jan. 3, 2024, as Appl. No. 18/403,006.
Application 18/403,006 is a continuation of application No. 18/295,343, filed on Apr. 4, 2023, granted, now 11,900,103.
Application 18/295,343 is a continuation of application No. 17/654,622, filed on Mar. 14, 2022, granted, now 11,650,807, issued on May 16, 2023.
Application 17/654,622 is a continuation of application No. 17/377,466, filed on Jul. 16, 2021, granted, now 11,314,502, issued on Apr. 26, 2022.
Application 17/377,466 is a continuation of application No. 17/096,413, filed on Nov. 12, 2020, granted, now 11,099,836, issued on Aug. 24, 2021.
Application 17/096,413 is a continuation of application No. 16/921,999, filed on Jul. 7, 2020, granted, now 10,866,853, issued on Dec. 15, 2020.
Application 16/921,999 is a continuation of application No. 16/857,547, filed on Apr. 24, 2020, granted, now 10,747,604, issued on Aug. 18, 2020.
Application 16/857,547 is a continuation of application No. 16/751,872, filed on Jan. 24, 2020, granted, now 10,678,627, issued on Jun. 9, 2020.
Application 16/751,872 is a continuation of application No. 16/594,206, filed on Oct. 7, 2019, granted, now 10,585,661, issued on Mar. 10, 2020.
Application 16/594,206 is a continuation of application No. 16/458,360, filed on Jul. 1, 2019, granted, now 10,481,899, issued on Nov. 19, 2019.
Application 16/458,360 is a continuation of application No. 16/360,653, filed on Mar. 21, 2019, granted, now 10,416,989, issued on Sep. 17, 2019.
Application 16/360,653 is a continuation of application No. 16/044,454, filed on Jul. 24, 2018, granted, now 10,303,460, issued on May 28, 2019.
Claims priority of provisional application 62/536,767, filed on Jul. 25, 2017.
Claims priority of provisional application 62/560,224, filed on Sep. 19, 2017.
Prior Publication US 2024/0152354 A1, May 9, 2024
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 8/65 (2018.01); B60W 50/02 (2012.01); B60W 50/04 (2006.01); G06F 8/60 (2018.01); G06F 8/654 (2018.01); G06F 8/656 (2018.01); G06F 8/658 (2018.01); G06F 8/71 (2018.01); G06F 9/4401 (2018.01); G06F 9/445 (2018.01); G06F 11/07 (2006.01); G06F 11/14 (2006.01); G06F 11/16 (2006.01); G06F 11/36 (2006.01); G06F 12/02 (2006.01); G06F 12/06 (2006.01); G06F 16/188 (2019.01); G06F 21/57 (2013.01); G06N 20/00 (2019.01)
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
OG exemplary drawing
 
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.