Updating method and device

After the initialization of the functional module driver of the computer's external device is updated, it is updated to solve the problem of device function interruption during the firmware update process. It realizes the timely updating the driver in a timely manner without affecting the normal use of the device to improve the user experience.

CN119356706APending Publication Date: 2025-01-24LENOVO (BEIJING) LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411391099.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-30
Publication Date
2025-01-24

AI Technical Summary

Technical Problem

When updating the firmware of external devices of computers, the prior art may cause temporary loss or interruption of the device's functions, resulting in poor customer experience, and even the user may be unable to control the host, and the data transmission may be interrupted or lost.

Method used

Provide a update method and device. This method includes updating the first driver after the first driver of the first function module is completed, and the second driver of the second functional module is updated in the first storage area. The second driver of the second function module in the second storage area supports the information interaction between the third device and the fourth device.

Benefits of technology

Through this method and device, the driver can be updated in a timely manner without affecting the normal use of the device, improving user experience, and reducing the length of time the device is unavailable during the firmware update process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119356706A_ABST
    Figure CN119356706A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides an updating method and device. The method comprises the steps that after a first drive program of a first function module is initialized, the first drive program is subjected to first updating; the first driving program is used for supporting information interaction between first equipment and second equipment; performing second updating on a second driving program of a second functional module in the first storage area; the second driving program is used for supporting information interaction between third equipment and fourth equipment; supporting information interaction between the third equipment and the fourth equipment by utilizing a second driving program of the second functional module in the second storage area; wherein the first function module and the second function module are different modules on the same equipment.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to but is not limited to the field of electronic device control technology, and in particular to an updating method and device. Background Art

[0002] The firmware update of most computer external devices depends on the computer host. When the computer updates the firmware of these modules, these logical devices will not operate normally, and there may be temporary functional loss or interruption, resulting in a bad customer experience. In serious cases, users may not be able to control the host, data transmission may be interrupted or even lost. Summary of the invention

[0003] The embodiments of the present application provide an updating method and device.

[0004] The technical solution of the embodiment of the present application is implemented as follows:

[0005] In a first aspect, an embodiment of the present application provides an update method, the method comprising: performing a first update on a first driver of a first functional module after the first driver completes initialization; the first driver is used to support information interaction between a first device and a second device; performing a second update on a second driver of a second functional module in a first storage area; the second driver is used to support information interaction between a third device and a fourth device; using the second driver of the second functional module in a second storage area to support information interaction between a third device and a fourth device; wherein the first functional module and the second functional module are different modules on the same device.

[0006] In a second aspect, an embodiment of the present application provides an updating device, comprising: a first update module, configured to perform a first update on a first driver of a first functional module after the first driver completes initialization; the first driver is used to support information interaction between a first device and a second device; a second update module, configured to perform a second update on a second driver of a second functional module in a first storage area; the second driver is used to support information interaction between a third device and a fourth device; an interaction module, configured to support information interaction between a third device and a fourth device by utilizing the second driver of the second functional module in the second storage area; wherein the first functional module and the second functional module are different modules on the same device.

[0007] It should be understood that the above general description and the following detailed description are merely exemplary and explanatory, and are not intended to limit the technical solutions of the present application. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The drawings herein are incorporated into the specification and constitute a part of the specification. These drawings illustrate embodiments consistent with the present application and are used together with the specification to illustrate the technical solution of the present application. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0009] The flowcharts shown in the accompanying drawings are only exemplary and do not necessarily include all the contents and operations / steps, nor must they be executed in the order described. For example, some operations / steps can be decomposed, and some operations / steps can be combined or partially combined, so the actual execution order may change according to actual conditions.

[0010] Figure 1 A schematic diagram of an implementation flow of an updating method provided in this application;

[0011] Figure 2 A schematic diagram of an implementation process of an update method provided in an embodiment of the present application Figure 1 ;

[0012] Figure 3 A schematic diagram of an implementation process of an update method provided in an embodiment of the present application Figure 2 ;

[0013] Figure 4 A schematic diagram of a hardware structure provided in an embodiment of the present application;

[0014] Figure 5 A schematic diagram of the structure of an updating device provided in an embodiment of the present application;

[0015] Figure 6 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0016] In order to make the purpose, technical solutions and advantages of the present application clearer, the technical solutions of the present application are further elaborated in detail below in conjunction with the drawings and embodiments. The described embodiments should not be regarded as limiting the present application. All other embodiments obtained by ordinary technicians in the field without making creative work are within the scope of protection of the present application.

