WO2020118719A1 - Firmware upgrading method, firmware upgrading device and control device of unmanned aerial vehicle, unmanned aerial vehicle and medium - Google Patents
Firmware upgrading method, firmware upgrading device and control device of unmanned aerial vehicle, unmanned aerial vehicle and medium Download PDFInfo
- Publication number
- WO2020118719A1 WO2020118719A1 PCT/CN2018/121312 CN2018121312W WO2020118719A1 WO 2020118719 A1 WO2020118719 A1 WO 2020118719A1 CN 2018121312 W CN2018121312 W CN 2018121312W WO 2020118719 A1 WO2020118719 A1 WO 2020118719A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- version
- firmware
- loader
- module
- upgraded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Definitions
- the present disclosure relates to the technical field of unmanned aerial vehicles, and in particular, to a method for upgrading firmware of an unmanned aerial vehicle, a firmware upgrade device for an unmanned aerial vehicle, a control device for an unmanned aerial vehicle, an unmanned aerial vehicle, and a computer-readable storage medium.
- Unmanned aerial vehicles are unmanned aerial vehicles that are controlled by wireless control equipment or built-in automatic control devices, usually with built-in firmware (Firmware), which can be regarded as a driver program inside the unmanned aerial vehicle. Interoperability largely determines the functions and performance of UAVs.
- the present disclosure provides a firmware upgrade method for an unmanned aerial vehicle, a firmware upgrade device for an unmanned aerial vehicle, a control device for an unmanned aerial vehicle, an unmanned aerial vehicle, and a computer-readable storage medium, thereby overcoming the possibility of the prior art at least to a certain extent The problem that caused the unmanned aerial vehicle to not work normally after upgrading the firmware.
- a firmware upgrade method for an unmanned aerial vehicle including: acquiring a current Loader version of a module to be upgraded in an unmanned aerial vehicle; and determining the location of the module to be upgraded according to the current Loader version A target version of firmware is required; upgrade the firmware of the module to be upgraded to the target version.
- the module to be upgraded includes a multi-level Loader; and determining the target version of the firmware required by the module to be upgraded according to the current Loader version includes: according to the module to be upgraded The current version of the first-level Loader determines the target version of the firmware required by the module to be upgraded.
- the determining the target version of the firmware required by the module to be upgraded according to the current Loader version includes: obtaining a mapping relationship table, where the mapping relationship table includes the Loader version and the firmware version Mapping relationship; searching the firmware version mapped to the current Loader version of the module to be upgraded in the mapping relationship table, and using the found firmware version as the target version.
- the method further includes: if the current Loader version of the module to be upgraded is found in the mapping relationship table to map multiple firmware versions, then the multiple firmware The latest firmware version among the versions is determined as the target version.
- the acquiring the mapping relationship table includes: acquiring multiple versions of Loader and multiple versions of firmware; extracting a list of loaders in each version of Loader and a startup program in each version of firmware List, and match the loader list of each version of the Loader with the startup program list of the firmware of each version; between the Loader version corresponding to the matched loader list and the firmware version corresponding to the startup program list Establish a mapping relationship to construct the mapping relationship table.
- the acquiring the current Loader version of the module to be upgraded includes: acquiring a current hardware identifier of the module to be upgraded, and determining the status of the module to be upgraded by the current hardware identifier Current Loader version.
- the module to be upgraded is an embedded module.
- a firmware upgrade device for an unmanned aerial vehicle including: a Loader version acquiring unit for acquiring a current Loader version of a module to be upgraded; and a firmware version determining unit for determining a firmware version according to the module to be upgraded
- the current Loader version determines the target version of the firmware required by the module to be upgraded; the target version upgrade unit is used to upgrade the firmware of the module to be upgraded to the target version.
- a control device for an unmanned aerial vehicle including: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute the Execute instructions to perform any of the methods described above.
- an unmanned aerial vehicle including: a fuselage; and the control device according to any one of the above, the control device being provided on the fuselage.
- a computer-readable storage medium is provided on which a computer program is stored, and when the computer program is executed by a processor, the method according to any one of the above is implemented.
- the target version of the firmware required by the module to be upgraded is determined according to the current Loader version of the module to be upgraded in the UAV to upgrade the firmware of the module to be upgraded to the target version.
- the firmware when the firmware is upgraded, the adaptability between the Loader of the module to be upgraded and the firmware is considered, so that the Loader can load the firmware program normally after the upgrade, such as the firmware driver, the associated application, etc., which can avoid the Loader and
- This exemplary embodiment can determine the target version of the firmware upgrade according to the current Loader version of the module to be upgraded.
- the UAV or the electronic device connected to it can automatically execute this The method of the exemplary embodiment determines the target version and completes the upgrade without requiring the user to understand each firmware version, thereby reducing the user's learning cost and simplifying the firmware upgrade method flow.
- FIG. 1 shows a flowchart of a method for upgrading firmware of an unmanned aerial vehicle in this exemplary embodiment
- FIG. 2 shows a schematic diagram of a hardware identifier and a Loader version in this exemplary embodiment
- FIG. 3 shows a sub-flow diagram of a method for upgrading the firmware of an unmanned aerial vehicle in this exemplary embodiment
- FIG. 4 shows a flowchart of another method for upgrading the firmware of an unmanned aerial vehicle in this exemplary embodiment
- FIG. 5 shows a structural block diagram of a firmware upgrading apparatus of an unmanned aerial vehicle in this exemplary embodiment
- FIG. 6 shows a structural block diagram of a control device of an unmanned aerial vehicle in this exemplary embodiment
- FIG. 7 shows a structural block diagram of another unmanned aerial vehicle control device in this exemplary embodiment
- FIG. 8 shows a structural block diagram of an unmanned aerial vehicle in this exemplary embodiment
- FIG. 9 shows a computer-readable storage medium for implementing the above method in this exemplary embodiment.
- Example embodiments will now be described more fully with reference to the drawings.
- the example embodiments can be implemented in various forms, and should not be construed as being limited to the examples set forth herein; on the contrary, providing these embodiments makes the present disclosure more comprehensive and complete, and fully conveys the idea of the example embodiments For those skilled in the art.
- the described features, structures, or characteristics may be combined in one or more embodiments in any suitable manner.
- Exemplary embodiments of the present disclosure first provide a method for firmware upgrade of an unmanned aerial vehicle, which can be applied to an unmanned aerial vehicle to enable the unmanned aerial vehicle to independently execute the exemplary implementation in the case of networking or having a firmware upgrade program
- the method of this example can be used to upgrade the firmware; this exemplary embodiment can also be applied to other electronic devices such as computers and tablets connected to the unmanned aerial vehicle, by performing the method of this exemplary embodiment to control the unmanned aerial vehicle to upgrade the firmware
- the connection between the electronic equipment and the UAV can include TTL (Transistor Transistor Logic, parallel transmission interface), USB (Universal Serial Bus), SATA (Serial Advanced Technology Attachment), and other wired
- the connection method may also include Wifi (Wireless Fidelity, wireless fidelity), Bluetooth and other wireless connection methods; this exemplary embodiment can also be applied to a server of a firmware manufacturer to obtain information about the unmanned aerial vehicle by remotely connecting the unmanned aerial vehicle ,
- the method of the present exemplary embodiment is executed to realize remotely controlled
- the method may include the following steps S110-S130:
- Step S110 Obtain the current Loader version of the module to be upgraded in the UAV.
- the module to be upgraded is a specific hardware module that needs to be upgraded in the UAV.
- the internal hardware modules are also showing a trend of division of labor.
- the current UAVs usually include multiple Hardware modules, such as rotor control module, GPS (Global Positioning System) positioning module, remote communication module, image acquisition module, etc.
- each module may have its own firmware.
- the firmware of each module is independent of each other.
- the firmware of one of the modules can be upgraded independently.
- the firmware of multiple modules can also be integrated.
- the upgrade is performed (equivalent to running multiple upgrade programs at a time), so the above-mentioned module to be upgraded may be one or more modules in an unmanned aerial vehicle, which is not specifically limited in this disclosure.
- Loader is a loader used when loading software programs for the operating system of an unmanned aerial vehicle, which is essentially a loading program.
- one loader can be configured in the unmanned aerial vehicle to load firmware programs of all modules, or multiple loader can be configured, each loader corresponds to a specific one or more modules.
- the Loader can usually update or upgrade itself, and has different versions. Therefore, the current Loader version of the module to be upgraded can be obtained, usually expressed as a specific version identifier, such as 01.00.01.01, v101.00.02 and other forms.
- the system can read the relevant information of Loader to obtain the current version, or it can scan the header information of its code to determine its current version, etc.
- the module to be upgraded may be an embedded module.
- the embedded module usually has an embedded processor and a memory.
- the embedded processor may be an MCU (Microcontroller Unit, embedded microcontroller) or MPU (Microprocessor Unit, embedded processor), DPS (Digital Signal Processor, embedded signal processor), etc., by calling the program stored in the memory, such as Loader, to execute the program instructions.
- the embedded module has strong independence, and its initialization and operation process depend more on the firmware, so it needs to control the firmware upgrade process to achieve an effective upgrade.
- step S110 may be implemented by the following steps:
- the hardware identifier of module A corresponds to the Loader version “01.00.00.02”
- the hardware identifier “MODAU2019” corresponds to Loader version "01.00.01.01”
- the current Loader version of the module can be determined according to the current hardware identifier of the module.
- the correspondence table between the hardware identifier and the Loader version can be obtained from the hardware manufacturer or the Loader provider in advance, and the current Loader version corresponding to the current hardware identifier of the module to be upgraded can be found from the table, or it can be accessed on the Internet. In the case of, search the current Loader version corresponding to the current hardware identifier from the Internet.
- Step S120 Determine the target version of the firmware required by the module to be upgraded according to the current Loader version.
- Loader version There may also be a correspondence between the Loader version and the firmware version, and the correspondence relationship refers to which version of the firmware the Loader of each version is adapted to.
- Loader is used to load software programs.
- the programs loaded by different versions of Loader may be different, and the loading method may also be different. That is to say, which version of Loader is currently used by the module to be upgraded can reflect the location of the module to be upgraded to a certain extent.
- Software Environment The driver of the module to be upgraded is an important type of loader. If the Loader cannot load the driver correctly, the module to be upgraded will not start normally. For example, when upgrading the firmware, the built-in driver is usually upgraded.
- the upgraded driver contains code that the Loader cannot recognize, or the way the code is executed occurs Changes, the Loader cannot be executed, or new pre-loaded code is added, and the Loader does not pre-load this part of the code, etc., the driver cannot run normally, the module to be upgraded cannot be initialized, and it is not normal jobs.
- Loader can also load some applications. For example, when the driver of the image acquisition module is started, the application programs for image processing and video processing can be simultaneously loaded to make the image acquisition module enter the shooting standby state.
- the Loader provider or firmware manufacturer can provide the corresponding information of the Loader version and the firmware version.
- the current Loader version of the module is the target version of the required firmware, and the corresponding information file of the Loader version and the firmware version can be downloaded in advance and configured locally. This file can be read when the firmware is upgraded to determine the target version and so on.
- a plurality of adapted firmware versions may be determined according to the current Loader version of the module to be upgraded, and these firmware versions may be provided to the user in an optional manner so that the user can select a target version from it, or According to specific rules, a target version is automatically selected, for example, the latest version may be selected as the target version, and the version with the highest user evaluation may be selected as the target version.
- Step S130 Upgrade the firmware of the module to be upgraded to the target version.
- the firmware update program of the target version After determining the target version, you can obtain the firmware update program of the target version. For example, you can search and download the firmware update program of the target version from the Internet, or select the firmware upgrade program of the target version from the firmware upgrade package provided in advance, and run the The firmware upgrade program upgrades the firmware of the module to be upgraded to the target version.
- the target version of the firmware required by the module to be upgraded is determined according to the current Loader version of the module to be upgraded in the UAV, so as to upgrade the firmware of the module to be upgraded to the target version.
- the firmware when the firmware is upgraded, the adaptability between the Loader of the module to be upgraded and the firmware is considered, so that the Loader can load the firmware program normally after the upgrade, such as the firmware driver, the associated application, etc., which can avoid the Loader and
- the situation that the module to be upgraded cannot work normally after the firmware upgrade due to the mismatch of the firmware improves the safety of the UAV firmware upgrade.
- this exemplary embodiment can determine the target version of the firmware upgrade according to the current Loader version of the module to be upgraded.
- the UAV or the electronic device connected to it can automatically execute this The method of the exemplary embodiment determines the target version and completes the upgrade without requiring the user to understand each firmware version, thereby reducing the user's learning cost and simplifying the firmware upgrade method flow.
- the module to be upgraded may include a multi-level loader.
- the multi-level loader can be used to load specific programs at different stages, for example, the first-level loader loads the first-level program first, and then loads the first-level program. After completion, the second-level Loader loads the second-level programs, etc., and there may be one or more programs loaded in each level of the Loader.
- step S120 may be implemented by the following steps:
- the target version of the firmware required by the module to be upgraded is determined according to the current version of the first-level Loader of the module to be upgraded.
- the first level Loader is usually used to load the driver of the module to be upgraded, guide the module to be upgraded to initialize, and the performance of the module to be upgraded has the greatest impact, so the correspondence between the first level Loader version and the firmware version can be established.
- the target version of the firmware is determined according to the version of the first-level Loader, so that the firmware is adapted to the first-level Loader, which can ensure the normal loading of the driver and the normal initialization of the module to be upgraded.
- step S120 may include the following steps:
- mapping relationship table which includes the mapping relationship between the Loader version and the firmware version
- the mapping relationship is a specific manifestation of the correspondence between the Loader version and the firmware version.
- the mapping relationship table can be a data table that contains a large number of mapping relationships, which can form a row mapping or a column mapping between the Loader version and the firmware version.
- the mapping relationship between each Loader version can also be mapped to the firmware version of multiple different modules.
- a Loader is responsible for loading the firmware programs of the wired communication module and the wireless communication module in the UAV.
- Each version of the software is mapped to the firmware version of the wired communication module and the wireless communication module.
- the firmware version of the wired communication module and the firmware version of the wireless communication module can be found according to the current version of the Loader.
- the disclosure does not limit the specific form of the mapping relationship table. Based on the mapping relationship table, the firmware version mapped to the current Loader version of the module to be upgraded can be found and used as the target version of the firmware upgrade.
- the mapping relationship between the Loader version and the firmware version may be "one-to-one", “one-to-many”, or “many-to-one” mapping.
- "one-to-many” refers to a Loader version mapped to multiple firmware versions of a module; usually the update cycle of the Loader is longer, a version of the Loader can continue to be used for a longer period of time, relative to the case of frequent firmware upgrades, Loader
- the number of versions is less than the number of firmware versions, so there are many cases of "one-to-many”.
- the latest firmware version among the multiple firmware versions is determined as the target version.
- the latest firmware version can be the latest firmware version released by the firmware manufacturer, or the firmware version with the largest version number, usually with the most comprehensive functions, supporting the latest operating system, the fewest errors, the most optimized code, etc.
- the firmware version is the best choice within the scope of Loader adaptation.
- mapping table may be constructed through the following steps:
- Step S302 acquiring multiple versions of Loader and multiple versions of firmware
- Step S304 extract the loader program list in each version of Loader and the startup program list in each version of firmware, and match the loader program list of each version of Loader with the startup program list of each version of firmware;
- step S306 a mapping relationship is established between the Loader version corresponding to the successfully matched loading program list and the firmware version corresponding to the starting program list, so as to construct a mapping relationship table.
- the loader program list in the Loader refers to which programs are loaded by each version of the Loader;
- the startup program list in the firmware refers to which programs need to be initialized and started by each version of the firmware.
- the loader program list and boot program list can be obtained from the relevant information provided by the manufacturer, or can be extracted from the code instructions of the loader or firmware.
- the startup program list in the firmware usually contains the driver and necessary applications. If these programs are not all part of the Loader loader, the Loader will not load all the startup programs in the firmware, which will cause the firmware to fail to initialize, that is, the Loader and the firmware will not The situation of adaptation.
- the two are suitable according to the loader program list in the Loader and the startup program list in the firmware.
- the programs in the loader program list need to include the programs in the startup program list That is, the startup program list is a subset of the loader program list, and the match in step S304 refers to this case, so that the Loader can ensure that the firmware startup programs are all loaded, and the mapping relationship can be determined between the versions of the two.
- the matching Loader version-firmware version combination can be screened out to establish a mapping relationship, thereby obtaining a mapping relationship table.
- FIG. 4 shows a flow of another method of firmware upgrade in this exemplary embodiment.
- an upgrade process can be started on the UAV or its connected external electronic device or remote server, and the upgrade process performs the following steps:
- Step S401 Obtain a mapping relationship table.
- the upgrade process can be downloaded on the firmware manufacturer's website to obtain the mapping relationship table, or it can match the mapping relationship based on the multi-version Loader and the firmware, and construct the mapping relationship table.
- Step S402 the upgrade process may establish data interaction with the module to be upgraded, and query the current Loader version of the module to be upgraded.
- Step S403 Receive the current Loader version it returns from the module to be upgraded.
- Step S404 Determine the target version of the firmware required by the module to be upgraded according to the mapping relationship table.
- Step S405 Run an upgrade program to upgrade the firmware of the module to be upgraded to the target version.
- the present exemplary embodiment completes the entire firmware upgrade process through the upgrade process, implements a fully automated upgrade, and further improves the safety and convenience of firmware upgrade.
- Exemplary embodiments of the present disclosure also provide a firmware upgrade device for an unmanned aerial vehicle, which can be applied to an unmanned aerial vehicle, an electronic device connected to the unmanned aerial vehicle, or a remotely connected to an unmanned aerial vehicle On the server, to control the UAV to upgrade the firmware.
- the device 500 may include: a Loader version acquiring unit 510 for acquiring the current Loader version of the module to be upgraded; a firmware version determining unit 520 for determining the location of the module to be upgraded according to the current Loader version of the module to be upgraded The target version of the firmware is required; the target version upgrade unit 530 is used to upgrade the firmware of the module to be upgraded to the target version.
- the module to be upgraded includes a multi-level Loader; the firmware version determination unit 520 may be used to determine the target version of the firmware required by the module to be upgraded according to the current first-level Loader version of the module to be upgraded.
- the firmware version determination unit 520 may be used to obtain a mapping relationship table, which includes the mapping relationship between the Loader version and the firmware version, and find the current Loader version of the module to be upgraded in the mapping relationship table The mapped firmware version uses the found firmware version as the target version.
- the firmware version determination unit 520 may also be used to determine the latest firmware version among the multiple firmware versions if the current Loader version of the module to be upgraded is found in the mapping relationship table to map multiple firmware versions Is the target version.
- the firmware upgrading apparatus may further include: a mapping table construction unit 540 for extracting the loader list in multiple versions of Loader and the startup program list in multiple versions of firmware, respectively, and separately The loader list of each version of the Loader matches the startup program list of each version of the firmware, and a mapping relationship is established between the Loader version corresponding to the successfully matched loader list and the firmware version corresponding to the startup program list to construct a mapping relationship table .
- a mapping table construction unit 540 for extracting the loader list in multiple versions of Loader and the startup program list in multiple versions of firmware, respectively, and separately The loader list of each version of the Loader matches the startup program list of each version of the firmware, and a mapping relationship is established between the Loader version corresponding to the successfully matched loader list and the firmware version corresponding to the startup program list to construct a mapping relationship table .
- the Loader version obtaining unit 510 may be used to obtain the current hardware identifier of the module to be upgraded, and determine the current Loader version of the module to be upgraded through the current hardware identifier.
- the module to be upgraded may be an embedded module.
- Exemplary embodiments of the present disclosure also provide an unmanned aerial vehicle capable of implementing the above method.
- Those skilled in the art can understand that various aspects of the present disclosure can be implemented as a system, method, or program product. Therefore, various aspects of the present disclosure may be specifically implemented in the form of: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software implementations, which may be collectively referred to herein as "Circuit", "Module” or "System”.
- control device 600 of the unmanned aerial vehicle will be described below with reference to FIG. 6.
- the control device 600 shown in FIG. 6 is just an example, and should not bring any limitation to the functions and use scope of the embodiments of the present disclosure.
- the unmanned aerial vehicle control device 600 may include a processor 610 and a memory 620, where the memory 620 is used to store executable instructions of the processor 610, and the processor 610 is configured to execute the present disclosure by executing the executable instructions Methods of various exemplary embodiments.
- Executable instructions are usually program code, and the program code can be executed by the processor 610.
- the processor 610 executes the program code to execute the method steps shown in FIG. 1:
- Step S110 Obtain the current Loader version of the module to be upgraded in the UAV;
- Step S120 Determine the target version of the firmware required by the module to be upgraded according to the current Loader version
- Step S130 Upgrade the firmware of the module to be upgraded to the target version.
- the module to be upgraded includes a multi-level Loader; the processor 610 may also perform the following method steps:
- the target version of the firmware required by the module to be upgraded is determined according to the current first-level Loader version of the module to be upgraded.
- the processor 610 may also perform the following method steps:
- mapping relationship table which includes the mapping relationship between the Loader version and the firmware version
- the processor 610 may also perform the following method steps:
- the latest firmware version among the multiple firmware versions is determined as the target version.
- the processor 610 may also perform the following method steps:
- a mapping relationship is established between the Loader version corresponding to the successfully matched loader list and the firmware version corresponding to the startup program list, so as to construct a mapping relationship table.
- the processor 610 may also perform the following method steps:
- the module to be upgraded may be an embedded module.
- control device 700 of the UAV may also be represented in the form of a general-purpose computing device.
- the processor is represented by at least one processing unit 710
- the memory is represented by at least one storage unit 720.
- the components of the control device 700 may also include, but are not limited to: components connected to different system components (including the storage unit 720 and the processing unit 710) Bus 730, I/O (input/output) interface 740, network adapter 750, etc.
- the storage unit 720 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 721 and/or a cache storage unit 722, and may further include a read-only storage unit (ROM) 723.
- RAM random access storage unit
- ROM read-only storage unit
- the storage unit 720 may further include a program/utility tool 724 having a set of (at least one) program modules 725.
- program modules 725 include but are not limited to: an operating system, one or more application programs, other program modules, and program data. Each of these examples or some combination may include an implementation of the network environment.
- the bus 730 may represent one or more of several types of bus structures, including a storage unit bus or a storage unit controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local area using any of a variety of bus structures bus.
- the control device 700 may also communicate with one or more external devices 760 (eg, computers, tablets, pointing devices, etc.), and may also communicate with one or more devices that enable users to interact with the control device 700, and/or This allows the control device 700 to communicate with any device (such as a router, modem, etc.) that communicates with one or more other computing devices. This communication can be performed through the I/O interface 740.
- the control device 700 can also communicate with one or more networks (such as a local area network (LAN), a wide area network (WAN) and/or a public network, such as the Internet) through a network adapter 750. As shown in the figure, the network adapter 750 communicates with other modules of the control device 700 through the bus 730.
- LAN local area network
- WAN wide area network
- the Internet such as the Internet
- the network adapter 750 communicates with other modules of the control device 700 through the bus 730.
- other hardware and/or software modules may be used in conjunction with the control device 700, including but not
- the unmanned aerial vehicle 800 may include a fuselage 810 and a control device 820, wherein the control device 820 is provided in the fuselage 810, and
- the control device 820 may be the control device in any of the above embodiments, for example, may be the control device 600 in FIG. 6 or the control device 700 in FIG. 7.
- the control device 820 may be used to execute the firmware upgrade method of the UAV in any of the foregoing embodiments.
- the control device 820 may execute the method steps shown in FIG. 1, FIG. 3, or FIG.
- the example embodiments described here can be implemented by software, or can be implemented by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, U disk, mobile hard disk, etc.) or on a network , Including several instructions to cause a computing device (which may be a personal computer, server, terminal device, or network device, etc.) to perform the method according to an exemplary embodiment of the present disclosure.
- a computing device which may be a personal computer, server, terminal device, or network device, etc.
- Exemplary embodiments of the present disclosure also provide a computer-readable storage medium having stored thereon a program product capable of implementing the above method of this specification.
- various aspects of the present disclosure may also be implemented in the form of a program product, which includes program code, and when the program product runs on the terminal device, the program code is used to cause the terminal device to execute the The steps according to various exemplary embodiments of the present disclosure described in the "Exemplary Method" section.
- a program product 900 for implementing the above method according to an exemplary embodiment of the present disclosure is described, which can adopt a portable compact disk read-only memory (CD-ROM) and include a program code, and can be used in a terminal Devices, such as personal computers.
- CD-ROM portable compact disk read-only memory
- the program product of the present disclosure is not limited thereto, and in this document, the readable storage medium may be any tangible medium containing or storing a program, which may be used by or in combination with an instruction execution system, apparatus, or device.
- the program product may use any combination of one or more readable media.
- the readable medium may be a readable signal medium or a readable storage medium.
- the readable storage medium may be, for example but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination of the above. More specific examples of readable storage media (non-exhaustive list) include: electrical connections with one or more wires, portable disks, hard disks, random access memory (RAM), read only memory (ROM), erasable Programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the foregoing.
- the computer-readable signal medium may include a data signal that is transmitted in baseband or as part of a carrier wave, in which readable program code is carried. This propagated data signal can take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
- the readable signal medium may also be any readable medium other than a readable storage medium, and the readable medium may send, propagate, or transmit a program for use by or in combination with an instruction execution system, apparatus, or device.
- the program code contained on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
- Program code for performing the operations of the present disclosure can be written in any combination of one or more programming languages.
- the programming language includes object-oriented programming languages such as Java, C++, etc., as well as conventional procedural programming Language-such as "C" language or similar programming language.
- the program code may be executed entirely on the user's computing device, partly on the user's device, as an independent software package, partly on the user's computing device and partly on a remote computing device, or entirely on the remote computing device or server On the implementation.
- the remote computing device may be connected to the user computing device through any kind of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (eg, using Internet service provision Business to connect via the Internet).
- LAN local area network
- WAN wide area network
- Internet service provision Business to connect via the Internet
- modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory.
- the features and functions of the two or more modules or units described above may be embodied in one module or unit.
- the features and functions of a module or unit described above can be further divided into multiple modules or units to be embodied.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
Description
本公开涉及无人飞行器技术领域,特别涉及一种无人飞行器的固件升级方法、无人飞行器的固件升级装置、无人飞行器的控制装置、无人飞行器及计算机可读存储介质。The present disclosure relates to the technical field of unmanned aerial vehicles, and in particular, to a method for upgrading firmware of an unmanned aerial vehicle, a firmware upgrade device for an unmanned aerial vehicle, a control device for an unmanned aerial vehicle, an unmanned aerial vehicle, and a computer-readable storage medium.
无人飞行器是利用无线控制设备或内置的自动控制装置所操控的不载人飞行器,通常内置有固件(Firmware),固件可视作无人飞行器内部的驱动程序,实现了硬件与软件之间的互通,在很大程度上决定着无人飞行器的功能与性能。Unmanned aerial vehicles are unmanned aerial vehicles that are controlled by wireless control equipment or built-in automatic control devices, usually with built-in firmware (Firmware), which can be regarded as a driver program inside the unmanned aerial vehicle. Interoperability largely determines the functions and performance of UAVs.
随着无人飞行器的迅速发展,经常需要对其固件进行升级。目前,厂商在发布固件的新版本时,通常是按照无人飞行器的设备型号发布对应的版本,使用户可以根据设备型号选择固件版本并进行升级。然而,随着无人飞行器内部的软件环境越来越复杂,同一设备型号的无人飞行器可能工作在不同的软件环境下,对于不同的固件版本可能存在不同的适配情况,因此现有方法可能导致无人飞行器在升级固件后无法正常工作。With the rapid development of unmanned aerial vehicles, it is often necessary to upgrade their firmware. At present, when a manufacturer releases a new version of firmware, it usually releases the corresponding version according to the device model of the UAV, so that the user can select the firmware version according to the device model and upgrade. However, as the software environment inside the UAV becomes more and more complex, UAVs of the same device model may work in different software environments, and there may be different adaptation situations for different firmware versions, so the existing method may As a result, the UAV cannot work normally after upgrading the firmware.
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。It should be noted that the information disclosed in the above background section is only for enhancing the understanding of the background of the present disclosure, and therefore may include information that does not constitute prior art known to those of ordinary skill in the art.
发明内容Summary of the invention
本公开提供了一种无人飞行器的固件升级方法、无人飞行器的固件升级装置、无人飞行器的控制装置、无人飞行器及计算机可读存储介质,进而至少在一定程度上克服现有技术可能导致无人飞行器在升级固件后无法正常工作的问题。The present disclosure provides a firmware upgrade method for an unmanned aerial vehicle, a firmware upgrade device for an unmanned aerial vehicle, a control device for an unmanned aerial vehicle, an unmanned aerial vehicle, and a computer-readable storage medium, thereby overcoming the possibility of the prior art at least to a certain extent The problem that caused the unmanned aerial vehicle to not work normally after upgrading the firmware.
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。Other features and advantages of the present disclosure will become apparent through the following detailed description, or partly learned through the practice of the present disclosure.
根据本公开的一个方面,提供一种无人飞行器的固件升级方法,包括:获取无人飞行器中待升级模块的当前Loader(装载器)版本;根据所述当前Loader版本确定所述待升级模块所需固件的目标版本;将所述待升级模块的固件升级到所述目标版本。According to an aspect of the present disclosure, a firmware upgrade method for an unmanned aerial vehicle is provided, including: acquiring a current Loader version of a module to be upgraded in an unmanned aerial vehicle; and determining the location of the module to be upgraded according to the current Loader version A target version of firmware is required; upgrade the firmware of the module to be upgraded to the target version.
在本公开的一种示例性实施例中,所述待升级模块包括多级Loader;所述根据所述当前Loader版本确定所述待升级模块所需固件的目标版本包括:根据所述待升级模块当前的第一级Loader的版本确定所述待升级模块所需固件的目标版本。In an exemplary embodiment of the present disclosure, the module to be upgraded includes a multi-level Loader; and determining the target version of the firmware required by the module to be upgraded according to the current Loader version includes: according to the module to be upgraded The current version of the first-level Loader determines the target version of the firmware required by the module to be upgraded.
在本公开的一种示例性实施例中,所述根据所述当前Loader版本确定所述待升级模块所需固件的目标版本包括:获取映射关系表,所述映射关系表包括Loader版本与固件版本的映射关系;在所述映射关系表中查找所述待升级模块的当前Loader版本所映射的固件版本,将查找到的固件版本作为所述目标版本。In an exemplary embodiment of the present disclosure, the determining the target version of the firmware required by the module to be upgraded according to the current Loader version includes: obtaining a mapping relationship table, where the mapping relationship table includes the Loader version and the firmware version Mapping relationship; searching the firmware version mapped to the current Loader version of the module to be upgraded in the mapping relationship table, and using the found firmware version as the target version.
在本公开的一种示例性实施例中,所述方法还包括:如果在所述映射关系表中查找到所述待升级模块的当前Loader版本映射多个固件版本,则将所述多个固件版本中最新的固件版本确定为所述目标版本。In an exemplary embodiment of the present disclosure, the method further includes: if the current Loader version of the module to be upgraded is found in the mapping relationship table to map multiple firmware versions, then the multiple firmware The latest firmware version among the versions is determined as the target version.
在本公开的一种示例性实施例中,所述获取映射关系表包括:获取多个版本的Loader与多个版本的固件;提取各版本Loader中的加载程序列表与各版本固件中的启动程序列表,并分别将所述各版本Loader的加载程序列表与所述各版本固件的启动程序列表进行匹配;在匹配成功的加载程序列表所对应的Loader版本与启动程序列表所对应的固件版本之间建立映射关系,以构建所述映射关系表。In an exemplary embodiment of the present disclosure, the acquiring the mapping relationship table includes: acquiring multiple versions of Loader and multiple versions of firmware; extracting a list of loaders in each version of Loader and a startup program in each version of firmware List, and match the loader list of each version of the Loader with the startup program list of the firmware of each version; between the Loader version corresponding to the matched loader list and the firmware version corresponding to the startup program list Establish a mapping relationship to construct the mapping relationship table.
在本公开的一种示例性实施例中,所述获取待升级模块的当前Loader版本包括:获取所述待升级模块的当前硬件标识符,通过所述当前硬件标识符确定所述待升级模块的当前Loader版本。In an exemplary embodiment of the present disclosure, the acquiring the current Loader version of the module to be upgraded includes: acquiring a current hardware identifier of the module to be upgraded, and determining the status of the module to be upgraded by the current hardware identifier Current Loader version.
在本公开的一种示例性实施例中,所述待升级模块为嵌入式模块。In an exemplary embodiment of the present disclosure, the module to be upgraded is an embedded module.
根据本公开的一个方面,提供一种无人飞行器的固件升级装置,包括:Loader版本获取单元,用于获取待升级模块的当前Loader版本;固件版本确定单元,用于根据所述待升级模块的当前Loader版本确定所述待升级模块所需固件的目标版本;目标版本升级单元,用于将所述待升级模块的固 件升级到所述目标版本。According to an aspect of the present disclosure, there is provided a firmware upgrade device for an unmanned aerial vehicle, including: a Loader version acquiring unit for acquiring a current Loader version of a module to be upgraded; and a firmware version determining unit for determining a firmware version according to the module to be upgraded The current Loader version determines the target version of the firmware required by the module to be upgraded; the target version upgrade unit is used to upgrade the firmware of the module to be upgraded to the target version.
根据本公开的一个方面,提供一种无人飞行器的控制装置,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。According to an aspect of the present disclosure, there is provided a control device for an unmanned aerial vehicle, including: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute the Execute instructions to perform any of the methods described above.
根据本公开的一个方面,提供一种无人飞行器,包括:机身;以及上述任一项所述的控制装置,所述控制装置设于所述机身。According to an aspect of the present disclosure, there is provided an unmanned aerial vehicle, including: a fuselage; and the control device according to any one of the above, the control device being provided on the fuselage.
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。According to an aspect of the present disclosure, a computer-readable storage medium is provided on which a computer program is stored, and when the computer program is executed by a processor, the method according to any one of the above is implemented.
本公开的示例性实施例具有以下有益效果:The exemplary embodiments of the present disclosure have the following beneficial effects:
根据无人飞行器中待升级模块的当前Loader版本确定待升级模块所需固件的目标版本,以将待升级模块的固件升级到目标版本。一方面,在固件升级时,考虑了待升级模块的Loader与固件之间的适配性,使得升级后Loader可以正常加载固件程序,例如固件的驱动程序、关联的应用程序等,可以避免Loader与固件不适配而导致的待升级模块在固件升级后无法正常工作的情况,提高无人飞行器固件升级的安全性。另一方面,本示例性实施例可以根据待升级模块的当前Loader版本确定固件升级的目标版本,在厂商提供二者对应信息的情况下,可以由无人飞行器或与其连接的电子设备自动化执行本示例性实施例的方法,以确定目标版本并完成升级,无需用户对每个固件版本进行理解,从而降低了用户的学习成本,并简化了固件升级的方法流程。The target version of the firmware required by the module to be upgraded is determined according to the current Loader version of the module to be upgraded in the UAV to upgrade the firmware of the module to be upgraded to the target version. On the one hand, when the firmware is upgraded, the adaptability between the Loader of the module to be upgraded and the firmware is considered, so that the Loader can load the firmware program normally after the upgrade, such as the firmware driver, the associated application, etc., which can avoid the Loader and The situation that the module to be upgraded cannot work normally after the firmware upgrade due to the mismatch of the firmware improves the safety of the UAV firmware upgrade. On the other hand, this exemplary embodiment can determine the target version of the firmware upgrade according to the current Loader version of the module to be upgraded. In the case where the manufacturer provides the corresponding information of the two, the UAV or the electronic device connected to it can automatically execute this The method of the exemplary embodiment determines the target version and completes the upgrade without requiring the user to understand each firmware version, thereby reducing the user's learning cost and simplifying the firmware upgrade method flow.
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。It should be understood that the above general description and the following detailed description are only exemplary and explanatory, and do not limit the present disclosure.
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。The drawings herein are incorporated into and constitute a part of this specification, show embodiments consistent with this disclosure, and are used together with the specification to explain the principles of this disclosure. Obviously, the drawings in the following description are only some embodiments of the present disclosure. For those of ordinary skill in the art, without paying any creative work, other drawings can be obtained based on these drawings.
图1示出本示例性实施例中一种无人飞行器的固件升级方法的流程图;FIG. 1 shows a flowchart of a method for upgrading firmware of an unmanned aerial vehicle in this exemplary embodiment;
图2示出本示例性实施例中一种硬件标识符与Loader版本的示意图;2 shows a schematic diagram of a hardware identifier and a Loader version in this exemplary embodiment;
图3示出本示例性实施例中一种无人飞行器的固件升级方法的子流程图;FIG. 3 shows a sub-flow diagram of a method for upgrading the firmware of an unmanned aerial vehicle in this exemplary embodiment;
图4示出本示例性实施例中另一种无人飞行器的固件升级方法的流程图;FIG. 4 shows a flowchart of another method for upgrading the firmware of an unmanned aerial vehicle in this exemplary embodiment;
图5示出本示例性实施例中一种无人飞行器的固件升级装置的结构框图;FIG. 5 shows a structural block diagram of a firmware upgrading apparatus of an unmanned aerial vehicle in this exemplary embodiment;
图6示出本示例性实施例中一种无人飞行器的控制装置的结构框图;6 shows a structural block diagram of a control device of an unmanned aerial vehicle in this exemplary embodiment;
图7示出本示例性实施例中另一种无人飞行器的控制装置的结构框图;7 shows a structural block diagram of another unmanned aerial vehicle control device in this exemplary embodiment;
图8示出本示例性实施例中一种无人飞行器的结构框图;FIG. 8 shows a structural block diagram of an unmanned aerial vehicle in this exemplary embodiment;
图9示出本示例性实施例中一种用于实现上述方法的计算机可读存储介质。FIG. 9 shows a computer-readable storage medium for implementing the above method in this exemplary embodiment.
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。Example embodiments will now be described more fully with reference to the drawings. However, the example embodiments can be implemented in various forms, and should not be construed as being limited to the examples set forth herein; on the contrary, providing these embodiments makes the present disclosure more comprehensive and complete, and fully conveys the idea of the example embodiments For those skilled in the art. The described features, structures, or characteristics may be combined in one or more embodiments in any suitable manner.
本公开的示例性实施例首先提供了一种无人飞行器的固件升级方法,可以应用于无人飞行器上,使无人飞行器在联网或具备固件升级程序的情况下,独立地执行本示例性实施例的方法以进行固件升级;本示例性实施例也可以应用于与无人飞行器连接的计算机、平板电脑等其他电子设备上,通过执行本示例性实施例的方法以控制无人飞行器进行固件升级,其中电子设备与无人飞行器的连接可以包括TTL(Transistor Transistor Logic,并行传输接口)、USB(Universal Serial Bus,通用串行总线)、SATA(Serial Advanced Technology Attachment,串行高级技术附件)等有线连接方式,也可以包括Wifi(Wireless Fidelity,无线保真)、蓝牙等无线连接方式;本 示例性实施例还可以应用于固件厂商的服务器,通过远程连接无人飞行器,获取无人飞行器的相关信息,执行本示例性实施例的方法以实现远程控制的固件升级。Exemplary embodiments of the present disclosure first provide a method for firmware upgrade of an unmanned aerial vehicle, which can be applied to an unmanned aerial vehicle to enable the unmanned aerial vehicle to independently execute the exemplary implementation in the case of networking or having a firmware upgrade program The method of this example can be used to upgrade the firmware; this exemplary embodiment can also be applied to other electronic devices such as computers and tablets connected to the unmanned aerial vehicle, by performing the method of this exemplary embodiment to control the unmanned aerial vehicle to upgrade the firmware Among them, the connection between the electronic equipment and the UAV can include TTL (Transistor Transistor Logic, parallel transmission interface), USB (Universal Serial Bus), SATA (Serial Advanced Technology Attachment), and other wired The connection method may also include Wifi (Wireless Fidelity, wireless fidelity), Bluetooth and other wireless connection methods; this exemplary embodiment can also be applied to a server of a firmware manufacturer to obtain information about the unmanned aerial vehicle by remotely connecting the unmanned aerial vehicle , The method of the present exemplary embodiment is executed to realize remotely controlled firmware upgrade.
参考图1所示,该方法可以包括以下步骤S110~S130:Referring to FIG. 1, the method may include the following steps S110-S130:
步骤S110,获取无人飞行器中待升级模块的当前Loader版本。Step S110: Obtain the current Loader version of the module to be upgraded in the UAV.
其中,待升级模块是无人飞行器中需要进行固件升级的具体硬件模块,随着无人飞行器的精密化发展,其内部的硬件模块也呈现分工化的趋势,目前的无人飞行器通常包括多个硬件模块,例如旋翼控制模块、GPS(Global Positioning System,全球定位系统)定位模块、远程通信模块、图像采集模块等。本示例性实施例中,每个模块可以具有各自的固件,各模块的固件之间互相独立,可以单独的对其中某个模块的固件进行升级,当然也可以集成式地对多个模块的固件进行升级(相当于一次运行多个升级程序),因此上述待升级模块可以是无人飞行器中的一个或多个模块,本公开对此不做特别限定。Among them, the module to be upgraded is a specific hardware module that needs to be upgraded in the UAV. With the development of precision in UAVs, the internal hardware modules are also showing a trend of division of labor. The current UAVs usually include multiple Hardware modules, such as rotor control module, GPS (Global Positioning System) positioning module, remote communication module, image acquisition module, etc. In this exemplary embodiment, each module may have its own firmware. The firmware of each module is independent of each other. The firmware of one of the modules can be upgraded independently. Of course, the firmware of multiple modules can also be integrated. The upgrade is performed (equivalent to running multiple upgrade programs at a time), so the above-mentioned module to be upgraded may be one or more modules in an unmanned aerial vehicle, which is not specifically limited in this disclosure.
Loader为无人飞行器的操作系统加载软件程序时所用的装载器,本质上是一种加载程序。本示例性实施例中,无人飞行器内可以配置一个Loader,以加载全部模块的固件程序,也可以配置多个Loader,每个Loader对应于特定的一个或多个模块。Loader通常可以进行自身的更新或升级,具有不同的版本,因此可以获取待升级模块的当前Loader版本,通常表现为特定的版本标识,例如01.00.01.01、v101.00.02等形式。系统可以读取Loader的相关信息以获取当前版本,也可以扫描其代码的头部信息已确定其当前版本等。Loader is a loader used when loading software programs for the operating system of an unmanned aerial vehicle, which is essentially a loading program. In this exemplary embodiment, one loader can be configured in the unmanned aerial vehicle to load firmware programs of all modules, or multiple loader can be configured, each loader corresponds to a specific one or more modules. The Loader can usually update or upgrade itself, and has different versions. Therefore, the current Loader version of the module to be upgraded can be obtained, usually expressed as a specific version identifier, such as 01.00.01.01, v101.00.02 and other forms. The system can read the relevant information of Loader to obtain the current version, or it can scan the header information of its code to determine its current version, etc.
在一示例性实施例中,待升级模块可以是嵌入式模块,嵌入式模块通常内置有嵌入式处理器与存储器,嵌入式处理器可以是MCU(Microcontroller Unit,嵌入式微控制器)、MPU(Microprocessor Unit,嵌入式为处理器)、DPS(Digital Signal Processor,嵌入式信号处理器)等,通过调用存储器中存储的程序,例如Loader,以执行程序指令。嵌入式模块具有较强的独立性,其初始化与运行过程较多地依赖于固件,因此需要对其固件的升级过程进行控制,以实现有效地升级。In an exemplary embodiment, the module to be upgraded may be an embedded module. The embedded module usually has an embedded processor and a memory. The embedded processor may be an MCU (Microcontroller Unit, embedded microcontroller) or MPU (Microprocessor Unit, embedded processor), DPS (Digital Signal Processor, embedded signal processor), etc., by calling the program stored in the memory, such as Loader, to execute the program instructions. The embedded module has strong independence, and its initialization and operation process depend more on the firmware, so it needs to control the firmware upgrade process to achieve an effective upgrade.
在一示例性实施例中,步骤S110可以通过以下步骤实现:In an exemplary embodiment, step S110 may be implemented by the following steps:
获取待升级模块的当前硬件标识符,通过当前硬件标识符确定待升级模块的当前Loader版本。Obtain the current hardware identifier of the module to be upgraded, and determine the current Loader version of the module to be upgraded through the current hardware identifier.
参考图2所示,模块A的硬件标识符与Loader版本之间可以是一一对应的关系,例如硬件标识符“MODAC2018”对应于Loader版本“01.00.00.02”,硬件标识符“MODAU2019”对应于Loader版本“01.00.01.01”,则基于二者之间的对应关系,可以根据模块的当前硬件标识符确定其当前Loader版本。具体而言,可以预先从硬件厂商或Loader提供商处获取硬件标识符与Loader版本的对应关系表,从表中查找出待升级模块的当前硬件标识符所对应的当前Loader版本,也可以在联网的情况下,从互联网上搜索当前硬件标识符所对应的当前Loader版本。Referring to FIG. 2, there may be a one-to-one correspondence between the hardware identifier of module A and the Loader version. For example, the hardware identifier “MODAC2018” corresponds to the Loader version “01.00.00.02”, and the hardware identifier “MODAU2019” corresponds to Loader version "01.00.01.01", based on the correspondence between the two, the current Loader version of the module can be determined according to the current hardware identifier of the module. Specifically, the correspondence table between the hardware identifier and the Loader version can be obtained from the hardware manufacturer or the Loader provider in advance, and the current Loader version corresponding to the current hardware identifier of the module to be upgraded can be found from the table, or it can be accessed on the Internet. In the case of, search the current Loader version corresponding to the current hardware identifier from the Internet.
步骤S120,根据当前Loader版本确定待升级模块所需固件的目标版本。Step S120: Determine the target version of the firmware required by the module to be upgraded according to the current Loader version.
其中,Loader版本与固件版本之间也可以具有对应关系,该对应关系是指各版本的Loader分别与哪个版本的固件适配。Loader用于加载软件程序,不同版本的Loader所加载的程序可能不同,且加载方式也可能不同,也就是说,待升级模块当前使用哪个版本的Loader可以在一定程度上反映待升级模块所处的软件环境。待升级模块的驱动程序是一类重要的加载程序,如果Loader不能正确的加载驱动程序,将导致待升级模块无法正常启动。举例而言,在升级固件时,通常会升级内置的驱动程序,如果升级后驱动程序与Loader不适配,例如升级后的驱动程序包含了Loader所无法识别的代码,或者其代码的执行方式发生了变化,导致Loader无法执行,或者添加了新的预加载的代码,而Loader并不会对这部分代码进行预加载等情况,则驱动程序无法正常运行,待升级模块无法进行初始化,也无法正常工作。此外,Loader还可以加载一部分应用程序,例如在启动图像采集模块的驱动程序时,可以同时加载用于图像处理、视频处理的应用程序,以使图像采集模块进入拍摄待机状态,在升级固件时,可能改变原有的应用程序环境、应用程序版本、驱动程序与应用程序之间的关联等,导致应用程序无法正常加载,影响待升级模块的正常工作。因此,本示例性实施例中,需要确定待升级模块所需固件的目标版本,以避免出现类似上述的错误升级的情况。There may also be a correspondence between the Loader version and the firmware version, and the correspondence relationship refers to which version of the firmware the Loader of each version is adapted to. Loader is used to load software programs. The programs loaded by different versions of Loader may be different, and the loading method may also be different. That is to say, which version of Loader is currently used by the module to be upgraded can reflect the location of the module to be upgraded to a certain extent. Software Environment. The driver of the module to be upgraded is an important type of loader. If the Loader cannot load the driver correctly, the module to be upgraded will not start normally. For example, when upgrading the firmware, the built-in driver is usually upgraded. If the driver does not match the Loader after the upgrade, for example, the upgraded driver contains code that the Loader cannot recognize, or the way the code is executed occurs Changes, the Loader cannot be executed, or new pre-loaded code is added, and the Loader does not pre-load this part of the code, etc., the driver cannot run normally, the module to be upgraded cannot be initialized, and it is not normal jobs. In addition, Loader can also load some applications. For example, when the driver of the image acquisition module is started, the application programs for image processing and video processing can be simultaneously loaded to make the image acquisition module enter the shooting standby state. When upgrading the firmware, It may change the original application environment, application version, the association between the driver and the application, etc., causing the application to fail to load normally, affecting the normal work of the module to be upgraded. Therefore, in the present exemplary embodiment, it is necessary to determine the target version of the firmware required by the module to be upgraded to avoid the erroneous upgrade situation similar to that described above.
Loader提供商或固件厂商可以提供Loader版本与固件版本的对应信息,在升级固件时,可以访问厂商的服务器或网站以获取关于目标版本的信息,也可以通过推送的方式,远程服务器识别出待升级模块的当前Loader版本,为其推送所需固件的目标版本,还可以预先下载Loader版本与固件版本的对应信息文件并配置在本地,升级固件时可以读取该文件以确定目标版本等等。The Loader provider or firmware manufacturer can provide the corresponding information of the Loader version and the firmware version. When upgrading the firmware, you can visit the manufacturer's server or website to obtain information about the target version, or you can push to the remote server to identify the upgrade The current Loader version of the module is the target version of the required firmware, and the corresponding information file of the Loader version and the firmware version can be downloaded in advance and configured locally. This file can be read when the firmware is upgraded to determine the target version and so on.
在一示例性实施例中,根据待升级模块的当前Loader版本可能确定多个适配的固件版本,则可以将这些固件版本以可选的方式提供给用户,使用户从中选择一个目标版本,或者按照特定的规则自动的从中选择一个目标版本,例如可以选择其中最新的版本为目标版本、选择其中用户评价最高的版本为目标版本等。In an exemplary embodiment, a plurality of adapted firmware versions may be determined according to the current Loader version of the module to be upgraded, and these firmware versions may be provided to the user in an optional manner so that the user can select a target version from it, or According to specific rules, a target version is automatically selected, for example, the latest version may be selected as the target version, and the version with the highest user evaluation may be selected as the target version.
步骤S130,将待升级模块的固件升级到目标版本。Step S130: Upgrade the firmware of the module to be upgraded to the target version.
在确定目标版本后,可以获取目标版本的固件升级程序,例如可以从互联网上搜索并下载目标版本的固件升级程序,或者从预先提供的固件升级包中选择目标版本的固件升级程序等,运行该固件升级程序,将待升级模块的固件升级到目标版本。After determining the target version, you can obtain the firmware update program of the target version. For example, you can search and download the firmware update program of the target version from the Internet, or select the firmware upgrade program of the target version from the firmware upgrade package provided in advance, and run the The firmware upgrade program upgrades the firmware of the module to be upgraded to the target version.
基于上述说明,在本示例性实施例中,根据无人飞行器中待升级模块的当前Loader版本确定待升级模块所需固件的目标版本,以将待升级模块的固件升级到目标版本。一方面,在固件升级时,考虑了待升级模块的Loader与固件之间的适配性,使得升级后Loader可以正常加载固件程序,例如固件的驱动程序、关联的应用程序等,可以避免Loader与固件不适配而导致的待升级模块在固件升级后无法正常工作的情况,提高无人飞行器固件升级的安全性。另一方面,本示例性实施例可以根据待升级模块的当前Loader版本确定固件升级的目标版本,在厂商提供二者对应信息的情况下,可以由无人飞行器或与其连接的电子设备自动化执行本示例性实施例的方法,以确定目标版本并完成升级,无需用户对每个固件版本进行理解,从而降低了用户的学习成本,并简化了固件升级的方法流程。Based on the above description, in the present exemplary embodiment, the target version of the firmware required by the module to be upgraded is determined according to the current Loader version of the module to be upgraded in the UAV, so as to upgrade the firmware of the module to be upgraded to the target version. On the one hand, when the firmware is upgraded, the adaptability between the Loader of the module to be upgraded and the firmware is considered, so that the Loader can load the firmware program normally after the upgrade, such as the firmware driver, the associated application, etc., which can avoid the Loader and The situation that the module to be upgraded cannot work normally after the firmware upgrade due to the mismatch of the firmware improves the safety of the UAV firmware upgrade. On the other hand, this exemplary embodiment can determine the target version of the firmware upgrade according to the current Loader version of the module to be upgraded. In the case where the manufacturer provides the corresponding information of the two, the UAV or the electronic device connected to it can automatically execute this The method of the exemplary embodiment determines the target version and completes the upgrade without requiring the user to understand each firmware version, thereby reducing the user's learning cost and simplifying the firmware upgrade method flow.
在一示例性实施例中,待升级模块可能包括多级Loader,多级Loader可以分别用于在不同阶段加载特定的程序,例如第一级Loader先加载第一级程序,在第一级程序加载完成后,由第二级Loader加载第二级程序等, 每一级Loader所加载的程序可以是一个或多个。针对于这种情况,步骤S120可以通过以下步骤实现:In an exemplary embodiment, the module to be upgraded may include a multi-level loader. The multi-level loader can be used to load specific programs at different stages, for example, the first-level loader loads the first-level program first, and then loads the first-level program. After completion, the second-level Loader loads the second-level programs, etc., and there may be one or more programs loaded in each level of the Loader. In view of this situation, step S120 may be implemented by the following steps:
根据待升级模块当前的第一级Loader的版本确定待升级模块所需固件的目标版本。The target version of the firmware required by the module to be upgraded is determined according to the current version of the first-level Loader of the module to be upgraded.
其中,第一级Loader通常用于加载待升级模块的驱动程序,引导待升级模块进行初始化,对待升级模块的性能影响最大,因此可以建立第一级Loader版本与固件版本之间的对应关系。在升级固件时,根据第一级Loader的版本确定固件的目标版本,使得固件与第一级Loader适配,可以保证驱动程序的正常加载与待升级模块的正常初始化。Among them, the first level Loader is usually used to load the driver of the module to be upgraded, guide the module to be upgraded to initialize, and the performance of the module to be upgraded has the greatest impact, so the correspondence between the first level Loader version and the firmware version can be established. When upgrading the firmware, the target version of the firmware is determined according to the version of the first-level Loader, so that the firmware is adapted to the first-level Loader, which can ensure the normal loading of the driver and the normal initialization of the module to be upgraded.
在一示例性实施例中,步骤S120可以包括以下步骤:In an exemplary embodiment, step S120 may include the following steps:
获取映射关系表,映射关系表包括Loader版本与固件版本的映射关系;Obtain the mapping relationship table, which includes the mapping relationship between the Loader version and the firmware version;
在映射关系表中查找待升级模块的当前Loader版本所映射的固件版本,将查找到的固件版本作为目标版本。Find the firmware version mapped to the current Loader version of the module to be upgraded in the mapping relationship table, and use the found firmware version as the target version.
其中,映射关系是Loader版本与固件版本之间对应关系的具体表现形式,映射关系表可以是包含了大量映射关系的数据表,可以使Loader版本与固件版本之间形成行映射或列映射等形式的映射关系,也可以使每个Loader版本与多个不同模块的固件版本形成映射,例如某个Loader同时负责加载无人飞行器中的有线通信模块与无线通信模块的固件程序,则可以将该Loader的各版本分别与有线通信模块、无线通信模块的固件版本形成映射,在一个映射组中,可以根据该Loader的当前版本查找与其适配的有线通信模块的固件版本以及无线通信模块的固件版本。本公开对于映射关系表的具体形式不做限定。基于映射关系表,可以查找到待升级模块的当前Loader版本所映射的固件版本,将其作为固件升级的目标版本。Among them, the mapping relationship is a specific manifestation of the correspondence between the Loader version and the firmware version. The mapping relationship table can be a data table that contains a large number of mapping relationships, which can form a row mapping or a column mapping between the Loader version and the firmware version. The mapping relationship between each Loader version can also be mapped to the firmware version of multiple different modules. For example, a Loader is responsible for loading the firmware programs of the wired communication module and the wireless communication module in the UAV. Each version of the software is mapped to the firmware version of the wired communication module and the wireless communication module. In a mapping group, the firmware version of the wired communication module and the firmware version of the wireless communication module can be found according to the current version of the Loader. The disclosure does not limit the specific form of the mapping relationship table. Based on the mapping relationship table, the firmware version mapped to the current Loader version of the module to be upgraded can be found and used as the target version of the firmware upgrade.
在映射关系表中,Loader版本与固件版本之间的映射关系可以是“一对一”、“一对多”或“多对一”的映射。其中,“一对多”是指一个Loader版本映射到一个模块的多个固件版本;通常Loader的更新周期较长,一个版本的Loader可以持续使用较长时间,相对于固件频繁升级的情况,Loader的版本数量小于固件版本的数量,因此出现“一对多”的情况较多。In the mapping relationship table, the mapping relationship between the Loader version and the firmware version may be "one-to-one", "one-to-many", or "many-to-one" mapping. Among them, "one-to-many" refers to a Loader version mapped to multiple firmware versions of a module; usually the update cycle of the Loader is longer, a version of the Loader can continue to be used for a longer period of time, relative to the case of frequent firmware upgrades, Loader The number of versions is less than the number of firmware versions, so there are many cases of "one-to-many".
基于此,在一示例性实施例中,如果在映射关系表中查找到待升级模块的当前Loader版本映射多个固件版本,则将多个固件版本中最新的固件 版本确定为目标版本。换而言之,在当前Loader所能适配的固件中,选择最新版本的固件进行升级。其中,最新的固件版本可以是固件厂商最近发布的固件版本,也可以是版本号最大的固件版本,通常功能最为全面、支持最新的操作系统、错误最少、代码最为优化等等,因此以最新的固件版本作为目标版本,是在Loader适配的范围内最优的选择。Based on this, in an exemplary embodiment, if it is found in the mapping relationship table that the current Loader version of the module to be upgraded maps multiple firmware versions, the latest firmware version among the multiple firmware versions is determined as the target version. In other words, among the firmware that the current Loader can adapt, select the latest version of the firmware to upgrade. Among them, the latest firmware version can be the latest firmware version released by the firmware manufacturer, or the firmware version with the largest version number, usually with the most comprehensive functions, supporting the latest operating system, the fewest errors, the most optimized code, etc. As the target version, the firmware version is the best choice within the scope of Loader adaptation.
在一示例性实施例中,参考图3所示,可以通过以下步骤构建映射关系表:In an exemplary embodiment, referring to FIG. 3, a mapping table may be constructed through the following steps:
步骤S302,获取多个版本的Loader与多个版本的固件;Step S302, acquiring multiple versions of Loader and multiple versions of firmware;
步骤S304,提取各版本Loader中的加载程序列表与各版本固件中的启动程序列表,并分别将各版本Loader的加载程序列表与各版本固件的启动程序列表进行匹配;Step S304: extract the loader program list in each version of Loader and the startup program list in each version of firmware, and match the loader program list of each version of Loader with the startup program list of each version of firmware;
步骤S306,在匹配成功的加载程序列表所对应的Loader版本与启动程序列表所对应的固件版本之间建立映射关系,以构建映射关系表。In step S306, a mapping relationship is established between the Loader version corresponding to the successfully matched loading program list and the firmware version corresponding to the starting program list, so as to construct a mapping relationship table.
其中,Loader中的加载程序列表是指各版本的Loader加载哪些程序;固件中的启动程序列表是指各版本的固件需要初始化启动哪些程序。加载程序列表与启动程序列表可以从厂商提供的相关信息中获取,也可以从Loader或固件的代码指令中提取。固件中的启动程序列表通常包含驱动程序以及必要的应用程序,如果这些程序不是全部的属于Loader加载程序,则Loader不会全部加载固件中的启动程序,将导致固件无法初始化,即Loader与固件不适配的情况。Among them, the loader program list in the Loader refers to which programs are loaded by each version of the Loader; the startup program list in the firmware refers to which programs need to be initialized and started by each version of the firmware. The loader program list and boot program list can be obtained from the relevant information provided by the manufacturer, or can be extracted from the code instructions of the loader or firmware. The startup program list in the firmware usually contains the driver and necessary applications. If these programs are not all part of the Loader loader, the Loader will not load all the startup programs in the firmware, which will cause the firmware to fail to initialize, that is, the Loader and the firmware will not The situation of adaptation.
基于此,本示例性实施例中,可以根据Loader中的加载程序列表与固件中的启动程序列表确定二者是否适配,具体而言,加载程序列表中的程序需要包含启动程序列表中的程序,即启动程序列表是加载程序列表的一个子集,步骤S304中的匹配即指这种情况,这样Loader可以保证将固件的启动程序全部加载,可以在二者的版本之间确定映射关系。通过检测大量版本Loader的加载程序列表与大量固件的启动程序列表的匹配情况,可以筛选出匹配的Loader版本-固件版本组合,建立映射关系,从而得到映射关系表。Based on this, in this exemplary embodiment, it can be determined whether the two are suitable according to the loader program list in the Loader and the startup program list in the firmware. Specifically, the programs in the loader program list need to include the programs in the startup program list That is, the startup program list is a subset of the loader program list, and the match in step S304 refers to this case, so that the Loader can ensure that the firmware startup programs are all loaded, and the mapping relationship can be determined between the versions of the two. By detecting the matching of a large number of versions of Loader's loader program list and a large number of firmware's startup program lists, the matching Loader version-firmware version combination can be screened out to establish a mapping relationship, thereby obtaining a mapping relationship table.
图4示出了本示例性实施例中另一种固件升级方法的流程。参考图4所示,可以在无人飞行器或其连接的外部电子设备、远程服务器上启动一 升级进程,由升级进程执行以下步骤:FIG. 4 shows a flow of another method of firmware upgrade in this exemplary embodiment. Referring to FIG. 4, an upgrade process can be started on the UAV or its connected external electronic device or remote server, and the upgrade process performs the following steps:
步骤S401,获取映射关系表。其中,升级进程可以在固件厂商的网站上下载得到映射关系表,也可以基于多版本的Loader与固件而自行匹配映射关系,并构建映射关系表。Step S401: Obtain a mapping relationship table. Among them, the upgrade process can be downloaded on the firmware manufacturer's website to obtain the mapping relationship table, or it can match the mapping relationship based on the multi-version Loader and the firmware, and construct the mapping relationship table.
步骤S402,升级进程可以与待升级模块之间建立数据交互,查询待升级模块的当前Loader版本。Step S402, the upgrade process may establish data interaction with the module to be upgraded, and query the current Loader version of the module to be upgraded.
步骤S403,从待升级模块处接收其返回的当前Loader版本。Step S403: Receive the current Loader version it returns from the module to be upgraded.
步骤S404,根据映射关系表,确定待升级模块所需固件的目标版本。Step S404: Determine the target version of the firmware required by the module to be upgraded according to the mapping relationship table.
步骤S405,运行升级程序,将待升级模块的固件升级到目标版本。Step S405: Run an upgrade program to upgrade the firmware of the module to be upgraded to the target version.
可见,本示例性实施例通过升级进程完成了固件升级的全部过程,实现了完全的自动化升级,进一步提高了固件升级的安全性与便捷性。It can be seen that the present exemplary embodiment completes the entire firmware upgrade process through the upgrade process, implements a fully automated upgrade, and further improves the safety and convenience of firmware upgrade.
本公开的示例性实施例还提供了一种无人飞行器的固件升级装置,该装置可以应用于无人飞行器上,也可以应用于与无人飞行器连接的电子设备或者与无人飞行器远程连接的服务器上,以控制无人飞行器进行固件升级。参考图5所示,该装置500可以包括:Loader版本获取单元510,用于获取待升级模块的当前Loader版本;固件版本确定单元520,用于根据待升级模块的当前Loader版本确定待升级模块所需固件的目标版本;目标版本升级单元530,用于将待升级模块的固件升级到目标版本。Exemplary embodiments of the present disclosure also provide a firmware upgrade device for an unmanned aerial vehicle, which can be applied to an unmanned aerial vehicle, an electronic device connected to the unmanned aerial vehicle, or a remotely connected to an unmanned aerial vehicle On the server, to control the UAV to upgrade the firmware. Referring to FIG. 5, the
在一示例性实施例中,待升级模块包括多级Loader;固件版本确定单元520可以用于根据待升级模块当前的第一级Loader的版本确定待升级模块所需固件的目标版本。In an exemplary embodiment, the module to be upgraded includes a multi-level Loader; the firmware
在一示例性实施例中,固件版本确定单元520可以用于获取映射关系表,该映射关系表包括Loader版本与固件版本的映射关系,并在映射关系表中查找待升级模块的当前Loader版本所映射的固件版本,将查找到的固件版本作为目标版本。In an exemplary embodiment, the firmware
在一示例性实施例中,固件版本确定单元520还可以用于如果在映射关系表中查找到待升级模块的当前Loader版本映射多个固件版本,则将多个固件版本中最新的固件版本确定为目标版本。In an exemplary embodiment, the firmware
在一示例性实施例中,固件升级装置还可以包括:映射表构建单元540,用于分别提取多个版本的Loader中的加载程序列表与多个版本的固件中 的启动程序列表,并分别将各版本Loader的加载程序列表与各版本固件的启动程序列表进行匹配,在匹配成功的加载程序列表所对应的Loader版本与启动程序列表所对应的固件版本之间建立映射关系,以构建映射关系表。In an exemplary embodiment, the firmware upgrading apparatus may further include: a mapping
在一示例性实施例中,Loader版本获取单元510可以用于获取待升级模块的当前硬件标识符,并通过当前硬件标识符确定待升级模块的当前Loader版本。In an exemplary embodiment, the Loader
在一示例性实施例中,待升级模块可以是嵌入式模块。In an exemplary embodiment, the module to be upgraded may be an embedded module.
上述装置中各单元的具体细节已经在对应的方法部分实施例中进行了详细的说明,因此不再赘述。The specific details of each unit in the above device have been described in detail in the corresponding method embodiment, and therefore will not be repeated.
本公开的示例性实施例还提供了一种能够实现上述方法的无人飞行器。所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。Exemplary embodiments of the present disclosure also provide an unmanned aerial vehicle capable of implementing the above method. Those skilled in the art can understand that various aspects of the present disclosure can be implemented as a system, method, or program product. Therefore, various aspects of the present disclosure may be specifically implemented in the form of: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software implementations, which may be collectively referred to herein as "Circuit", "Module" or "System".
下面参照图6来描述根据本公开的这种示例性实施例的无人飞行器的控制装置。图6显示的控制装置600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。The control device of the unmanned aerial vehicle according to this exemplary embodiment of the present disclosure will be described below with reference to FIG. 6. The
如图6所示,无人飞行器的控制装置600可以包括处理器610与存储器620,存储器620用于存储处理器610的可执行指令,处理器610配置为经由执行该可执行指令来执行本公开各种示例性实施例的方法。可执行指令通常为程序代码,程序代码可被处理器610执行,例如处理器610通过执行程序代码而执行图1所示的方法步骤:As shown in FIG. 6, the unmanned aerial
步骤S110,获取无人飞行器中待升级模块的当前Loader版本;Step S110: Obtain the current Loader version of the module to be upgraded in the UAV;
步骤S120,根据当前Loader版本确定待升级模块所需固件的目标版本;Step S120: Determine the target version of the firmware required by the module to be upgraded according to the current Loader version;
步骤S130,将待升级模块的固件升级到目标版本。Step S130: Upgrade the firmware of the module to be upgraded to the target version.
在一示例性实施例中,待升级模块包括多级Loader;处理器610还可以执行以下方法步骤:In an exemplary embodiment, the module to be upgraded includes a multi-level Loader; the
根据待升级模块当前的第一级Loader的版本确定待升级模块所需固 件的目标版本。The target version of the firmware required by the module to be upgraded is determined according to the current first-level Loader version of the module to be upgraded.
在一示例性实施例中,处理器610还可以执行以下方法步骤:In an exemplary embodiment, the
获取映射关系表,映射关系表包括Loader版本与固件版本的映射关系;Obtain the mapping relationship table, which includes the mapping relationship between the Loader version and the firmware version;
在映射关系表中查找待升级模块的当前Loader版本所映射的固件版本,将查找到的固件版本作为目标版本。Find the firmware version mapped to the current Loader version of the module to be upgraded in the mapping relationship table, and use the found firmware version as the target version.
在一示例性实施例中,处理器610还可以执行以下方法步骤:In an exemplary embodiment, the
如果在映射关系表中查找到待升级模块的当前Loader版本映射多个固件版本,则将多个固件版本中最新的固件版本确定为目标版本。If it is found in the mapping relationship table that the current Loader version of the module to be upgraded maps multiple firmware versions, the latest firmware version among the multiple firmware versions is determined as the target version.
在一示例性实施例中,处理器610还可以执行以下方法步骤:In an exemplary embodiment, the
获取多个版本的Loader与多个版本的固件;Obtain multiple versions of Loader and multiple versions of firmware;
提取各版本Loader中的加载程序列表与各版本固件中的启动程序列表,并分别将各版本Loader的加载程序列表与各版本固件的启动程序列表进行匹配;Extract the loader list in each version of Loader and the startup program list in each version of firmware, and match the loader list of each version of Loader with the startup program list of each version of firmware;
在匹配成功的加载程序列表所对应的Loader版本与启动程序列表所对应的固件版本之间建立映射关系,以构建映射关系表。A mapping relationship is established between the Loader version corresponding to the successfully matched loader list and the firmware version corresponding to the startup program list, so as to construct a mapping relationship table.
在一示例性实施例中,处理器610还可以执行以下方法步骤:In an exemplary embodiment, the
获取待升级模块的当前硬件标识符,通过当前硬件标识符确定待升级模块的当前Loader版本。Obtain the current hardware identifier of the module to be upgraded, and determine the current Loader version of the module to be upgraded through the current hardware identifier.
在一示例性实施例中,待升级模块可以是嵌入式模块。In an exemplary embodiment, the module to be upgraded may be an embedded module.
在一示例性实施例中,如图7所示,无人飞行器的控制装置700还可以以通用计算设备的形式表现。其中,处理器表现为至少一个处理单元710,存储器表现为至少一个存储单元720,此外,控制装置700的组件还可以包括但不限于:连接不同系统组件(包括存储单元720和处理单元710)的总线730、I/O(输入/输出)接口740、网络适配器750等。In an exemplary embodiment, as shown in FIG. 7, the
其中,存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)721和/或高速缓存存储单元722,还可以进一步包括只读存储单元(ROM)723。The
存储单元720还可以包括具有一组(至少一个)程序模块725的程序/实用工具724,这样的程序模块725包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个 或某种组合中可能包括网络环境的实现。The
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。The
控制装置700也可以与一个或多个外部设备760(例如计算机、平板电脑、指向设备等)通信,还可与一个或者多个使得用户能与该控制装置700交互的设备通信,和/或与使得该控制装置700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过I/O接口740进行。并且,控制装置700还可以通过网络适配器750与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器750通过总线730与控制装置700的其它模块通信。应当明白,尽管图中未示出,可以结合控制装置700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。The
本公开的示例性实施例还提供了一种无人飞行器,参考图8所示,该无人飞行器800可以包括机身810与控制装置820,其中,控制装置820设于机身810内,且控制装置820可以是上述任意一种实施例中的控制装置,例如可以是图6中的控制装置600或图7中的控制装置700等。控制装置820可用于执行上述任意一种实施例中的无人飞行器的固件升级方法,例如控制装置820可以执行图1、图3或图4中所示的方法步骤。Exemplary embodiments of the present disclosure also provide an unmanned aerial vehicle. Referring to FIG. 8, the unmanned
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施例的方法。Through the description of the above embodiments, those skilled in the art can easily understand that the example embodiments described here can be implemented by software, or can be implemented by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, U disk, mobile hard disk, etc.) or on a network , Including several instructions to cause a computing device (which may be a personal computer, server, terminal device, or network device, etc.) to perform the method according to an exemplary embodiment of the present disclosure.
本公开的示例性实施例还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中, 本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。Exemplary embodiments of the present disclosure also provide a computer-readable storage medium having stored thereon a program product capable of implementing the above method of this specification. In some possible implementation manners, various aspects of the present disclosure may also be implemented in the form of a program product, which includes program code, and when the program product runs on the terminal device, the program code is used to cause the terminal device to execute the The steps according to various exemplary embodiments of the present disclosure described in the "Exemplary Method" section.
参考图9所示,描述了根据本公开的示例性实施例的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。Referring to FIG. 9, a
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。The program product may use any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any combination of the above. More specific examples of readable storage media (non-exhaustive list) include: electrical connections with one or more wires, portable disks, hard disks, random access memory (RAM), read only memory (ROM), erasable Programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the foregoing.
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。The computer-readable signal medium may include a data signal that is transmitted in baseband or as part of a carrier wave, in which readable program code is carried. This propagated data signal can take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing. The readable signal medium may also be any readable medium other than a readable storage medium, and the readable medium may send, propagate, or transmit a program for use by or in combination with an instruction execution system, apparatus, or device.
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。The program code contained on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地 在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。Program code for performing the operations of the present disclosure can be written in any combination of one or more programming languages. The programming language includes object-oriented programming languages such as Java, C++, etc., as well as conventional procedural programming Language-such as "C" language or similar programming language. The program code may be executed entirely on the user's computing device, partly on the user's device, as an independent software package, partly on the user's computing device and partly on a remote computing device, or entirely on the remote computing device or server On the implementation. In situations involving remote computing devices, the remote computing device may be connected to the user computing device through any kind of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (eg, using Internet service provision Business to connect via the Internet).
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。In addition, the above-mentioned drawings are only schematic illustrations of processes included in the method according to the exemplary embodiment of the present disclosure, and are not intended to limit the purpose. It is easy to understand that the processes shown in the above drawings do not indicate or limit the chronological order of these processes. In addition, it is also easy to understand that these processes may be performed synchronously or asynchronously in multiple modules, for example.
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施例,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。It should be noted that although several modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to exemplary embodiments of the present disclosure, the features and functions of the two or more modules or units described above may be embodied in one module or unit. Conversely, the features and functions of a module or unit described above can be further divided into multiple modules or units to be embodied.
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。After considering the description and practicing the invention disclosed herein, those skilled in the art will easily think of other embodiments of the present disclosure. This application is intended to cover any variations, uses, or adaptive changes of the present disclosure that follow the general principles of the present disclosure and include common general knowledge or customary technical means in the technical field not disclosed in the present disclosure . The description and examples are to be considered exemplary only, and the true scope and spirit of this disclosure are pointed out by the claims.
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。It should be understood that the present disclosure is not limited to the precise structure that has been described above and shown in the drawings, and various modifications and changes can be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.
Claims (17)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2018/121312 WO2020118719A1 (en) | 2018-12-14 | 2018-12-14 | Firmware upgrading method, firmware upgrading device and control device of unmanned aerial vehicle, unmanned aerial vehicle and medium |
| CN201880069182.4A CN111566617A (en) | 2018-12-14 | 2018-12-14 | Firmware upgrading method and device for unmanned aerial vehicle, control device, unmanned aerial vehicle and medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2018/121312 WO2020118719A1 (en) | 2018-12-14 | 2018-12-14 | Firmware upgrading method, firmware upgrading device and control device of unmanned aerial vehicle, unmanned aerial vehicle and medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020118719A1 true WO2020118719A1 (en) | 2020-06-18 |
Family
ID=71075297
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2018/121312 Ceased WO2020118719A1 (en) | 2018-12-14 | 2018-12-14 | Firmware upgrading method, firmware upgrading device and control device of unmanned aerial vehicle, unmanned aerial vehicle and medium |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN111566617A (en) |
| WO (1) | WO2020118719A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113553082A (en) * | 2021-07-29 | 2021-10-26 | 百度在线网络技术(北京)有限公司 | Method for upgrading firmware and method and device for recovering firmware |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113821434A (en) * | 2021-09-09 | 2021-12-21 | 摩拜(北京)信息技术有限公司 | Firmware upgrade test method and device, electronic equipment and readable storage medium |
| CN113805923A (en) * | 2021-09-27 | 2021-12-17 | 一飞智控(天津)科技有限公司 | Method, system and medium for upgrading control components of formation aircrafts, formation aircrafts and application |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106055373A (en) * | 2016-07-04 | 2016-10-26 | 苏州光之翼智能科技有限公司 | Automatic batch upgrading device and method for unmanned aerial vehicle firmware |
| CN106657233A (en) * | 2016-09-29 | 2017-05-10 | Tcl商用信息科技(惠州)股份有限公司 | Method and system for upgrading display firmware |
| CN107608695A (en) * | 2017-09-21 | 2018-01-19 | 曙光信息产业(北京)有限公司 | Hard disk firmware upgrade method, device and server |
| WO2018058564A1 (en) * | 2016-09-30 | 2018-04-05 | 深圳市大疆创新科技有限公司 | Upgrade method, upgrade apparatus, upgrade device and upgrade system |
| CN107888632A (en) * | 2016-09-29 | 2018-04-06 | 上海华测导航技术股份有限公司 | A kind of network automatic on-line upgrading GNSS firmware processing methods |
| CN108958774A (en) * | 2018-07-13 | 2018-12-07 | 深圳市道通智能航空技术有限公司 | Module updating method and module to be upgraded in UAV system |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101778376A (en) * | 2009-12-31 | 2010-07-14 | 中兴通讯股份有限公司 | Method and device for realizing wireless firmware update |
| CN106789334A (en) * | 2017-01-13 | 2017-05-31 | 狼天科技(深圳)有限公司 | A kind of method and apparatus of firmware upgrade |
-
2018
- 2018-12-14 WO PCT/CN2018/121312 patent/WO2020118719A1/en not_active Ceased
- 2018-12-14 CN CN201880069182.4A patent/CN111566617A/en active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106055373A (en) * | 2016-07-04 | 2016-10-26 | 苏州光之翼智能科技有限公司 | Automatic batch upgrading device and method for unmanned aerial vehicle firmware |
| CN106657233A (en) * | 2016-09-29 | 2017-05-10 | Tcl商用信息科技(惠州)股份有限公司 | Method and system for upgrading display firmware |
| CN107888632A (en) * | 2016-09-29 | 2018-04-06 | 上海华测导航技术股份有限公司 | A kind of network automatic on-line upgrading GNSS firmware processing methods |
| WO2018058564A1 (en) * | 2016-09-30 | 2018-04-05 | 深圳市大疆创新科技有限公司 | Upgrade method, upgrade apparatus, upgrade device and upgrade system |
| CN107608695A (en) * | 2017-09-21 | 2018-01-19 | 曙光信息产业(北京)有限公司 | Hard disk firmware upgrade method, device and server |
| CN108958774A (en) * | 2018-07-13 | 2018-12-07 | 深圳市道通智能航空技术有限公司 | Module updating method and module to be upgraded in UAV system |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113553082A (en) * | 2021-07-29 | 2021-10-26 | 百度在线网络技术(北京)有限公司 | Method for upgrading firmware and method and device for recovering firmware |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111566617A (en) | 2020-08-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP4049130B1 (en) | Updating a metadata structure for a firmware update | |
| US9507604B2 (en) | Boot method and boot system | |
| US20110010700A1 (en) | Virtualization of configuration settings | |
| JP6861886B2 (en) | Systems and methods for customized operating system conversion | |
| CN109426613B (en) | Method for retrieving debugging data in UEFI and computer system thereof | |
| US12288052B2 (en) | Method for creating private image in public cloud and related device | |
| US20070061818A1 (en) | Detection of devices during operating system setup | |
| US11435985B2 (en) | Electronic device and operation method thereof | |
| US10521216B2 (en) | Unified extensible firmware interface updates | |
| WO2020118719A1 (en) | Firmware upgrading method, firmware upgrading device and control device of unmanned aerial vehicle, unmanned aerial vehicle and medium | |
| US11175860B2 (en) | Virtual memories to load operating systems | |
| CN110119280A (en) | The method and device of more firmware upgrades | |
| US20150186128A1 (en) | Preventing application downgrade in an application store | |
| EP3614258B1 (en) | Retrieving updated firmware code | |
| US11762593B2 (en) | System and method for updating firmware of non-volatile storage devices | |
| CN111082991A (en) | Automatic adaptation method of set top box WiFi channel, server and storage medium | |
| US12056500B2 (en) | Apparatus for driving external operating system and method therefor | |
| US7099967B2 (en) | System and method for storing an image file in a computer system | |
| US20150212866A1 (en) | Management system for service of multiple operating environments, and methods thereof | |
| WO2023060893A1 (en) | Storage space management method and apparatus, and device and storage medium | |
| KR100757229B1 (en) | Apparatus and Method for Diagnosing OS Resource Supporting Development of USB Device Driver on Linux System | |
| CN112988192A (en) | Version updating method and device, electronic equipment and storage medium | |
| CN109522174B (en) | Method, device, terminal and storage medium for controlling adb enabling | |
| CN110377476B (en) | Terminal testing method, terminal and readable storage medium | |
| KR102612758B1 (en) | Computer Systems and Method for Automatic Installation of Operating Systems at Remote Place |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18942882 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 18942882 Country of ref document: EP Kind code of ref document: A1 |