Electronic device and controlling method for same
The method of partial program updates in electronic devices addresses the inefficiency of complete shutdowns by selectively updating only the different parts of the program, ensuring minimal downtime and continuous operation.
Patent Information
- Application Number
- PCT/KR2025/000888
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-16
- Filing Date
- 2025-01-15
- Publication Date
- 2025-08-21
AI Technical Summary
Existing electronic devices require a complete shutdown during program updates, even for partial updates, leading to extended downtime and inefficiency.
Implementing a method that allows partial updates by identifying identical and different portions of a program, reusing the identical portions, and updating only the different parts, using a dual or single bank memory structure to minimize downtime.
Enables partial updates without shutting down the device, reducing update time and allowing continuous operation.
Smart Images

Figure KR2025000888_21082025_PF_FP_ABST
Abstract
Description
Electronic device and method for controlling the same
[0001] The disclosed invention relates to an electronic device and a method for controlling the same.
[0002] An electronic device may include a microcomputer that controls the operation of the electronic device.
[0003] A microcomputer may include a processor and memory. The processor can implement the microcomputer's functions by executing programs stored in memory.
[0004] You can change the functions of your microcomputer or add new features by updating the program stored in it with a new version of the program.
[0005] The microcomputer can download programs from outside via wired or wireless communication and update the existing version of the program stored in the microcomputer to a new version based on the downloaded program.
[0006] A microcomputer's memory may include a single bank, which is a storage area for storing data such as programs.
[0007] Previously, updating required deleting the program stored in a single bank of memory and then downloading a new version. This required the electronic device to be shut down during the update process. Furthermore, even for partial updates with added features, the entire program had to be deleted and rewritten. This made it impossible to update only a portion of the program, extending the update time.
[0008] One aspect of the disclosed invention provides an electronic device and a control method thereof that can shorten the update time without requiring the electronic device to be stopped while updating a program.
[0009] An electronic device according to one aspect of the disclosed invention may include: a communication unit; a memory in which a program is stored; and a processor that receives partial update information including identical and different portions between a current version and a new version of the program through the communication unit when partially updating the program, reuses the identical portion in the program based on the partial update information, receives a partial update file corresponding to the different portion through the communication unit, and partially updates the program based on the partial update file.
[0010] A method for controlling an electronic device according to one aspect of the disclosed invention may include: receiving partial update information including identical and different portions between a current version and a new version of the program through a communication unit when partially updating a program; reusing the identical portion in the program based on the partial update information; receiving a partial update file corresponding to the different portion through the communication unit, and partially updating the program based on the partial update file.
[0011] Figure 1 illustrates a network system implemented by various electronic devices.
[0012] FIG. 2 is a control block diagram of an electronic device according to one embodiment of the present disclosure.
[0013] FIG. 3 illustrates an example of a flowchart of a control method of an electronic device according to one embodiment of the present disclosure.
[0014] FIG. 4 is a control block diagram of a control unit having a single bank memory in an electronic device according to one embodiment of the present disclosure.
[0015] FIG. 5 illustrates a single bank memory of a control unit of an electronic device according to one embodiment of the present disclosure.
[0016] FIG. 6 illustrates a state before a partial update of a program stored in a single bank memory of a control unit of an electronic device according to one embodiment of the present disclosure.
[0017] FIG. 7 illustrates a state after completion of a partial update of a program stored in a single bank memory of a control unit of an electronic device according to one embodiment of the present disclosure.
[0018] FIG. 8 illustrates a dual bank memory of a control unit of an electronic device according to one embodiment of the present disclosure.
[0019] FIG. 9 illustrates a partial update that adds a function requiring a change in a reservation function to a program stored in a dual bank memory of a control unit of an electronic device according to one embodiment of the present disclosure.
[0020] It should be understood that the various embodiments and terms used in this document are not intended to limit the technical features described in this document to specific embodiments, but rather to include various modifications, equivalents, or substitutes of the embodiments.
[0021] In connection with the description of the drawings, similar reference numerals may be used for similar or related components.
[0022] The singular form of a noun corresponding to an item may include one or more of said items, unless the relevant context clearly indicates otherwise.
[0023] In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" may include any one of the items listed together in that phrase, or all possible combinations thereof.
[0024] The term "and / or" includes any combination of a plurality of related described elements or any one of a plurality of related described elements.
[0025] Terms such as "first," "second," or "first" or "second" may be used simply to distinguish one component from another and do not qualify the components in any other respect (e.g., importance or order).
[0026] When a component (e.g., a first component) is referred to as being "coupled" or "connected" to another component (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.
[0027] The terms "include" or "have" are intended to specify the presence of a feature, number, step, operation, component, part or combination thereof described in this document, but do not preclude the presence or addition of one or more other features, numbers, steps, operations, components, parts or combinations thereof.
[0028] When a component is said to be “connected,” “coupled,” “supported,” or “in contact with” another component, this includes not only cases where the components are directly connected, coupled, supported, or in contact, but also cases where the components are indirectly connected, coupled, supported, or in contact through a third component.
[0029] When we say that a component is "on" another component, this includes not only cases where the component is in contact with the other component, but also cases where there is another component between the two components.
[0030] Hereinafter, electronic devices according to various embodiments will be specifically described with reference to the attached drawings.
[0031] Figure 1 illustrates a network system implemented by various electronic devices.
[0032] Referring to FIG. 1, a home appliance (1) may include a communication module capable of communicating with another home appliance, a user device (2), or a server (3), a user interface for receiving user input or outputting information to a user, at least one processor for controlling the operation of the home appliance (1), and at least one memory in which a program for controlling the operation of the home appliance (1) is stored.
[0033] The home appliance (1) may be at least one of various types of home appliances. For example, the home appliance (1) may include, but is not limited to, at least one of a refrigerator (10), a dishwasher (11), an electric range (12), an electric oven (13), an air conditioner (14), a clothes manager (15), a washing machine (16), a dryer (17), and a microwave oven (18) as illustrated, and may include, for example, various types of home appliances such as a cleaning robot, a vacuum cleaner, and a television, which are not illustrated in the drawing. In addition, the home appliances mentioned above are merely examples, and in addition to the home appliances mentioned above, a device that is connected to another home appliance, a user device (2), or a server (3) and can perform the operations described below may be included in the home appliance (1) according to one embodiment.
[0034] The server (3) may include a communication module capable of communicating with another server, a home appliance (1), or a user device (2), at least one processor capable of processing data received from another server, a home appliance (1), or a user device (2), and at least one memory capable of storing a program for processing data or processed data. The server (3) may be implemented as various computing devices such as a workstation, a cloud, a data drive, or a data station. The server (3) may be implemented as one or more servers that are physically or logically separated based on function, detailed configuration of function, or data, and may transmit and receive data through communication between each server and process the transmitted and received data.
[0035] The server (3) can perform functions such as managing user accounts, registering home appliances (1) by linking them to user accounts, and managing or controlling registered home appliances (1). For example, a user can access the server (3) through a user device (2) and create a user account. The user account can be identified by an ID and password set by the user. The server (3) can register home appliances (1) to the user account according to a set procedure. For example, the server (3) can register, manage, and control home appliances (1) by linking identification information (e.g., serial number or MAC address) of the home appliance (1) to the user account. The user device (2) can include a communication module capable of communicating with the home appliance (1) or the server (3), a user interface for receiving user input or outputting information to the user, at least one processor for controlling the operation of the user device (2), and at least one memory storing a program for controlling the operation of the user device (2).
[0036] The user device (2) may be carried by the user or placed in the user's home or office, etc. The user device (2) may include, but is not limited to, a personal computer, a terminal, a portable telephone, a smart phone, a handheld device, a wearable device, etc.
[0037] A program for controlling a home appliance (1), i.e., an application, may be stored in the memory of the user device (2). The application may be sold installed on the user device (2) or downloaded and installed from an external server.
[0038] A user can access a server (3) by executing an application installed on a user device (2), create a user account, and register a home appliance (1) by communicating with the server (3) based on the logged-in user account.
[0039] For example, if the home appliance (1) is operated so that the home appliance (1) can be connected to the server (3) according to the procedure guided by the application installed on the user device (2), the home appliance (1) can be registered in the user account by registering the identification information (e.g., serial number or MAC address) of the home appliance (1) in the corresponding user account on the server (3).
[0040] A user can control a home appliance (1) using an application installed on a user device (2). For example, when a user logs into a user account using an application installed on the user device (2), a home appliance (1) registered to the user account appears, and when a control command for the home appliance (1) is input, the control command can be transmitted to the home appliance (1) via the server (3).
[0041] A network can include both wired and wireless networks. Wired networks include cable networks or telephone networks, while wireless networks can include any network that transmits and receives signals via radio waves. Wired and wireless networks can be interconnected.
[0042] A network may include a wide area network (WAN) such as the Internet, a local area network (LAN) formed around an access point (AP), and / or a short-range wireless network that does not pass through an access point (AP). A short-range wireless network is, for example, a Bluetooth TM , IEEE 802.15.1), Zigbee (IEEE 802.15.4), Wi-Fi Direct, Near Field Communication (NFC), Z-Wave, etc., but are not limited to those exemplified.
[0043] An access point (AP) can connect a home appliance (1) or a user device (2) to a wide area network (WAN) to which a server (3) is connected. The home appliance (1) or a user device (2) can be connected to the server (3) via the wide area network (WAN).
[0044] Access Point (AP) is a Wi-Fi TM , IEEE 802.11), Bluetooth TM , IEEE 802.15.1), Zigbee (IEEE 802.15.4), etc., and can communicate with home appliances (1) or user devices (2) using wireless communication, and can connect to a wide area network (WAN) using wired communication, but is not limited thereto.
[0045] According to various embodiments, the home appliance (1) may be directly connected to the user device (2) or server (3) without going through an access point (AP).
[0046] The home appliance (1) can be connected to a user device (2) or a server (3) via a long-distance wireless network or a short-distance wireless network.
[0047] For example, a home appliance (1) can be connected to a user device (2) via a short-range wireless network (e.g., Wi-Fi Direct).
[0048] As another example, a home appliance (1) may be connected to a user device (2) or a server (3) via a wide area network (WAN) using a long-distance wireless network (e.g., a cellular communication module).
[0049] As another example, a home appliance (1) can connect to a wide area network (WAN) using wired communication and be connected to a user device (2) or a server (3) through the wide area network (WAN).
[0050] If the home appliance (1) can connect to a wide area network (WAN) using wired communication, it can also function as an access relay. Accordingly, the home appliance (1) can connect other home appliances to the wide area network (WAN) to which the server (3) is connected. In addition, other home appliances can connect the home appliance (1) to the wide area network (WAN) to which the server (3) is connected.
[0051] A home appliance (1) can transmit information about its operation or status to another home appliance, a user device (2), or a server (3) via a network. For example, the home appliance (1) can transmit information about its operation or status to another home appliance, a user device (2), or the server (3) when a request is received from the server (3), when a specific event occurs in the home appliance (1), or periodically or in real time. When information about its operation or status is received from the home appliance (1), the server (3) can update the information about the operation or status of the home appliance (1) that has been stored therein, and transmit the updated information about the operation and status of the home appliance (1) to the user device (2) via a network. Here, updating information can include various operations that change existing information, such as an operation of adding new information to existing information, an operation of replacing existing information with new information, etc.
[0052] A home appliance (1) can obtain various information from other home appliances, a user device (2), or a server (3), and provide the obtained information to a user. For example, the home appliance (1) can obtain information related to the function of the home appliance (1) (e.g., cooking methods, washing instructions, etc.) and various environmental information (e.g., weather, temperature, humidity, etc.) from a server (3), and output the obtained information through a user interface.
[0053] The home appliance (1) can operate according to a control command received from another home appliance, a user device (2), or a server (3). For example, if the home appliance (1) has obtained prior approval from the user to operate according to a control command from the server (3) even without user input, the home appliance (1) can operate according to a control command received from the server (3). Here, the control command received from the server (3) may include, but is not limited to, a control command input by the user through the user device (2) or a control command based on preset conditions.
[0054] The user device (2) can transmit information about the user to the home appliance (1) or server (3) via the communication module. For example, the user device (2) can transmit information about the user's location, health status, preferences, schedule, etc. to the server (3). The user device (2) can transmit information about the user to the server (3) with the user's prior consent.
[0055] The home appliance (1), user device (2), or server (3) can determine a control command using technology such as artificial intelligence. For example, the server (3) can receive information regarding the operation or status of the home appliance (1) or information regarding the user of the user device (2), process the information using technology such as artificial intelligence, and transmit the processing result or control command to the home appliance (1) or user device (2) based on the processing result.
[0056] The electronic device (1) described below may correspond to the aforementioned home appliance (1). However, the electronic device (1) is not limited to the aforementioned home appliance (1), and may include various types of devices such as mobile devices and mobility devices.
[0057] FIG. 2 is a control block diagram of an electronic device according to one embodiment of the present disclosure.
[0058] Referring to FIG. 2, the electronic device (1) may include a user interface device (20), a communication unit (30), and a control unit (40).
[0059] The user interface device (20) may include at least one input interface (21) and at least one output interface (22).
[0060] At least one input interface (21) can convert sensory information received from a user into an electrical signal.
[0061] At least one input interface (21) may include a power button, an operation button, a menu selection button, a setting button, etc. At least one input interface (21) may include, for example, a tact switch, a push switch, a slide switch, a toggle switch, a micro switch, a touch switch, a touch pad, a touch screen, a jog dial, and / or a microphone.
[0062] At least one output interface (22) can visually or audibly convey information related to the operation of the electronic device (1) to the user.
[0063] For example, at least one output interface (22) can transmit information related to the operation of the electronic device (1) to the user. Information related to the operation of the electronic device (1) can be output through a screen, an indicator, a voice, etc. At least one output interface (22) can include, for example, a liquid crystal display (LCD) panel, a light emitting diode (LED) panel, a speaker, etc.
[0064] The communication unit (30) may include at least one communication module. The communication module may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between external devices, and the performance of communication through the established communication channel. According to one embodiment, the communication module may include a wireless communication module (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (e.g., a local area network (LAN) communication module, or a power line communication module). Among these communication modules, a corresponding communication module may communicate with the external device through a first network (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These different types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips).
[0065] The short-range wireless communication module may include, but is not limited to, a Bluetooth communication module, a BLE (Bluetooth Low Energy) communication module, a near field communication module, a WLAN (Wi-Fi) communication module, a Zigbee communication module, an infrared (IrDA, infrared Data Association) communication module, a WFD (Wi-Fi Direct) communication module, an UWB (ultrawideband) communication module, an Ant+ communication module, a microwave (uWave) communication module, etc.
[0066] The long-distance communication module may include a communication module that performs various types of long-distance communication and may include a mobile communication unit. The mobile communication unit transmits and receives wireless signals with at least one of a base station, an external terminal, and a server on a mobile communication network.
[0067] In one embodiment, the communication module can communicate with external devices such as a server (3), a user device (2), and other electronic devices via a peripheral access point (AP). The access point (AP) can connect a local area network (LAN) to which the electronic device (1) or the user device (2) is connected to a wide area network (WAN) to which the server is connected. The electronic device (1) or the user device (2) can be connected to the server (3) via the wide area network (WAN).
[0068] The communication unit (30) can receive data from the server (3) and transmit the received data to the control unit (40). The data received from the server (3) can include update information, update files, etc. The communication unit (30) can store the data received from the server (3) and transmit the stored data to the control unit (40).
[0069] The communication unit (30) can receive partial update information for partially updating a program stored in the control unit (40) from the server (3) and transmit the received partial update information to the control unit (40).
[0070] The communication unit (30) can compare the current version and the new version of the program stored in the control unit (40), check the parts of the program that are different based on the comparison results, generate partial update information that includes at least one of the same parts and the different parts, and transmit the partial update information to the control unit (40).
[0071] The control unit (40) can be electrically connected to the user interface device (20) and the communication unit (30).
[0072] The control unit (40) can receive an update file through the communication unit (30) and update the stored program based on the update file.
[0073] The control unit (40) may be implemented by including at least one memory (42) that stores program-type data for controlling the operation of components within the electronic device (1), and at least one processor (41) that performs the aforementioned operation using the data stored in the at least one memory (42). In this case, the memory (42) and the processor (41) may each be implemented as separate chips. Alternatively, the memory (42) and the processor (41) may be implemented as a single chip.
[0074] The processor (41) can process output signals of the user interface device (20) and / or the communication unit (30), and may include an operation circuit, a memory circuit, and a control circuit that output control signals to the user interface device (20), the communication unit (30), etc. based on the processed output signals.
[0075] Memory (42) may include volatile memory such as Static Random Access Memory (S-RAM), Dynamic Random Access Memory (D-RAM), and non-volatile memory such as Read Only Memory (ROM), Erasable Programmable Read Only Memory (EPROM), and flash memory.
[0076] When updating a program stored in a memory (42), the processor (41) receives partial update information for the program stored in the memory (42) through the communication unit (30), reuses the same portion in the program stored in the memory (42) based on the partial update information, and receives a partial update file corresponding to the difference portion through the communication unit (30) based on the partial update information, thereby partially updating the program stored in the memory (42).
[0077] FIG. 3 illustrates an example of a flowchart of a control method of an electronic device according to one embodiment of the present disclosure.
[0078] Referring to FIG. 3, the processor (41) can receive partial update information from the outside (100).
[0079] When updating a program stored in memory (42), the processor (41) can receive partial update information about the program stored in memory (42) through the communication unit (30).
[0080] Partial update information may include identical and different portions between the current version of the program stored in memory (42) and the new version.
[0081] The processor (41) can reuse (102) the program stored in the memory (42) based on the partial update information.
[0082] The processor (41) can retain the same portion in the program stored in the memory (42) based on the partial update information or copy it within itself and reuse it.
[0083] The processor (41) can receive a partial update file corresponding to the difference portion through the communication unit (30) based on the partial update information (104).
[0084] The processor (41) can partially update a program stored in the memory (42) based on a partial update file (106).
[0085] In this way, only the differences between the current version and the new version of the program stored in memory (42) can be partially updated, without updating the identical portions. Therefore, there is no need to stop the electronic device (1) while updating the program, and the update time can be shortened.
[0086] FIG. 4 is a control block diagram of a control unit having a single bank memory in an electronic device according to one embodiment of the present disclosure.
[0087] Referring to FIG. 4, the control unit (40) may include a processor (41) and a microcomputer (micom) including a single-bank memory (50) as a memory (42). At this time, the single-bank memory (50) may include a non-volatile memory having one bank. The single-bank memory (50) may be a flash memory having one bank.
[0088] A program for performing the functions of the electronic device (1) is stored in the single bank memory (50).
[0089] The processor (41) can execute a program stored in a single bank memory (50).
[0090] The processor (41) can record a file received through the communication unit (30) into a program stored in the single bank memory (50).
[0091] The processor (41) can update a program stored in a single bank memory (50) based on an update file received through the communication unit (30).
[0092] The processor (41) can partially update a program stored in a single bank memory (50) based on a partial update file received through the communication unit (30).
[0093] Typically, program updates are accompanied by a reset of the electronic device (1) after the update is complete. For simple feature additions, partial program updates can be performed without shutting down the electronic device (1). By selecting only the desired features and partially updating the reserved area, the update time is fast and the electronic device (1) can be used continuously without the need to shut down.
[0094] FIG. 5 illustrates a single bank memory of a control unit of an electronic device according to one embodiment of the present disclosure.
[0095] Referring to FIG. 5, the program stored in the single bank memory (50) may include a basic program, a reservation function, and a function program.
[0096] A single bank memory (50) can be divided into a basic program area (51), a reserved function area (52), and a functional area (53). The basic program area (51), the reserved function area (52), and the functional area (53) can be divided by addresses. The basic program area (51), the reserved function area (52), and the functional area (53) can be arranged in the order of the basic program area (51), the reserved function area (52), and the functional area (53) based on the addresses. Fig. 5 shows an example in which the reserved function area (52) is located behind the basic program area (51), and the functional area (53) is located behind the reserved function area.
[0097] The basic program area (51) may be an area where a basic program is stored. The basic program may be the main program of the program stored in the control unit (40).
[0098] The reservation function area (52) may be an area in which one or more reservation functions are stored.
[0099] The reservation function area (52) may be divided into multiple function areas.
[0100] For example, the reservation function area (52) may include a first function area (52_1), a second function area (52_2), a third function area (52_3), a fourth function area (52_4), … a tenth function area (52_10). The first function area (52_1) may store a first reservation function (reservation function 1). The second function area (52_2) may store a second reservation function (reservation function 2). The third function area (52_3) may store a third reservation function (reservation function 3). The fourth function area (52_4) may store a fourth reservation function (reservation function 4). The tenth function area (52_10) may store a tenth reservation function (reservation function 10).
[0101] The functional area (53) may be an area where one or more functional programs are stored. The functional programs may be functional programs for performing functions desired by the user. The functional area (53) may be named a user-defined functional area.
[0102] The functional area (53) may be divided into multiple reserved areas.
[0103] For example, the function area (53) may include a first reserved area (Reserved 1) (53_1), a second reserved area (Reserved 2) (53_2), a third reserved area (Reserved 3) (53_3), a fourth reserved area (Reserved 4) (53_4), … a tenth reserved area (Reserved 10) (53_10). An example in which a function program A corresponding to a function A is stored in the first reserved area (Reserved 1) (53_1) is shown. An example in which the second reserved area (Reserved 2) (53_2) to the tenth reserved area (Reserved 10) (53_10) are empty areas in which no function program is stored is shown.
[0104] The base program can be linked to each reservation function.
[0105] The basic program can operate each reservation function depending on whether or not each reservation function is activated. The processor (41) can identify the activated reservation function among the reservation functions and operate the activated reservation function through the basic program. The activation status of the reservation functions may be stored in a separate memory accessible by the processor (41). The separate memory may be a data flash memory.
[0106] The reservation function stored in the reservation function area (52) may be matched 1:1 with the reserved area of the function area (52). The reservation function may be a function for operating a function program stored in the matched reserved area to turn on or off a desired function regardless of the functions of various function programs stored in the function area (53). By operating the reservation function, the function program stored in the reserved area matching the operated reservation function can be operated. Therefore, the desired function can be operated.
[0107] For example, when the first reservation function (reservation function 1) stored in the first function area (52_1) is operated, the A function program stored in the first reserved area (Reserved 1) (53_1) of the function area (53) matching the first reservation function (reservation function 1) is operated to operate the A function.
[0108] Meanwhile, the processor (41) can receive partial update information about the program stored in the single bank memory (50) through the communication unit (30) when updating the program stored in the single bank memory (50). The partial update information can include the same and different parts between the current version and the new version of the program stored in the single bank memory (50).
[0109] The processor (41) can maintain and reuse identical portions of a program stored in a single bank memory (50) based on partial update information. For example, if the identical portions are basic programs and reserved functions, the basic programs and reserved functions stored in the basic program area (51) can be maintained and reused without updating. In other words, the basic program area (51) and reserved function area (52) can be maintained as is without updating.
[0110] The processor (41) can receive a partial update file corresponding to the difference portion through the communication unit (30) based on the partial update information, and can partially update the difference portion in the program stored in the single bank memory (50) based on the partial update file. For example, if the difference portion is simply added as a B function, the B function program can be received, and a partial update can be performed to add the B function to the program by writing the B function program to the second reserved area (Reserved 2) (53_2) of the function area (53). At this time, since the A function is not updated, the A function can be continuously used during the partial update to add the B function.
[0111] In this way, only the differences, the addition of the B function, can be partially updated, without updating the basic program and reserved functions, which are identical between the current version and the new version of the program stored in the single bank memory (50). Therefore, there is no need to stop the electronic device (1) during the partial program update. Furthermore, the update time can be shortened because there is no need to download the basic program and reserved functions.
[0112] FIG. 6 illustrates a state before a partial update of a program stored in a single bank memory of a control unit of an electronic device according to an embodiment of the present disclosure. FIG. 7 illustrates a state after a partial update of a program stored in a single bank memory of a control unit of an electronic device according to an embodiment of the present disclosure.
[0113] Figure 6 shows the state before a partial update of the program that changes function A to function C and adds functions B, E, and D. Figure 7 shows the state after a partial update of the program that changes function A to function C and adds functions B, E, and D.
[0114] Referring to FIGS. 6 and 7, the processor (41) can identify identical and different parts of a program based on partial update information.
[0115] The processor (41) can identify the basic program of the basic program area (51) and the reservation functions of the reservation function area (52) as the same part.
[0116] The processor (41) can identify the difference by changing the A function to the C function and adding the B function, the E function, and the D function in the functional area (53).
[0117] The processor (41) can be reused by maintaining the same basic program and reservation functions for the same parts.
[0118] The processor (41) can receive partial update files, such as the C function program, the B function program, the E function program, and the D function program, for the difference portions through the communication unit (30). At this time, the functions to be changed or added may be a user-defined function list selected by the user from the entire function list of the program registered in the server (3). The processor (41) can receive function programs according to the user-defined function list.
[0119] The processor (41) erases data in the sector of the first reserved area (53_1) where the A function program is stored in the function area (53) based on the user-defined function list and writes the C function program. In addition, the processor (41) writes the B function program in the second reserved area (53_2), writes the E function program in the third reserved area (53_3), and writes the D function in the tenth reserved area (53_10) based on the user-defined function list. At this time, the C function, the B function, the E function, the D function, etc. may be written to other reserved areas. As each function is written to each reserved area, the downloaded function may be partially updated. In addition, along with the partial update, whether or not the reserved functions of the reserved function area (52) are activated may be set so that the use of the corresponding function may be enabled.
[0120] Accordingly, the processor (41) can partially update the program by changing function A of the functional area (53) to function C and adding functions B, E, and D to the functional area (53) while maintaining and reusing the basic program and reserved functions. In this way, the user can partially update the desired function in the program stored in the single bank memory (50) by selecting the desired function from the server (3).
[0121] FIG. 8 illustrates a dual bank memory of a control unit of an electronic device according to one embodiment of the present disclosure.
[0122] Referring to FIG. 8, the control unit (40) may include a processor (41) and a microcomputer (micom) including a dual bank memory (60) as a memory (42). At this time, the dual bank memory (60) may include a nonvolatile memory having a first bank (61) and a second bank (62). The dual bank memory (60) may be a flash memory having two banks.
[0123] A program for performing the function of the electronic device (1) is stored in one of the two banks of the dual bank memory (60).
[0124] For example, a program may be stored in a first bank (61). The first bank (61) may include a basic program area (61A), a reserved function area (61B), and a function area (61C), similar to the areas of the single bank memory (50).
[0125] The processor (41) can execute a program stored in the dual bank memory (60).
[0126] The processor (41) can record a file received through the communication unit (30) into one of the two banks of the dual bank memory (60).
[0127] The processor (41) can partially update a program stored in the dual bank memory (60) based on a partial update file received through the communication unit (30).
[0128] While the program is running, the same part of the program can be copied from the first bank (61) where the program is stored to the second bank (2) that is not in use and reused, and only the difference part of the program can be downloaded and partially updated, thereby shortening the update time.
[0129] In addition, in the case of simple function addition, the function program corresponding to the function to be added to the function area (61C) of the first bank (61) where the program is stored can be downloaded and partially updated without having to perform a bank swap that requires a reset operation, thereby shortening the update time and allowing the program to be partially updated without stopping the electronic device (1).
[0130] Additionally, if a partial update is interrupted during a partial update due to external factors (e.g., a product power reset, communication failure, etc.), the update can resume from the last partial update point once the external factor is resolved. This can shorten the partial update time.
[0131] FIG. 9 illustrates a partial update that adds a function requiring a change in a reservation function to a program stored in a dual bank memory of a control unit of an electronic device according to one embodiment of the present disclosure.
[0132] Referring to Fig. 9, partial update is possible for a specific area of the dual bank memory (60).
[0133] In the case of a function addition that requires a change in the reservation function rather than a simple function addition, it is necessary to update both the reservation function area (61B) and the function area (61C) of the program stored in the first bank (61).
[0134] Since previously used functions are affected during partial updates, updates can be performed by utilizing a dual bank structure.
[0135] When applying a dual bank structure, a reset operation is required for bank swap.
[0136] If the program cannot be reset while it is running, you can provide the user with the ability to set a restart time.
[0137] Since the base program is unchanged, you can reduce the overall download time by performing a copy operation as is.
[0138] Fig. 9 shows that the reservation function A and function A of the program stored in the first bank (61) of the dual bank memory (60) are partially updated with the reservation function A′, which is a modified reservation function of reservation function A, and the function A′, which is a modified function of function A. The reservation function A′ is a modified reservation function of reservation function A, and may be larger or smaller than the size of the reservation function. The function program A′ is a modified function program of function A, and may be larger or smaller than the size of the function program A.
[0139] The processor (41) can identify identical and different parts of the program stored in the first bank (61) based on partial update information.
[0140] The processor (41) can identify the basic program of the basic program area (61A) of the first bank (61) as the same part.
[0141] The processor (41) can identify the difference by changing the reservation function A of the reservation function area (61B) of the first bank (61) to the reservation function A′ and changing the function A of the function area (61C) to the function A′.
[0142] The processor (41) can copy and reuse the basic program for the same part.
[0143] The processor (41) can perform an operation of copying the basic program of the first bank (61) and copying it to the second bank (62) (①).
[0144] The processor (41) can receive partial update files, such as the reservation function A′ and the A′ function program, which are the difference parts, through the communication unit (30).
[0145] The processor (41) can write the reservation function A′ and A′ function programs to the second bank (62), respectively. The reservation function A′ and A′ function program can be downloaded and written from the area after the basic program is copied. As the basic program is copied to the second bank (62) and the reservation function A′ and A′ function program are written, the downloaded function can be partially updated (②). In addition, the reservation function A′ and the area where the A′ function program is written can be matched, and the activation of the reservation function A′ can be set to enable use of the corresponding function.
[0146] Accordingly, the processor (41) can partially update the program by copying and reusing the basic program from the first bank (61) to the second bank (62) and downloading and writing the reservation function A′ and A′ function programs to the second bank (62). Thereafter, the power of the electronic device (1) can be reset for bank swap to restart the program.
[0147] Meanwhile, it is necessary to determine the priority of partial updates.
[0148] When there are both simple feature additions and feature additions that require changes to the reservation function in a partial update item, the partial update operation can be performed by determining the priority.
[0149] Simple add-ons that don't require a program restart can be updated first, allowing users to continue using the added features.
[0150] After first updating the simple function addition function, the basic program of the first bank (62) can be copied to the second bank (62) that is not in use, and the reservation function and function program corresponding to the function including the reservation function change can be downloaded and updated in the second bank (62). At this time, the simple function addition function that was updated first can be included and updated together. The simple function addition function that was updated first can be copied from the first bank (61) to the second bank (62).
[0151] Once both updates are complete, you can display information to the user informing them that the program requires a restart and allowing them to choose when to restart the program.
[0152] When the user-selected restart time arrives, the program can be restarted for the bank swap operation.
[0153] Meanwhile, an electronic device (1) according to one embodiment of the present disclosure can perform a roll back function using a dual bank.
[0154] If you want to revert to a previous version after completing a partial update of the current version of the program to a new version, you can revert the program from the new version to the previous version.
[0155] For example, if a previous version of a program is stored in the first bank (61) and a newly partially updated version of a program is stored in the second bank (62), and a rollback is required, the program can be switched to the first bank (61) where the previous version of the program is stored instead of the second bank (62) currently in use.
[0156] Additionally, an electronic device (1) according to one embodiment of the present disclosure can perform an automatic recovery function using a dual bank.
[0157] The same version of the program is stored in two banks (61, 62), and if one bank is damaged for some reason, the program can be automatically recovered by executing the program stored in the other bank.
[0158] When the current version of the program in the first bank (61) is partially updated with a new version of the program in the second bank (62), the same version of the program can be stored in the first bank (61) and the second bank (62) by changing the current version of the program in the first bank (61) to the new version of the program.
[0159] When the program is operating normally, it uses the program of the second bank (62), and if the second bank (62) is damaged for some reason, it automatically switches to the first bank (61) and uses the program stored in the first bank (61) to maintain normal operation.
[0160] As described above, the electronic device (1) according to one embodiment of the present disclosure can avoid stopping the electronic device while updating a program or can minimize the stopping time and shorten the update time.
[0161] An electronic device according to one embodiment of the present disclosure may include: a communication unit; a memory in which a program is stored; and a processor that receives partial update information including identical and different portions between a current version and a new version of the program through the communication unit when partially updating the program, reuses the identical portion in the program based on the partial update information, receives a partial update file corresponding to the different portion through the communication unit, and partially updates the program based on the partial update file.
[0162] The above memory may include a single bank memory in which the above program is stored.
[0163] The single bank memory may include a basic program area in which a basic program of the program is stored, a reservation function area in which one or more reservation functions of the program are stored, and a function area in which one or more function programs of the program are stored.
[0164] The above functional area includes one or more reserved areas in which the functional program is stored, and the reserved function can be matched with the reserved area and operate the functional program stored in the matched area in conjunction with the basic program.
[0165] The processor can determine an activated reservation function among one or more reservation functions, and control a function program stored in an area matching the activated reservation function through the activated reservation function.
[0166] The processor, when the same portion is the basic program area and the reserved function area, and the difference portion is the functional area, maintains the basic program stored in the basic program area and one or more reserved functions stored in the reserved function area, receives a functional program corresponding to the difference portion through the communication unit, and writes the functional program to the functional area.
[0167] The processor can activate a reservation function that matches a reserved area in which the function program is written among one or more reserved areas of the functional area.
[0168] The above memory may include a dual bank memory in which the above program is stored.
[0169] The above dual bank memory may include a first bank in which the program is stored; and a second bank, wherein the first bank may include a basic program area in which the basic program of the program is stored, a reservation function area in which one or more reservation functions of the program are stored, and a function area in which one or more function programs of the program are stored.
[0170] The processor, if the partial update is a function addition that does not require a change to the reservation function, can maintain a basic program stored in the basic program area of the first bank and one or more reservation functions stored in the reservation function area of the first bank, receive a function program corresponding to the difference portion through the communication unit, and write the received function program to the function area of the first bank.
[0171] The processor may determine that the partial update is an addition of a function that does not require a change in the reservation function, when the identical portion is the basic program and the one or more reservation functions, and the difference portion is the one or more function programs.
[0172] The processor, if the partial update is a function addition that requires a change in the reservation function, can copy the basic program stored in the basic program area of the first bank to the second bank, receive the reservation function and function program corresponding to the difference portion through the communication unit, and write the received reservation function and function program to the second bank.
[0173] The processor may determine that the partial update is a function addition that requires a change in the reservation function, when the identical portion is the basic program and the difference portion is the one or more reservation functions and the one or more function programs.
[0174] The processor can match the lit area with the lit reservation function and the received function program, and activate the lit reservation function.
[0175] The above processor may perform the addition of a function that requires a change in the reservation function after performing the addition of a function that requires a change in the reservation function, if the partial update includes the addition of a function that requires a change in the reservation function and the addition of a function that requires a change in the reservation function.
[0176] A control method of an electronic device according to one embodiment of the present disclosure may include: receiving partial update information including identical and different portions between a current version of the program and a new version of the program through a communication unit when partially updating a program; reusing the identical portion in the program based on the partial update information; receiving a partial update file corresponding to the different portion through the communication unit, and partially updating the program based on the partial update file.
[0177] The single bank memory includes a single bank memory in which the program is stored, and the single bank memory includes a basic program area in which a basic program of the program is stored, a reservation function area in which one or more reservation functions of the program are stored, and a functional area in which one or more functional programs of the program are stored, and when the identical portion is the basic program area and the reservation function area and the difference portion is the functional area, reusing the identical portion may include maintaining the basic program stored in the basic program area and one or more reservation functions stored in the reservation function area, and partially updating the program may include receiving a functional program corresponding to the difference portion through the communication unit and writing the functional program to the functional area.
[0178] The dual bank memory in which the program is stored includes a first bank in which the program is stored; and a second bank, wherein the first bank includes a basic program area in which a basic program of the program is stored, a reservation function area in which one or more reservation functions of the program are stored, and a functional area in which one or more function programs of the program are stored, and when the partial update is a function addition that does not require a change in the reservation function, reusing the same portion may include maintaining the basic program stored in the basic program area of the first bank and the one or more reservation functions stored in the reservation function area of the first bank, and partially updating the program may include receiving a function program corresponding to the difference portion through the communication unit and writing the received function program into the functional area of the first bank.
[0179] If the partial update is a function addition that requires a change in the reservation function, reusing the same portion may further include copying the basic program stored in the basic program area of the first bank to the second bank, and partially updating the program may further include receiving the reservation function and function program corresponding to the difference portion through the communication unit, and writing the received reservation function and function program to the second bank.
[0180] If the above partial update includes adding a function that does not require a change in the reservation function and adding a function that requires a change in the reservation function, the update may further include performing adding a function that requires a change in the reservation function after performing adding a function that does not require a change in the reservation function.
[0181] Meanwhile, the disclosed embodiments may be implemented in the form of a storage medium storing computer-executable instructions. The instructions may be stored in the form of program code, and when executed by a processor, may generate program modules to perform the operations of the disclosed embodiments.
[0182] A device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, the term "non-transitory storage medium" simply means a tangible device that does not contain signals (e.g., electromagnetic waves). This term does not distinguish between cases where data is permanently stored in the storage medium and cases where data is temporarily stored. For example, a "non-transitory storage medium" may include a buffer in which data is temporarily stored.
[0183] According to one embodiment, the method according to various embodiments disclosed in the present document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play Store™) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product (e.g., a downloadable app) may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
[0184] The disclosed embodiments have been described with reference to the attached drawings as described above. Those skilled in the art will understand that the present invention can be implemented in forms other than the disclosed embodiments without altering the technical spirit or essential features of the present invention. The disclosed embodiments are illustrative and should not be construed as limiting.
Claims
1. Ministry of Communications; Memory where the program is stored; and When partially updating the above program, partial update information including the same and different parts between the current version and the new version of the program is received through the communication unit, Reuse the same part in the program based on the above partial update information, An electronic device comprising a processor that receives a partial update file corresponding to the difference portion through the communication unit and partially updates the program based on the partial update file.
2. In paragraph 1, An electronic device wherein the above memory comprises a single bank memory in which the above program is stored.
3. In paragraph 2, The above single bank memory is, The basic program area where the basic program of the above program is stored, A reservation function area in which one or more reservation functions of the above program are stored, An electronic device comprising a functional area in which one or more functional programs of the above program are stored.
4. In paragraph 3, The above functional area includes one or more reserved areas in which the functional program is stored, The above reservation function is, An electronic device that matches the above reserved area and operates a function program stored in the matched area in conjunction with the above basic program.
5. In paragraph 3, The above processor, Determine which of the one or more reservation functions is active, An electronic device that controls a function program stored in an area matching the activated reservation function through the activated reservation function.
6. In paragraph 3, The above processor, If the above identical portion is the basic program area and the reserved function area, and the above difference portion is the functional area, Maintaining a basic program stored in the above basic program area and one or more reservation functions stored in the above reservation function area, Receive a function program corresponding to the difference portion through the above communication unit, An electronic device that lights the above function program in the above function area.
7. In paragraph 6, The above processor, An electronic device that activates a reservation function that matches a reserved area in which the function program is lit among one or more reserved areas of the above functional area.
8. In paragraph 1, An electronic device wherein the above memory includes a dual bank memory in which the above program is stored.
9. In paragraph 8, The above dual bank memory is, A first bank in which the above program is stored; and Including the second bank, The above first bank, The basic program area where the basic program of the above program is stored, A reservation function area in which one or more reservation functions of the above program are stored, An electronic device comprising a functional area in which one or more functional programs of the above program are stored.
10. In paragraph 9, The above processor, If the above partial update is an addition of a function that does not require a change to the above reservation function, Maintaining a basic program stored in the basic program area of the first bank and one or more reservation functions stored in the reservation function area of the first bank, Receive a function program corresponding to the difference portion through the above communication unit, An electronic device that writes the received function program to the function area of the first bank.
11. In paragraph 10, The above processor, An electronic device that determines that the partial update is an addition of a function that does not require a change in the reservation function, when the same portion is the basic program and one or more of the reservation functions, and the difference portion is the one or more of the function programs.
12. In paragraph 9, The above processor, If the above partial update is an addition of a feature that requires a change to the above reservation function, Copy the basic program stored in the basic program area of the first bank to the second bank, Receive the reservation function and function program corresponding to the difference portion through the above communication unit, An electronic device that writes the received reservation function and function program to the second bank.
13. In paragraph 12, The above processor, An electronic device that determines that the partial update is a function addition that requires a change in the reservation function, when the same portion is the basic program and the difference portion is one or more reservation functions and one or more function programs.
14. In paragraph 12, The above processor, An electronic device that matches the lighted reservation function and the received function program to the lighted area and activates the lighted reservation function.
15. When partially updating a program, partial update information including the same and different parts between the current version of the program and the new version is received through the communication unit; Reusing the same portion in the program based on the above partial update information; A control method of an electronic device, comprising: receiving a partial update file corresponding to the difference portion through the communication unit, and partially updating the program based on the partial update file.
Citation Information
Patent Citations
Dual mode storage device
KR1020230034194A
Argon-helium based coating
KR1020230104573A
Method and apparatus for generating difference between old and new version of data for updating software
KR102088164B1
Eco Friendly Clothing Fiber and the Manufacturing Method Thereof
KR102628463B1
KR20220086248A