[0017] In the following description, reference is made to “some embodiments”, which describe a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0018] It will be understood by those skilled in the art that, unless otherwise defined, all terms (including technical terms and scientific terms) used herein have the same meaning as the general understanding of those skilled in the art in the field to which the embodiments of the present application belong. It should also be understood that terms such as those defined in general dictionaries should be understood to have meanings consistent with the meanings in the context of the prior art, and will not be interpreted with idealized or overly formal meanings unless specifically defined as here.

[0019] In a related technology, a large-capacity Flash Read-Only Memory (Flash ROM) is set as a temporary memory for the main control microcontroller unit (MCU) in the self-powered external device. When updating the device firmware, the firmware is first transmitted to the device main control MCU, and the MCU temporarily stores the firmware in this memory; then when the user disconnects the external device from the computer host, the MCU begins to transfer the firmware in the temporary register to the firmware flash memory of each logic device. This step does not rely on the computer host.

[0020] Figure 1 A schematic diagram of an implementation flow of an updating method provided in this application, such as Figure 1 As shown, the method includes the following steps 101 to 105:

[0021] Step 101, receiving firmware from a host;

[0022] Step 102, setting a flag of the firmware update task;

[0023] Step 103, whether to disconnect from the host; if yes, execute step 104, otherwise execute step 103 again;

[0024] Step 104, updating the firmware of each internal device;

[0025] Step 105, entering the idle state.

[0026] However, if the user disconnects the computer host and the external device, and then regrets it immediately, and immediately reconnects the external device to the host, at this point, the external device has already started to transfer and update to the logical device, causing the external device to no longer respond to the connection for a period of time and become inoperable.

[0027] The present application embodiment provides an updating method. Figure 2 A schematic diagram of an implementation process of an update method provided in an embodiment of the present application Figure 1 ,like Figure 2 As shown, the method includes the following steps 201 to 203:

[0028] Step 201, after the first driver of the first functional module completes initialization, a first update is performed on the first driver; the first driver is used to support information interaction between the first device and the second device;

[0029] Step 202, performing a second update on a second driver of a second functional module in the first storage area; the second driver is used to support information interaction between the third device and the fourth device;

[0030] Step 203: Use the second driver of the second functional module in the second storage area to support information interaction between the third device and the fourth device; wherein the first functional module and the second functional module are different modules on the same device.

[0031] It can be understood that in the embodiment of the present application, after the first driver completes initialization, the first driver is updated for the first time; the second driver of the second functional module in the first storage area is updated for the second time, and the second driver of the second functional module in the second storage area is used to support information interaction between the third device and the fourth device. In this way, it is beneficial to select different update methods according to the characteristics of different functional modules, for example: for the driver of the functional module whose initialization method is the power-on loading method or the one-time loading method, the first driver of the first functional module is updated using the first update method; for the functional module with redundant design, the second driver of the second functional module is updated using the second update method, which is beneficial to timely update the driver without affecting the normal use of the functional module corresponding to the driver, and further beneficial to improve the user experience.

[0032] The following describes further optional implementations and related terms of each of the above steps.

[0033] In step 201, a first driver of a first functional module is first updated after the first driver is initialized; the first driver is used to support information interaction between a first device and a second device.

[0034] It should be understood that in the embodiments of the present application, the first device and the second device are not limited. In some embodiments, the first device is an external device, such as a keyboard, a mouse, a remote control, a printer, etc.; the first functional module and the second functional module are functional modules of the external device, and the execution subject of the method is the first device. In other embodiments, the first device is a docking station, the first functional module and the second functional module are functional modules of the docking station, and the execution subject of the method is the docking station.

[0035] It should be understood that in the embodiment of the present application, the first device and the third device may be the same device or different devices, and the second device and the fourth device may be the same device or different devices; this is not limited to the embodiment of the present application.

[0036] In the embodiment of the present application, the first driver can be understood as the firmware of the first functional module, which is a program written into an erasable programmable read-only memory (EPROM) or an electrically erasable programmable read-only memory (EEPROM), and is a device "driver" stored inside the device. The firmware is tightly integrated into the hardware and is responsible for controlling the hardware device so that it can run correctly.

[0037] Firmware is software that performs the most basic and lowest-level work of a system. It provides basic function control programs for devices, such as startup, self-test, and switching between different modes. Firmware acts as a bridge between hardware and software, allowing software and hardware to interact effectively and send data and commands to hardware devices to achieve the expected functions. Firmware also has many additional functions, such as error correction technology, secure burning technology, playback control technology, etc. These functions help improve device performance and user experience.

[0038] Firmware is usually stored in an EEPROM or flash chip in the device. Firmware updates are very common due to new software requirements or security vulnerabilities. Firmware updates may involve re-burning the device (erasing the previous firmware and replacing it with the new firmware) or updating the firmware after remote transmission over the network.

