DETAILED ACTION
This action is in response to the application filed on 11/21/2024.
Claims 1-20 are pending.
Priority
Receipt is acknowledged of certified copies of papers required by 37 CFR 1.55.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Objections
Claims 1 and 20 are objected to because of the following informalities: “a downloaded value” is suggested to be amended to read as “a downgraded value.” Appropriate correction is required.
Claim 19 is objected to because of the following informalities: “recoded in a first block” is suggested to be amended to read as “recorded in a first block.” Appropriate correction is required.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1, 4, 9, 16-17, 20 are rejected under 35 U.S.C. 103 as being unpatentable over Rao (US 2023/0315284 A1) hereinafter Rao in view of Stevens et al. (US 2022/0027138 A1) hereinafter Stevens and NI et al. (US 2021/0279048 A1) hereinafter NI.
Regarding claim 1, Rao discloses a method comprising:
writing a reprogram image in a first flash memory through a bootloader (e.g. Rao [0013] lines 7-11 and [0014] lines 1-7; which states the bootloader's kernel copies/writes the new application/reprogram image into an application portion (viewed as a first flash memory) which is included in flash bank 0.)
identifying a previous version value of the application stored in a second flash memory by calling, through the bootloader, a function [] to be loaded by the reprogram image (e.g. Rao [0030] lines 4-18 and [0031] 9-13; which states an image check function reading the previous image version value from a specified location in flash bank 0 (viewed as a second flash memory separate from the application portion of flash bank 0) to determine if the previous image is valid and thus requires replacement with a new image; an improperly written new application image triggers the bootloader portion to execute/load the image check function (where the new image is viewed as loading the image check function).)
Rao does not disclose:
a function designated by one of function pointers that are recorded in a predetermined location in the application
and deleting the reprogram image written in the first flash memory when a current version value included in the application is identified to be a downloaded value compared to the previous version value
However, Stevens discloses:
and deleting the reprogram image written in [] memory [] (e.g. Stevens [0057] 13-16 and [0060] lines 1-3; which states when to prevent a downgrade the firmware image is deleted.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate the teachings of Stevens by including and deleting the reprogram image written in [] memory [] to prevent malicious firmware from being installed.
However, NI discloses:
a function designated by one of function pointers that are recorded in a predetermined location in the application (e.g. NI [0041] lines 1-2 and [0042] lines 1-6; which states sub-state flags corresponding to function instruction pointers (which correspond to functions) are recorded in the flag sector where each flag indicates pointer status and is viewed as a recording of each function pointer in a predetermined location (flag sector); details of the application are described above in Rao.)
and deleting the reprogram image written in the first flash memory when a current version value included in the application is identified to be a downloaded value compared to the previous version value (Note: The examiner interprets ‘downloaded’ to mean ‘downgraded’ provided the applicant’s use of the term ‘downgraded’ in independent claim 9. e.g. NI [0034] lines 8-10; which states if the initial/previous firmware version is greater than the upgrade/current firmware version (upgraded version is a downgraded value), then the upgrade process halts (where the upgrade firmware version is no longer required and is viewed to be deleted); details of the first flash memory are discussed above in Rao; details of deleting the reprogram image to prevent a downgrade are described above in Stevens.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate NI’s teachings by including a function designated by one of function pointers that are recorded in a predetermined location in the application; and deleting the reprogram image written in the first flash memory when a current version value included in the application is identified to be a downloaded value compared to the previous version value; to make efficient use of memory.
As to claim 4, Rao discloses:
verifying integrity of the reprogram image, wherein, when the integrity of the reprogram image is not verified, the reprogram image written in the first flash memory is deleted (e.g. Rao [0023] lines 5-7 and [0030] lines 6-8, 13-18; which states replacing an invalid application/firmware/reprogram image with a new application/reprogram/image in the application portion (first flash memory) and that old application/firmware/reprogram images are erased/deleted; details of halting/deleting the reprogram image in the upgrade process when the previous version value is greater than the current (upgrade) value is discussed in Stevens and NI of claim 1.
Regarding claim 9, Rao discloses: A Micro-controller Unit (MCU) comprising:
the MCU (e.g. Rao [0009] lines 6-13; which states a microcontroller of a host integrated circuit is communicatively coupled to the CPU which is viewed the microcontroller comprising the following components/functions.)
a first flash memory configured to store a program image; (e.g. Rao [0021] lines 1-2, [0022] lines 1-3; which states flash bank/memory 0 contains an application portion for storing a firmware image;)
a second flash memory configured to store data; (e.g. Rao [0030] lines 4-18; which states an image check function reading a specified location in flash bank 0 (viewed as a second flash memory that is separate from the application portion of flash bank 0) to check/identify an application version number/value/data).)
a Random Access Memory (RAM) in which the program image is loaded; (e.g. Rao [0023] lines 1-3; which states writing new application/firmware image into RAM.)
and a Central Processing Unit (CPU) configured to write a reprogram image in the first flash memory [] (e.g. Rao [0014] lines 3-7; which states new application/firmware image is copied/written into application portion (viewed as a first flash memory) of flash bank by the CPU.)
check function pointers [] of an application to be loaded in the RAM according to the reprogram image (e.g. Rao [0028] lines 1-2, 8-9; which states having loaded and updated/checked function pointers into RAM according to the application/firmware/reprogram image; (where it is viewed that updates are performed according to a new/reprogram image).)
call a function [] to identify a previous version value stored in the second flash memory (e.g. Rao [0030] lines 4-18; which states an image check function reading a specified location in flash bank 0 (viewed as a second flash memory that is separate from the application portion of flash bank 0) to check/identify a previous application version number/value in case a new application image should replace it.)
Rao does not disclose:
check function pointers in a predetermined location
call a function designated by one of the function pointers
delete the reprogram image written in the first flash memory when a current version value included in the application is identified to be a downgraded value compared to the previous version value
However, Stevens discloses:
and deleting the reprogram image written in [] memory [] (e.g. Stevens [0057] 13-16 and [0060] lines 1-3; which states when to prevent a downgrade the firmware image is deleted.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate the teachings of Stevens by including and deleting the reprogram image written in [] memory [] to prevent malicious firmware from being installed.
However, NI discloses:
check function pointers in a predetermined location (e.g. NI [0041] lines 1-2 and [0042] lines 1-6; which states sub-state flags corresponding to function instruction pointers (which correspond to functions) indicate pointer status (such as being idle) and are recorded in the flag sector where each flag is viewed as a recording of each function instruction pointer in a predetermined location (flag sector);)
call a function designated by one of the function pointers (NI [0042] lines 3-6; which states function pointers that correspond to functions which require a response from initial firmware.)
delete the reprogram image written in the first flash memory when a current version value included in the application is identified to be a downgraded value compared to the previous version value (Note: The examiner interprets ‘downloaded’ to mean ‘downgraded’ provided the applicant’s use of the term ‘downgraded’ in independent claim 9. e.g. NI [0034] lines 8-10; which states if the initial/previous firmware version is greater than the upgrade/current firmware version (upgraded version is a downgraded value), then the upgrade process halts (where the upgrade firmware version is no longer required and is viewed to be deleted); details of the first flash memory are discussed above in Rao; details of deleting the reprogram image to prevent a downgrade are discussed in Stevens above.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate NI’s teachings by including check function pointers in a predetermined location; call a function designated by one of the function pointers; delete the reprogram image written in the first flash memory when a current version value included in the application is identified to be a downgraded value compared to the previous version value; to make efficient use of memory.
As to claim 16, Rao discloses:
verify integrity of the application (e.g. Rao [0030] lines 11-18; which states image check checks/determines whether there is a valid application image in the application portion.)
and delete a reprogram image stored in the first flash memory, when the integrity is not verified (e.g. Rao [0030] lines 11-18; which states when there is an invalid application in the application portion a valid application is written into the application portion of flash memory thereby overwriting/deleting the invalid application image; details of halting/deleting the reprogram image in the update process is discussed in Stevens and NI of claim 9.)
As to claim 17, Rao discloses:
load a bootloader in the RAM to execute the bootloader; (e.g. Rao [0016] lines 6-7, 12-13; which states copying/loading contents of the bootloader portion into RAM.)
and perform an operation of writing and deleting the reprogram image in and from the first flash memory according to the bootloader (e.g. Rao [0014] lines 1-3 and [0023]; which states a SCI kernel in the bootloader write a new application to flash bank and erase the old application/firmware/reprogram image from flash bank 0’s application portion; where the new application/firmware/reprogram image, after having been written into flash bank 0 can be subsequently erased, provided a newer application upgrade becomes available; details of halting/deleting the reprogram image in the update process is discussed in NI of claim 9.))
Claim 20 is a non-transitory computer-readable medium claim similar to method claim 1. Thus, claim 20 is rejected under similar analysis to that of claim 1.
Claims 2-3, 5-6, 12-13, 15 are rejected under 35 U.S.C. 103 as being unpatentable over Rao in view of Stevens and NI as applied to claims 1, 9 above, and further in view of Wikipedia ("Volume boot record") hereinafter Wikipedia.
As to claim 2, Rao does not disclose:
wherein the function pointers are recorded in a first predetermined location in a Volume Boot Record (VBR) area of the application
However, Wikipedia discloses:
wherein the function pointers are recorded in a first predetermined location in a Volume Boot Record (VBR) area of the application (e.g. Wikipedia, Technical Details, Signature para. 1 lines 1-3; which states a predetermined offset region describing the presence of a boot loader within the boot sector (VBR); The details of function pointers recorded in a first predetermined location are discussed in NI of claim 1; the details of the application are discussed in Rao above.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate Wikipedia’s teachings by including wherein the function pointers are recorded in a first predetermined location in a Volume Boot Record (VBR) area of the application to indicate the presence of a boot sector.
As to claim 3, Rao discloses:
before writing the reprogram image in the first flash memory, scanning for flag variable (e.g. Rao [0022] lines 15-20; which states before image writing, setting a LFU (live firmware update) flag to initiate the LFU process which includes writing a firmware image to the application portion (first flash memory); where it is viewed that the scanning of the flag variable value/status must occur to perform the image writing process.)
Rao does not disclose:
a partition flag variable in a second location predetermined in the VBR area
wherein, when the partition flag variable is not identified at the second location, the writing of the reprogram image in the first flash memory is not performed
However, NI discloses:
a partition flag variable in a second location predetermined in the VBR area (e.g. NI [0008] lines 6-12 and [0027] lines 1-13 which states flags (viewed as partition flags) describing the status of sectors/regions of memory stored in a flag sector; where a second location predetermined in the VBR area is viewed as the aforementioned offset/signature region above in Wikipedia of claim 2.)
wherein, when the partition flag variable is not identified at the second location, the writing of the reprogram image in the first flash memory is not performed (e.g. NI [0045] lines 10-16; which states a firmware upgrade function (viewed as writing of the reprogram image) does not initiate when the firmware upgrade flag/variable indicates as such; details of the first flash memory are discussed in Rao of claim 1; details of the second location is discussed in Wikipedia of claim 2.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate NI’s teachings by including a partition flag variable in a second location predetermined in the VBR area; wherein, when the partition flag variable is not identified at the second location, the writing of the reprogram image in the first flash memory is not performed; to make efficient use of memory.
As to claim 5, Rao does not disclose:
changing a value of the partition flag variable in the second location predetermined in the VBR area, when the current version value included in the application is identified to be an upgraded value compared to the previous version value
However, NI discloses:
changing a value of the partition flag variable in the second location predetermined in the VBR area, when the current version value included in the application is identified to be an upgraded value compared to the previous version value (e.g. NI [0045] lines 1-6; which states modifying the firmware upgrade flag to indicate the firmware upgrade function is initiated (which is viewed as when the new image is an upgraded value compared to the old image; where the specifics of the second predetermined location in the VBR is described Wikipedia above in claim 2.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate NI’s teachings by including changing a value of the partition flag variable in the second location predetermined in the VBR area, when the current version value included in the application is identified to be an upgraded value compared to the previous version value to provide a simple indication of upgrade status.
As to claim 6, Rao discloses:
before identifying the previous version value stored in the second flash memory [] the identifying of the previous version value stored in the second flash memory is not performed (e.g. Rao [0030] lines 1-11 and [0031] lines 1-7; which states performing reboot functions before the image/version check mentioned above in Rao of claim 1; where the rebooting occurring before the image/version check necessarily means the identification step is not performed. Additionally, if image was improperly written, the previous version is directly updated/overwritten and not necessarily read/identified.
Rao does not disclose:
identifying a format of a predetermined area in the VBR
wherein, when the format of the predetermined area is different from a predetermined format
However, NI discloses:
wherein, when the format of the predetermined area is different from a predetermined format (e.g. NI [0037] lines 1-10, [0041] lines 1-2 and [0045] lines 1-6; which states different predetermined state value formats of an upgrade request; where the state value of a firmware upgrade flag variable is stored in the predetermined flag sector as mentioned above.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate NI’s teachings by including wherein, when the format of the predetermined area is different from a predetermined format to indicate busy/idle states of the electronic device (e.g. NI [0037] lines 1-10).
However, Wikipedia discloses:
identifying a format of a predetermined area in the VBR area (e.g. Wikipedia, Technical Details, Signature para. 1 lines 1-3; which states an indication/identification of a two-byte hexadecimal sequence of an offset region describing the presence of a boot loader within the boot sector (VBR).)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate Wikipedia’s teachings by including identifying a format of a predetermined area in the VBR area to indicate the presence of a boot sector.
As to claim 12, Rao does not disclose:
wherein a variable storing an index of a block storing the previous version value in the second flash memory and a variable indicating a status value of the block are formed in predetermined locations in a Volume Boot Record (VBR) area of the application
However, NI discloses:
wherein a variable storing an index of a block storing the previous version value in the second flash memory and a variable indicating a status value of the block are formed (Ni [0052] lines 1-4); which states storing/forming location/index information of memory blocks of a certain status such as whether or not they were erased; the details of storing the previous version value in the second flash memory are discussed in Rao of claim 9.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate NI’s teachings by including wherein a variable storing an index of a block storing the previous version value in the second flash memory and a variable indicating a status value of the block to determine whether any further memory sector erasing operation is required (e.g. NI [0052] lines 11-16).
However, Wikipedia discloses:
predetermined locations in a Volume Boot Record (VBR) area of the application (e.g. Wikipedia, Technical Details, Signature, para. 1 lines 1-3, Invocation, para. 3 line 1; which states a predetermined offset region describing the presence of a boot loader within the boot sector (VBR); an additional predetermined location in the VBR is the memory location at which it is loaded.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate Wikipedia’s teachings by including predetermined locations in a Volume Boot Record (VBR) area of the application to load the VBR at a known memory address and locate the boot sector.
As to claim 13, Rao does not disclose:
wherein the CPU is configured to call functions designated by the function pointers according to the status value of the block and identifies the previous version value stored in the second flash memory
However, NI discloses:
wherein the CPU is configured to call functions designated by the function pointers according to the status value of the block and identifies the previous version value stored in the second flash memory (e.g. Ni [0042] lines 1-6; which states function instruction pointers correspond to functions for the memory blocks erasure; where whether the block is erased is viewed as a status value; additionally processing/calling functions is viewed as being configured to be performed by a CPU. The details of identification of a previous version value in the second flash memory are discussed above in Rao of claim 9.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate NI’s teachings by including wherein the CPU is configured to call functions designated by the function pointers according to the status value of the block and identifies the previous version value stored in the second flash memory to process functions by initial/previous firmware (e.g. NI [0042] lines 3-6).
As to claim 15, Rao discloses:
and the CPU is configured to read an address value of one function pointer in the first location, and jump to an execution location with a corresponding address value to call the function. (e.g. Rao [0028] lines 19-22; which states function calls are called (jumped to via CPU) as memory locations/addresses specified by pointers; where a function pointer in the first location is discussed in the previous limitation.)
Rao does not disclose:
the function pointers are recorded in a first location predetermined in the VBR area of the application;
However, NI discloses:
the function pointers are recorded in a first location predetermined []; (e.g. NI [0024] lines 2-5, [0041] lines 1-2, and [0042] lines 1-6; which states function instruction pointers, stored in a predetermined flag sector in memory.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate NI’s teachings by including the function pointers are recorded in a first location predetermined [] to determine if the system is in the idle state (e.g. NI [0041] lines 1-4).
However, Wikipedia discloses:
a location predetermined in the VBR area of the application (e.g. Wikipedia, Technical Details, Signature para. 1 lines 1-3; which states an offset region describing the presence of a boot loader within the boot sector (VBR).)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate Wikipedia’s teachings by including a location predetermined in the VBR area of the application to indicate the presence of a boot sector.
Claims 7, 10, 11, 14, 18 are rejected under 35 U.S.C. 103 as being unpatentable over Rao in view of Stevens and NI as applied to claim 1, 9 above, and further in view of Benhammadi (US 2023/0385149 A1) hereinafter Benhammadi.
As to claim 7, Rao does not disclose:
wherein functions designated by the function pointers are functions that enable access to the second flash memory by an emulator
However, Benhammadi discloses:
wherein functions designated by the function pointers are functions that enable access to the second flash memory by an emulator (Benhammadi [0033] lines 1-2; which states configuring/enabling emulation of flash memory. The details of functions and their associated pointers are described in NI of claim 1 above.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate Benhammadi’s teachings by including wherein functions designated by the function pointers are functions that enable access to the second flash memory by an emulator to enable finer access granularity than Flash memory (e.g. Benhammadi [0033] lines 3-4).
As to claim 10, Rao does not disclose:
an emulator configured to manage storage and deletion of data for the second flash memory, wherein functions designated by the function pointers are functions that enable access to the second flash memory through the emulator
However, Benhammadi discloses:
an emulator configured to manage storage and deletion of data for the second flash memory, wherein functions designated by the function pointers are functions that enable access to the second flash memory through the emulator (e.g. Benhammadi [0004] and [0031] ; which states EEPROM can overwrite data values in flash memory; where overwrite includes writing data values and overwriting/deleting data values; states furthermore that EEPROM emulation is implemented using flash memory. The details of the function pointers and their associated functions are discussed in NI of claim 9.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate Benhammadi’s teachings by including an emulator configured to manage storage and deletion of data for the second flash memory, wherein functions designated by the function pointers are functions that enable access to the second flash memory through the emulator to enable finer access granularity than flash memory (e.g. Benhammadi [0033] lines 3-4).
As to claim 11, Rao discloses:
functions located in the application, among a bootloader and the application (e.g. Rao [0003] lines 2-8; which states instructions/functions in the application and bootloader for performing the interrupt service routine.)
Rao does not disclose:
wherein the emulator is accessed by functions
However, Benhammadi discloses:
wherein the emulator is accessed by functions (e.g. Benhammadi [0049] lines 9-12; which state user accessing the emulator by setting (viewed as a set function) flash memory specifications for the emulator.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate Benhammadi’s teachings by including wherein the emulator is accessed by functions to set user options for EEPROM emulation on flash memory (e.g. Benhammadi [0049] lines 9-12).
As to claim 14, Rao discloses:
RAM is configured to erase data [] (e.g. Rao [0023] lines 1-5; which states RAM copying chunks of data into RAM; where copying into RAM is viewed as simultaneously overwriting/erasing previous data.)
Rao does not disclose:
to erase data in bit or byte units
and the second flash memory is configured to erase data in block units
However, NI discloses:
and the second flash memory is configured to erase data in block units (e.g. Ni [0042] lines 3-6; which states erasing block of the memory module; where the details of the second flash memory are discussed above in Rao of claim 9.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate NI’s teachings by including and the second flash memory is configured to erase data in block units to efficiently erase large amounts of data.
However, Benhammadi discloses:
[] to erase data in bit or byte units; (e.g. Benhammadi [0004] and [0047] lines 1-8; which states a SIZE parameter for indicating number of bits of which to write/overwrite/erase.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate Benhammadi’s teachings by including [] to erase data in bit or byte units to indicate data size of read/write/overwrite access (e.g. Benhammadi [0004] and [0047] lines 1-8).
As to claim 18, Rao discloses:
wherein functions designated by the function pointers comprise a function handling (e.g. Rao [0028] lines 19-22; which states function calls/handling are called (jumped to via CPU) as memory locations/addresses specified by pointers.)
function handling a Non-volatile Memory (NvM) module [] and a function handling a Flash Driver (Fls) module (e.g. Rao [0014] lines 1-3; which states a flash application programming interface (functions) in the bootloader; where flash memory is a nonvolatile memory module and a flash API is viewed as handling a flash driver.)
Rao does not disclose:
a function handling a Flash EEPROM Emulation (Fee) module
However, Benhammadi discloses:
a function handling a Flash EEPROM Emulation (Fee) module (e.g. Benhammadi [0078] lines 1-6; which states a data memory emulation software/functions for Flash EEPROM Emulation.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate Benhammadi’s teachings by including a function handling a Flash EEPROM Emulation (Fee) module to enable finer access granularity than Flash memory (e.g. Benhammadi [0033] lines 3-4).
Claims 8, 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Rao in view of Stevens and NI as applied to claim 1, 9 above, and further in view of Rao et al. (US 2023/0289175 A1) hereinafter Rao/Chidambaram.
As to claim 8, Rao does not disclose:
when the current version value included in the application is identified to be an upgraded value compared to the previous version value, recording the previous version value, recorded in a first block of the second flash memory, in a second block of the second flash memory, and recording the current version value in the first block of the second flash memory
However, NI discloses:
when the current version value included in the application is identified to be an upgraded value compared to the previous version value, recording the previous version value (e.g. Ni [0033] and [0034] lines 1-3; which states obtaining/recording a firmware version of the initial/previous firmware and comparing whether upgrade/current firmware version value is an upgraded value with respect to the initial/previous firmware version value.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate NI’s teachings by including when the current version value included in the application is identified to be an upgraded value compared to the previous version value, recording the previous version value to place outdated information in a lower priority memory region.
However, Rao/Chidambaram discloses:
[] version value recorded in a first block of the second flash memory, in a second block of the second flash memory, and recording the current version value in the first block of the second flash memory. (e.g. Rao/Chidambaram [0049] lines 15-18, [0057] lines 8-14, [0058] lines 3-6, 12-16, and [0059] lines 1-6, 11-14 ; which states new image information copied from flash bank 0 to flash bank 1 and alternatively is copied from bank 1 to bank 0; where it is viewed that respective REV/revision/version information in sector 2 is simultaneously copied between flash banks; additionally, sector 2 of flash bank 0 and sector 2 of flash bank 1 is viewed respectively as a first block and a second block of flash memory; furthermore, the details of a second flash memory are described above in Rao of claim 1.)
Therefore, it would have been obvious to a person ordinarily skilled in the art before the effective filing date of the claimed invention to have modified Rao’s microcontroller-based firmware update processing system to incorporate Rao/Chidambaram’s teachings by including [] version value recorded in a first block of the second flash memory, in a second block of the second flash memory, and recording the current version value in the first block of the second flash memory; to execute the new firmware located in the higher priority memory region.
Claim 19 is a system claim similar to method claim 8. Thus, claim 19 is rejected under similar analysis to that of method claim 8. Note: the term “recoded” is interpreted by the examiner as “recorded.”
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to JAMIE A UPADHYAYA whose telephone number is (571)270-0864. The examiner can normally be reached Monday-Friday 830am-430pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, CHAT DO can be reached at (571) 272-3721. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/J.A.U./Examiner, Art Unit 2193
/Chat C Do/Supervisory Patent Examiner, Art Unit 2193