[0039] Most modern applications support downloading the latest firmware version to obtain functional and performance improvements and fix security vulnerabilities. Firmware updates help improve the stability, security and compatibility of devices.

[0040] In some embodiments, the first functional module includes: a first processor and a first memory; the first processor includes a first processing unit and a first storage unit; the first memory stores a first driver program; the initialization process of the first driver program includes: the first processor writes the first driver program stored in the first memory into the first storage unit to support information interaction between the first device and the second device; and performs a first update on the first driver program, including: performing a first update on the first driver program stored in the first memory.

[0041] It should be understood that in the embodiment of the present application, "the initialization process of the first driver includes: the first processor writes the first driver stored in the first memory into the first storage unit" can be understood as the initialization method of the first functional module being a one-time loading method or a power-on loading method. The one-time loading method or the power-on loading method is characterized in that after the first functional module completes the initialization, the first driver stored in the first memory will not be used again before the next reset.

[0042] Based on this, it can be understood that in the embodiment of the present application, after the first processor writes the first driver stored in the first memory into the first storage unit, it performs a first update on the first driver stored in the first memory. In this way, it is beneficial to update the first driver in a timely manner without affecting the normal use of the first functional module.

[0043] In some embodiments, performing a first update on the first driver includes: performing a first update on the first driver when a first condition is met; wherein the first condition includes at least one of the following: a connection between the first device and the second device is disconnected for a first duration, a first distance between a target user and the first device is greater than or equal to a first threshold, and a second distance between the target user and the second device is greater than or equal to a second threshold.

[0044] It can be understood that in an embodiment of the present application, the first driver is updated when the connection between the first device and the second device is disconnected for a first duration, and / or the first distance between the target user and the first device is greater than or equal to a first threshold, and / or the second distance between the target user and the second device is greater than or equal to a second threshold.

[0045] This is helpful, on the one hand, in the event that the target user regrets disconnecting the computer host from the external device or docking station, to ensure that when the target user immediately reconnects the external device or docking station to the host, the external device or docking station can respond to the connection and be directly in working state.

[0046] On the other hand, it is beneficial to update the first driver of the first functional module while ensuring that the target user has no subjective intention to use the first functional module, thereby improving user experience.

[0047] In some embodiments, the first threshold and the second threshold are greater than or equal to a fifth threshold, and the fifth threshold is greater than or equal to a product of an update duration of the first driver and a moving speed of the target user.

[0048] It can be understood that in the embodiment of the present application, the first threshold and the second threshold are both greater than or equal to the product of the update duration of the first driver and the moving speed of the target user. In this way, it is beneficial to ensure that the user completes the update of the first driver when reaching the first device or the second device when the target user regrets disconnecting the computer host from the external device or the docking station; it is also beneficial to ensure that when the target user reconnects the external device or the docking station to the host, the external device or the docking station can respond to the connection and be directly in working state when the target user regrets disconnecting the computer host from the external device or the docking station.

[0049] As a possible implementation, Figure 3 A schematic diagram of an implementation process of an update method provided in an embodiment of the present application Figure 2 ,like Figure 3 As shown, the firmware can be updated through the following steps 301 to 309:

[0050] Step 301, receiving firmware from a host;

[0051] Step 302, setting a flag of the firmware update task;

[0052] Step 303, whether to disconnect from the host; if so, execute step 304, otherwise execute step 303 again;

[0053] Step 304, setting a timer;

[0054] Step 305, whether to connect to the host; if yes, execute step 306, otherwise execute step 307;

[0055] Step 306, clear the timer;

[0056] Step 307, timer timeout? If yes, go to step 308, otherwise go to step 305;

[0057] Step 308, updating the firmware of each internal device;

[0058] Step 309, entering the idle state.

[0059] In step 202, a second update is performed on a second driver of a second functional module in the first storage area; the second driver is used to support information interaction between the third device and the fourth device.

[0060] It should be understood that in the embodiments of the present application, the third device and the fourth device are not limited. In some embodiments, the third device is an external device, such as a keyboard, a mouse, a remote control, a printer, etc.; the first functional module and the second functional module are functional modules of the external device, and the execution subject of the method is the third device. In other embodiments, the third device is an expansion dock, the first functional module and the second functional module are functional modules of the expansion dock, and the execution subject of the method is the expansion dock.

[0061] In the embodiment of the present application, the second driver program can be understood as the firmware of the second functional module. For the understanding of the firmware, please refer to the above description and will not be repeated here.

[0062] In some embodiments, the second driver in the second storage area is replaced by a third driver obtained by updating the second driver in the first storage area, so as to update the second driver in the second storage area.

[0063] In step 203, the second driver of the second functional module in the second storage area is used to support information interaction between the third device and the fourth device; wherein the first functional module and the second functional module are different modules on the same device.

[0064] In some embodiments, the use of the second driver of the second functional module in the second storage area to support information interaction between the third device and the fourth device includes: running the second driver of the second functional module in the second storage area to support the third device to interact with the fourth device through the second functional module.

[0065] It can be understood that in the embodiment of the present application, the second driver of the second functional module in the first storage area is updated for the second time; the second driver of the second functional module in the second storage area is run to support the third device to exchange information with the fourth device through the second functional module. In this way, it is beneficial to not affect the use of the second functional module during the process of updating the second driver.

[0066] In some embodiments, the use of the second driver of the second functional module in the second storage area to support information interaction between the third device and the fourth device includes: during the process of performing a second update on the second driver of the second functional module in the first storage area, stopping the second update; replacing the second driver in the first storage area with the second driver of the second functional module in the second storage area, and running the second driver of the second functional module in the first storage area to support the third device to interact with the fourth device through the second functional module.

[0067] It can be understood that in the embodiment of the present application, during the second update of the second driver of the second functional module in the first storage area, the second update is stopped; the second driver of the second functional module in the second storage area is used to replace the second driver in the first storage area, and the second driver of the second functional module in the first storage area is run to support the third device to exchange information with the fourth device through the second functional module. In this way, it is beneficial to ensure that the external device or docking station can be quickly put into working state in the case of regret after updating the second driver, thereby improving the user experience.

[0068] In some embodiments, the triggering conditions for stopping the second update include: the third device and the fourth device resume connection; for example: powering on, detecting that a wireless connection (such as a Bluetooth connection) or a wired connection (such as a Universal Serial Bus connection) has been established, etc.

[0069] As a possible implementation, the second functional module is a functional module with dual-bank redundancy design. When the second driver of the first storage area is updated, the second driver of the second storage area is not affected. In some embodiments, if the third device is disconnected from the fourth device, the second driver of the first storage area starts to update, but the target user restores the connection between the third device and the fourth device, the update can be directly interrupted and the second driver stored in the second storage area can be read into the first storage area to ensure the function of the second functional module, or the function of the second functional module can be supported directly based on the second driver stored in the second storage area. Among them, the dual-bank redundancy design is a strategy to add a backup driver in the functional module to improve the reliability and stability of the system.

[0070] As another possible implementation method, for functional modules without dual-bank redundant design, a serial peripheral interface agent (SPI agent) can be placed in front of the main flash memory (Main Flash), and the serial peripheral interface agent can be undertaken by the MCU or other logic devices. The function of the serial peripheral interface component is to accept access from multiple serial peripheral interface masters (SPI Masters) and allocate a certain range of Flash ROM to the SPI Masters respectively. From the perspective of the SPI Master controller, it is equivalent to accessing a SPI Flash ROM. Each functional module in the external device or docking station accesses its firmware stored in the Main Flash as an SPI Master of the serial peripheral interface component. In some embodiments, the MCU can access the entire Flash ROM as a master of the SPI agent, or it can control the entire Flash ROM through another SPI multiplexer (SPI MUX) instead of controlling the entire Flash ROM through the serial peripheral interface component.

[0071] For example, Figure 4 A schematic diagram of a hardware structure provided in an embodiment of the present application; Figure 4 As shown, 401 represents SPI agent, and 402 represents Flash ROM. In some embodiments, SPI agent 401 is a Serial Peripheral Interface Router (SPI Router); 2' represents a backup area storing Flash ROM 2.

[0072] Based on the above hardware design, the dual-bank redundant design of any functional module firmware can be realized. When the firmware of a functional module needs to be updated, the MCU that controls the entire Flash ROM plans a new ROM block, writes the new firmware to the ROM block, and notifies the SPI agent to update the Flash ROM access address range. Users can also interrupt the update at any time and return to the original firmware state by modifying the access address range of a functional module in the SPI agent.

[0073] In some embodiments, the method also includes: determining the storage quantity of the second driver program of the second functional module; when the storage quantity is one copy, backing up the currently stored second driver program so that both the first storage area and the second storage area store the second driver program of the second functional module.

[0074] It can be understood that in the embodiment of the present application, when the number of storages of the second driver is one copy, the second driver is backed up. In this way, for the functional modules without redundant backup drivers, it is possible to achieve that the use of the second functional modules is not affected during the process of updating the second driver; or in the case of regret after updating the second driver, it is ensured that the external device or docking station can be quickly put into working state, thereby improving the user experience.

[0075] As a possible implementation, for a functional module with only one firmware, i.e., no redundant backup firmware, a storage is allocated in a Flash ROM with a larger capacity set for the MCU, and the second driver is copied to this storage during the update process. When the user pauses the update, the copied second driver is written back to the first storage area of ​​the functional module to support information interaction between the third device and the fourth device.

[0076] In some embodiments, performing a second update on a second driver for a second functional module in a first storage area includes: performing a second update on a second driver for a second functional module in the first storage area when a second condition is satisfied; wherein the second condition includes at least one of the following: a disconnection duration between the third device and the fourth device is a second duration, a third distance between the target user and the third device is greater than or equal to a third threshold, and a fourth distance between the target user and the fourth device is greater than or equal to a fourth threshold.

[0077] It can be understood that in an embodiment of the present application, the first driver is updated when the connection between the third device and the fourth device is disconnected for a first duration, and / or the first distance between the target user and the third device is greater than or equal to a third threshold, and / or the second distance between the target user and the fourth device is greater than or equal to a fourth threshold.

[0078] This is helpful, on the one hand, in the event that the target user regrets disconnecting the computer host from the external device or docking station, to ensure that when the target user immediately reconnects the external device or docking station to the host, the external device or docking station can respond to the connection and be directly in working state.

[0079] On the other hand, it is beneficial to update the second driver of the second functional module while ensuring that the target user has no subjective intention to use the second functional module, thereby improving user experience.

[0080] In some embodiments, the third threshold and the fourth threshold are greater than or equal to a fifth threshold, and the fifth threshold is greater than or equal to a product of an update duration of the second driver and a moving speed of the target user.

[0081] It can be understood that in the embodiment of the present application, the third threshold and the fourth threshold are both greater than or equal to the product of the update duration of the second driver and the moving speed of the target user. In this way, it is beneficial to ensure that the user completes the update of the second driver when reaching the third device or the fourth device when the target user regrets disconnecting the computer host from the external device or the docking station; it is also beneficial to ensure that when the target user immediately reconnects the external device or the docking station to the host, the external device or the docking station can respond to the connection and be directly in working state when the target user regrets disconnecting the computer host from the external device or the docking station.

[0082] It should be understood that in the embodiment of the present application, there is no limitation on the first duration and the second duration, and the first duration and the second duration may be equal or unequal.

[0083] In some embodiments, performing a first update on the first driver includes: if the first functional module is in an idle state, performing a first update on the first driver; and / or performing a second update on the second driver of the second functional module in the first storage area includes: if the second functional module is in an idle state, performing a second update on the second driver.

[0084] It is understood that in the embodiment of the present application, the driver of the functional module in the idle state is updated, that is, when the functional module is not used or assigned a task, the driver of the functional module is updated. This is beneficial to timely update the driver, thereby improving the user experience.

[0085] As a possible implementation manner, the first functional module includes a function of supplying power to the host. If the host does not need the power supply function at this time, the first driver of the first functional module can be updated in time.

[0086] The following describes an exemplary application of the processing method provided in an embodiment of the present application in a practical scenario.

[0087] In some embodiments, external devices can be divided into two categories: self-powered devices and host-powered devices. MCU refers to the main control (controller) in the external device, which is generally an MCU in form. Here, the port expansion dock is this external device. External devices or peripheral devices are generalized devices of the expansion dock. The MCU in the expansion dock / external device is connected to the computer host through a specific data bus. In some embodiments, it is mainly connected by a universal serial bus (USB). The expansion dock / external device acts as an external device of the computer host. On the USB bus, the computer is a USB host device and the external device is a slave device.

[0088] The embodiments of the present application provide an update method. In some embodiments, the firmware upgrade in this method is completed in two major steps. In the first step, the upgrade tool runs in the host and transmits the firmware to the docking station, which is received by the MCU and stored in the non-volatile memory controlled by it; in the second step, when the conditions are met, the MCU distributes and deploys the firmware to other components inside the docking station. That is, the firmware contains multiple components, each of which is the firmware of a device in the docking station. Therefore, this method is mainly executed by the main control MCU in the docking station.

[0089] As a possible implementation, when the external device is disconnected from the computer host, check whether there is a firmware update task. If there is an update task, set a timer of a specific duration. Before the timer ends, the external device main control maintains the current state and checks whether it is reconnected to the computer host. If the device is reconnected to the host during this period, clear the timer and return to the working state. If the timer ends and it is not reconnected to the host, start transferring the firmware to each logical device. If there is no firmware update task, enter the standby mode according to the normal process.

[0090] It can be understood that in the embodiment of the present application, after the target user disconnects the computer host and the external device, if he regrets it, he immediately reconnects the device to the host, and the docking station can respond to the connection and be directly in working state. And for the target user, the firmware update time is shortened and the normal use of the docking station is not affected. This is because the target user perceives the first step of the firmware upgrade, and the target user is likely to have left the seat in the second step and will not perceive it. In the actual implementation process, it can be measured that the firmware transmission time is 3 to 4 seconds, while the previous solution The entire firmware upgrade time is about 13 to 15 seconds. In addition, the first stage of firmware transmission does not affect the normal operation of the logical devices in the docking station. Users can use the docking station normally and their work is not disturbed.

[0091] In some embodiments, the target user can issue an execution plan for the second step of the firmware update through the host: (1) when the device is disconnected from the host, wait for 15 to 30 seconds to execute; (2) timed delayed execution; (3) immediate execution when the device is disconnected from the host; (4) immediate execution.

[0092] In some embodiments, in the second step, a module that is not in use is selected and its firmware is updated immediately. For the firmware of some logic units whose initialization method is power-on loading method or one-time loading method, after the logic unit is initialized, its firmware storage unit is no longer used before the next reset. At this time, executing the firmware update for this module in the second step will not affect the function of the device, and the target user can still use the device normally.

[0093] In some embodiments, for a functional module with dual-bank redundancy design, when the second driver of the first storage area is updated, the second driver of the second storage area is not affected. In some embodiments, if the third device is disconnected from the fourth device, the second driver of the first storage area starts to update, but the target user restores the connection between the third device and the fourth device, the update can be directly interrupted and the second driver stored in the second storage area can be read into the first storage area to ensure the function of the second functional module, or the function of the second functional module can be supported directly based on the second driver stored in the second storage area.

[0094] In some embodiments, for a functional module with only one copy of firmware, i.e., without dual-bank redundant backup firmware, a storage is allocated in a Flash ROM with a larger capacity set for the MCU, and the second driver is copied to this storage during the update process. When the user pauses the update, the copied second driver is written back to the first storage area of ​​the functional module to support information interaction between the third device and the fourth device.

[0095] In some embodiments, for functional modules without dual-bank redundant design, a serial peripheral interface component can be placed in front of the main flash memory, and the serial peripheral interface component can be undertaken by the MCU or other logic devices. The function of the serial peripheral interface component is to accept accesses from multiple serial peripheral interface master devices and allocate a certain range of Flash ROM to the SPI Master respectively. From the perspective of the SPI Master controller, it is equivalent to accessing an SPI Flash ROM. Each functional module in the external device or docking station accesses its firmware stored in the Main Flas as an SPI Master of the serial peripheral interface component. In some embodiments, the MCU can access the entire Flash ROM as a master control of the SPI agent, or it can control the entire Flash ROM through another SPI multiplexer instead of controlling the entire Flash ROM through the serial peripheral interface component.

[0096] Based on the above hardware design, the dual-bank redundant design of any functional module firmware can be realized. When the firmware of a functional module needs to be updated, the MCU that controls the entire Flash ROM plans a new ROM block, writes the new firmware to the ROM block, and notifies the SPI agent to update the Flash ROM access address range. Users can also interrupt the update at any time and return to the original firmware state by modifying the access address range of a functional module in the SPI agent.

[0097] It should be noted that although the steps of the method in the present application are described in a specific order in the drawings, this does not require or imply that the steps must be performed in this specific order, or that all the steps shown must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps, etc.; or, steps in different embodiments may be combined into a new technical solution.

[0098] Based on the foregoing embodiments, an embodiment of the present application provides an updating device, which includes the modules included and the units included in the modules, and can be implemented by a processor; of course, it can also be implemented by a specific logic circuit; in the implementation process, the processor can be an AI acceleration engine (such as NPU, etc.), GPU, central processing unit (CPU), microprocessor (MPU), digital signal processor (DSP) or field programmable gate array (FPGA), etc.

[0099] Figure 5 A schematic diagram of the structure of an updating device provided in an embodiment of the present application is shown in FIG. Figure 5 As shown, the updating device 50 includes a first updating module 501, a second updating module 502 and an interaction module 503, wherein:

[0100] A first update module 501 is configured to perform a first update on a first driver of a first functional module after the first driver is initialized; the first driver is used to support information interaction between a first device and a second device;

[0101] A second update module 502 is configured to perform a second update on a second driver of a second functional module in the first storage area; the second driver is used to support information interaction between the third device and the fourth device;

[0102] The interaction module 503 is configured to support information interaction between the third device and the fourth device by using the second driver of the second functional module in the second storage area; wherein the first functional module and the second functional module are different modules on the same device.

[0103] In some embodiments, the first functional module includes: a first processor and a first memory; the first processor includes a first processing unit and a first storage unit; the first memory stores a first driver program; the initialization process of the first driver program includes: the first processor writes the first driver program stored in the first memory into the first storage unit to support information interaction between the first device and the second device; a first update module 501 is configured to perform a first update on the first driver program stored in the first memory.

[0104] In some embodiments, the updating device further includes a third updating module; wherein the third updating module is configured to replace the second driver in the second storage area with a third driver obtained by updating the second driver in the first storage area, so as to update the second driver in the second storage area.

[0105] In some embodiments, the interaction module 503 is configured to run a second driver of the second functional module in the second storage area to support the third device to perform information interaction with the fourth device through the second functional module.

[0106] In some embodiments, the interaction module 503 is configured to stop the second update of the second driver of the second functional module in the first storage area during the second update of the second driver; replace the second driver in the first storage area with the second driver of the second functional module in the second storage area, and run the second driver of the second functional module in the first storage area to support the third device to interact with the fourth device through the second functional module.

[0107] In some embodiments, the updating device also includes a determination module and a backup module; wherein the determination module is configured to determine the storage quantity of the second driver program of the second functional module; and the backup module is configured to back up the currently stored second driver program when the storage quantity is one copy, so that both the first storage area and the second storage area store the second driver program of the second functional module.

[0108] In some embodiments, the first update module 501 is configured to perform a first update on the first driver when a first condition is met; wherein the first condition includes at least one of the following: the duration of disconnection between the first device and the second device is a first duration, a first distance between the target user and the first device is greater than or equal to a first threshold, and a second distance between the target user and the second device is greater than or equal to a second threshold.

[0109] In some embodiments, the second update module 502 is configured to perform a second update on the second driver of the second functional module in the first storage area when a second condition is met; wherein the second condition includes at least one of the following: the duration of disconnection between the third device and the fourth device is a second duration, the third distance between the target user and the third device is greater than or equal to a third threshold, and the fourth distance between the target user and the fourth device is greater than or equal to a fourth threshold.

[0110] In some embodiments, the first update module 501 is configured to perform a first update on the first driver if the first functional module is in an idle state; the second update module 502 is configured to perform a second update on the second driver if the second functional module is in an idle state.

[0111] The description of the above device embodiment is similar to the description of the above method embodiment, and has similar beneficial effects as the method embodiment. For technical details not disclosed in the device embodiment of the present application, please refer to the description of the method embodiment of the present application for understanding.

[0112] It should be noted that the division of modules in the embodiments of the present application is schematic and is only a logical function division. There may be other division methods in actual implementation. In addition, each functional unit in each embodiment of the present application may be integrated into a processing unit, or may exist physically alone, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of a software functional unit. It may also be implemented in the form of a combination of software and hardware.

[0113] It should be noted that in the embodiment of the present application, if the above method is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the embodiment of the present application can be essentially or partly embodied in the form of a software product that contributes to the relevant technology. The computer software product is stored in a storage medium, including several instructions to enable an electronic device to execute all or part of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM), a magnetic disk or an optical disk. In this way, the embodiment of the present application is not limited to any specific combination of hardware and software.

[0114] An embodiment of the present application provides an electronic device, Figure 6 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application is shown in FIG. Figure 6 As shown, the electronic device 60 includes a memory 601 and a processor 602. The memory 601 stores a computer program that can be run on the processor 602. When the processor 602 executes the program, the steps in the method provided in the above embodiment are implemented.

[0115] It should be noted that the memory 601 is configured to store instructions and applications executable by the processor 602, and can also cache data to be processed or processed by the processor 602 and various modules in the electronic device 60, which can be implemented through flash memory (Flash) or random access memory (Random Access Memory, RAM).

[0116] In some embodiments, the electronic device includes one of: a first device, a second device, a third device, a fourth device.

[0117] An embodiment of the present application provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, the steps in the method provided in the above embodiment are implemented.

[0118] An embodiment of the present application provides a computer program product including instructions, which, when executed on a computer, enables the computer to execute the steps of the method provided in the above method embodiment.

[0119] It should be noted here that the description of the above storage medium and device embodiments is similar to the description of the above method embodiments, and has similar beneficial effects as the method embodiments. For technical details not disclosed in the storage medium, storage medium and device embodiments of this application, please refer to the description of the method embodiments of this application for understanding.

[0120] It should be understood that the "one embodiment" or "an embodiment" or "some embodiments" or "in a possible implementation" or "example" mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, "in one embodiment" or "in an embodiment" or "in some embodiments" or "in a possible implementation" or "example" appearing throughout the specification may not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in various embodiments of the present application, the size of the sequence number of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application. The above-mentioned sequence numbers of the embodiments of the present application are only for description and do not represent the advantages and disadvantages of the embodiments. The above description of the various embodiments tends to emphasize the differences between the various embodiments, and the same or similar aspects can be referenced to each other. For the sake of brevity, this article will not repeat them.

[0121] The term "and / or" in this article is only a description of the association relationship of associated objects, indicating that there may be three relationships. For example, object A and / or object B can represent three situations: object A exists alone, object A and object B exist at the same time, and object B exists alone.

[0122] It should be noted that, in this article, the terms "comprise", "include" or any other variants thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements includes not only those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "comprise one..." do not exclude the presence of other identical elements in the process, method, article or device including the element. In the several embodiments provided in the present application, it should be understood that the disclosed equipment and devices, etc., can be implemented in other ways. The embodiments described above are merely illustrative. The features disclosed in the several product embodiments provided in the present application can be arbitrarily combined without conflict to obtain new product embodiments.

[0123] The above is only an implementation method of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. An updating method, the method comprising: Performing a first update on the first driver of the first functional module after the first driver is initialized; The first driver is used to support information interaction between the first device and the second device; Performing a second update on a second driver of a second functional module in the first storage area; the second driver is used to support information interaction between the third device and the fourth device; The second driver of the second functional module in the second storage area is used to support information interaction between the third device and the fourth device; wherein the first functional module and the second functional module are different modules on the same device.

2. The method according to claim 1, wherein the first functional module comprises: a first processor and a first memory; The first processor includes a first processing unit and a first storage unit; The first memory stores a first driver program; The initialization process of the first driver comprises: the first processor writes the first driver stored in the first memory into the first storage unit to support information interaction between the first device and the second device; Performing a first update on the first driver includes: performing a first update on the first driver stored in the first memory.

3. The method according to claim 1, further comprising: The second driver in the second storage area is replaced by the third driver obtained by updating the second driver in the first storage area, so as to update the second driver in the second storage area.

4. The method according to claim 1, wherein the use of the second driver of the second functional module in the second storage area to support information interaction between the third device and the fourth device comprises: A second driver program of the second functional module in the second storage area is run to support the third device to perform information interaction with the fourth device through the second functional module.

5. The method according to claim 1, wherein the use of the second driver of the second functional module in the second storage area to support information interaction between the third device and the fourth device comprises: During a second update of a second driver program of a second functional module in the first storage area, stopping the second update; The second driver program of the second functional module in the second storage area is used to replace the second driver program in the first storage area, and the second driver program of the second functional module in the first storage area is run to support the third device to perform information interaction with the fourth device through the second functional module.

6. The method according to claim 5, further comprising: Determining the storage quantity of the second driver program of the second functional module; When the storage quantity is one copy, the currently stored second driver program is backed up so that the first storage area and the second storage area both store the second driver program of the second functional module.

7. The method according to any one of claims 1 to 6, performing a first update on the first driver comprises: When a first condition is met, performing a first update on the first driver; Among them, the first condition includes at least one of the following: the connection between the first device and the second device is disconnected for a first duration, a first distance between the target user and the first device is greater than or equal to a first threshold, and a second distance between the target user and the second device is greater than or equal to a second threshold.

8. The method according to any one of claims 1 to 6, performing a second update on the second driver of the second functional module in the first storage area, comprising: When the second condition is met, performing a second update on the second driver of the second functional module in the first storage area; Among them, the second condition includes at least one of the following: the connection between the third device and the fourth device is disconnected for a second time period, the third distance between the target user and the third device is greater than or equal to a third threshold, and the fourth distance between the target user and the fourth device is greater than or equal to a fourth threshold.

9. The method according to claim 1, performing a first update on the first driver, comprising: If the first functional module is in an idle state, performing a first update on the first driver; and / or, Performing a second update on a second driver of a second functional module in the first storage area includes: If the second functional module is in an idle state, a second update is performed on the second driver.

10. An updating device, comprising: A first updating module, configured to perform a first update on the first driver of the first functional module after the first driver is initialized; The first driver is used to support information interaction between the first device and the second device; A second updating module, configured to perform a second update on a second driver of a second functional module in the first storage area; The second driver is used to support information interaction between the third device and the fourth device; The interaction module is configured to support information interaction between the third device and the fourth device by using the second driver of the second functional module in the second storage area; wherein the first functional module and the second functional module are different modules on the same device.