GNSS Data Exchange Method and System Based on Homogeneous Multi-Core and Multi-Operating Systems

By using a multi-channel circular queue in a homogeneous multi-core, multi-operating system to achieve GNSS data exchange, the problem of poor data transmission performance of the built-in GNSS module is solved, and the flexibility and performance of data transmission between multiple cores are improved.

CN114035204BActive Publication Date: 2025-08-01GUANGZHOU GEOELECTRON
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111237156.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-22
Publication Date
2025-08-01
Estimated Expiration
2041-10-22

AI Technical Summary

Technical Problem

The existing GNSS modules built into the CPU cannot meet the needs of large-scale data exchange, and the data transmission performance is poor.

Method used

A GNSS data exchange method based on homogeneous multi-core and multi-operating system is adopted. The first operating system writes GNSS data to a multi-channel circular queue in the first memory space, enabling the second operating system to read data from the multi-channel circular queue and vice versa, thus realizing cross-core and cross-operating system data interaction.

Benefits of technology

It improves the flexibility of data transmission between multiple cores and the data transmission performance between the built-in GNSS module and the processor.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114035204B_ABST
    Figure CN114035204B_ABST
Patent Text Reader

Abstract

An embodiment of the present application discloses a GNSS data exchange method and system based on a homogeneous multi-core multi-operating system, which is used to improve the data transmission performance between a built-in GNSS module and a processor. The GNSS data exchange system includes a homogeneous multi-core processor and a GNSS module. The GNSS module is integrated in the homogeneous multi-core processor. The first core of the homogeneous multi-core processor runs a first operating system that supports the GNSS module, and the second core of the homogeneous multi-core processor runs a second operating system that supports application programs. The method of the embodiment of the present application includes: writing first GNSS data to a multi-channel circular queue in a first memory space through the first operating system, so that the second operating system reads the first GNSS data from the multi-channel circular queue; and / or writing second GNSS data to the multi-channel circular queue in the first memory space through the second operating system, so that the first operating system reads the second GNSS data from the multi-channel circular queue.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of electronic technologies, and in particular, to a GNSS data exchange method and system based on a homogeneous multi-core and multi-operating system. Background Art

[0002] A Global Navigation Satellite System (GNSS) module is a module with relatively complex functions and compositions. With the progress of hardware technologies, some GNSS modules can already be integrated into a CPU. In this case, the GNSS module and the CPU often perform data communication through methods such as memory sharing. However, currently, the GNSS module built into the CPU cannot meet the requirements of a large amount of data exchange, and the data transmission performance is poor. Summary of the Invention

[0003] Embodiments of this application provide a GNSS data exchange method and system based on a homogeneous multi-core and multi-operating system, which are used to achieve the data interaction function of the built-in GNSS module across cores and operating systems, improve the flexibility of data transmission between multiple cores, and improve the data transmission performance between the built-in GNSS module and the processor.

[0004] In a first aspect of an embodiment of this application, a GNSS data exchange method based on a homogeneous multi-core and multi-operating system is provided. The method is applied to a GNSS data exchange system based on a homogeneous multi-core and multi-operating system. The GNSS data exchange system includes a homogeneous multi-core processor and a GNSS module. The GNSS module is integrated in the homogeneous multi-core processor. A first core of the homogeneous multi-core processor runs a first operating system that supports the GNSS module, and a second core of the homogeneous multi-core processor runs a second operating system that supports application programs. A first memory space is shared between the first operating system and the second operating system. The method includes:

[0005] Writing first GNSS data to a multi-channel circular queue in the first memory space through the first operating system, so that the second operating system reads the first GNSS data from the multi-channel circular queue; and / or,

[0006] Writing second GNSS data to the multi-channel circular queue in the first memory space through the second operating system, so that the first operating system reads the second GNSS data from the multi-channel circular queue.

[0007] Optionally, after writing the first GNSS data to the multi-channel circular queue in the first memory space through the first operating system, the method further includes:

[0008] Read the first GNSS data from the multi-channel circular queue in the first memory space through the second operating system, where the first GNSS data includes at least one of observation data and reference data;

[0009] Calculate the differential data by performing calculations on the first GNSS data through the second operating system;

[0010] The writing of the second GNSS data to the multi-channel circular queue in the first memory space through the second operating system, so that the first operating system reads the second GNSS data from the multi-channel circular queue, includes:

[0011] Write the differential data to the multi-channel circular queue in the first memory space through the second operating system;

[0012] Read the differential data from the multi-channel circular queue in the first memory space through the first operating system.

[0013] Optionally, the multi-channel circular queue includes N first circular queues and N second circular queues, where N is a positive integer;

[0014] Among them, the first circular queue is a circular queue into which the first operating system writes the first GNSS data and from which the second operating system reads the first GNSS data; the second circular queue is a circular queue into which the second operating system writes the second GNSS data and from which the first operating system reads the second GNSS data.

[0015] Optionally, the multi-channel circular queue is divided into N groups of circular queues, each group of circular queues includes one of the first circular queues and one of the second circular queues, and the N groups of circular queues correspond one-to-one to N data transmission channels;

[0016] The writing of the first GNSS data to the multi-channel circular queue in the first memory space through the first operating system includes:

[0017] Write the first GNSS data to the first circular queue in the first group of circular queues through the first operating system using the first data transmission channel;

[0018] When it is detected that the first GNSS sub-data cannot be written to the first circular queue in the first group of circular queues through the first data transmission channel, write the first GNSS sub-data to the first circular queue in the second group of circular queues through the first operating system using the second data transmission channel;

[0019] Among them, the first group of circular queues corresponds to the first data transmission channel, the second group of circular queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.

[0020] Optionally, the first GNSS data includes at least one of observation data, standard data, and differential data. Each group of circular queues is used to write and / or read different types of first GNSS data by the first operating system.

[0021] Optionally, after writing the second GNSS data to the multi-channel circular queue in the first memory space by the second operating system, the method further includes:

[0022] Reading the second GNSS data from the multi-channel circular queue in the first memory space by the first operating system, where the second GNSS data includes differential data;

[0023] Performing positioning and solution calculation on the second GNSS data by the first operating system to obtain real-time kinematic RTK data.

[0024] Optionally, the second operating system reads the first GNSS data from the multi-channel circular queue, including:

[0025] The second operating system receives a serial port operation instruction sent by an application program through a virtual serial port driver, where the virtual serial port driver is used to simulate the physical serial port of an external GNSS module, and the external GNSS module is a GNSS module disposed outside the homogeneous multi-core processor and performing data transmission with the homogeneous multi-core processor through the physical serial port;

[0026] The second operating system reads the first GNSS data from the multi-channel circular queue through the virtual serial port driver and sends the first GNSS data to the application program.

[0027] In a second aspect of the embodiments of the present application, a GNSS data exchange system based on a homogeneous multi-core and multi-operating system is provided. The GNSS data exchange system includes a homogeneous multi-core processor and a GNSS module. The GNSS module is integrated in the homogeneous multi-core processor. The first core of the homogeneous multi-core processor runs a first operating system that supports the GNSS module, and the second core of the homogeneous multi-core processor runs a second operating system that supports application programs. A first memory space is shared between the first operating system and the second operating system. The GNSS data exchange system includes: a processing module, configured to write first GNSS data into a multi-channel circular queue in the first memory space through the first operating system, so that the second operating system reads the first GNSS data from the multi-channel circular queue; and / or,

[0028] The processing module is further configured to write second GNSS data into the multi-channel circular queue in the first memory space through the second operating system, so that the first operating system reads the second GNSS data from the multi-channel circular queue.

[0029] Optionally, in some embodiments of the present application,

[0030] The processing module is further configured to read out first GNSS data from the multi-channel circular queue in the first memory space through the second operating system, where the first GNSS data includes at least one of observation data and reference data;

[0031] The processing module is further configured to calculate the first GNSS data through the second operating system to obtain differential data;

[0032] Specifically, the processing module is configured to write the differential data into the multi-channel circular queue in the first memory space through the second operating system;

[0033] Specifically, the processing module is configured to read out the differential data from the multi-channel circular queue in the first memory space through the first operating system.

[0034] Optionally, in some embodiments of the present application,

[0035] The multi-channel circular queue includes N first circular queues and N second circular queues, where N is a positive integer;

[0036] Among them, the first circular queue is a circular queue into which the first operating system writes the first GNSS data and from which the second operating system reads the first GNSS data; the second circular queue is a circular queue into which the second operating system writes the second GNSS data and from which the first operating system reads the second GNSS data.

[0037] Optionally, in some embodiments of the present application,

[0038] The multi-channel circular queue is divided into N groups of circular queues, each group of circular queues includes a first circular queue and a second circular queue, and the N groups of circular queues correspond one-to-one to N data transmission channels;

[0039] The processing module is further configured to write the first GNSS data into the first circular queue in the first group of circular queues through the first operating system by using the first data transmission channel;

[0040] The processing module is further configured to, when it is detected that the first GNSS sub-data cannot be written into the first circular queue in the first group of circular queues through the first data transmission channel, write the first GNSS sub-data into the first circular queue in the second group of circular queues through the first operating system by using the second data transmission channel;

[0041] Wherein, the first group of circular queues corresponds to the first data transmission channel, the second group of circular queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.

[0042] Optionally, in some embodiments of the present application,

[0043] The first GNSS data includes at least one of: observation data, standard data, and differential data, and each group of circular queues is used to write and / or read different types of first GNSS data by the first operating system.

[0044] Optionally, in some embodiments of the present application,

[0045] The processing module is further configured to read the second GNSS data from the multi-channel circular queue in the first memory space through the first operating system, and the second GNSS data includes differential data;

[0046] The processing module is further configured to perform positioning and calculation on the second GNSS data through the first operating system to obtain real-time kinematic RTK data.

[0047] Optionally, in some embodiments of the present application,

[0048] The transceiver module is configured to receive the serial port operation instruction sent by the application program through the virtual serial port driver by the second operating system, and the virtual serial port driver is used to simulate the physical serial port of the external GNSS module, and the external GNSS module is a GNSS module arranged outside the homogeneous multi-core processor and performing data transmission with the homogeneous multi-core processor through the physical serial port;

[0049] The processing module is specifically configured to read the first GNSS data from the multi-channel circular queue through the virtual serial port driver by the second operating system and send the first GNSS data to the application program.

[0050] In the third aspect of the embodiments of the present application, an electronic device is provided, which may include:

[0051] A memory storing executable program code;

[0052] And a processor coupled to the memory;

[0053] The processor calls the executable program code stored in the memory, and when the executable program code is executed by the processor, the processor implements the method described in the first aspect of the embodiments of the present application.

[0054] In another aspect of the embodiments of the present application, a computer-readable storage medium is provided, on which executable program code is stored. When the executable program code is executed by a processor, the method described in the first aspect of the embodiments of the present application is implemented.

[0055] In another aspect of the embodiments of the present application, a computer program product is disclosed. When the computer program product runs on a computer, the computer executes any one of the methods disclosed in the first aspect of the embodiments of the present application.

[0056] In another aspect of the embodiments of the present application, an application publishing platform is disclosed. The application publishing platform is used to publish a computer program product. When the computer program product runs on a computer, the computer executes any one of the methods disclosed in the first aspect of the embodiments of the present application.

[0057] It can be seen from the above technical solutions that the embodiments of the present application have the following advantages:

[0058] In the embodiments of the present application, the GNSS data exchange system includes a homogeneous multi-core processor and a GNSS module. The GNSS module is integrated in the homogeneous multi-core processor. The first core of the homogeneous multi-core processor runs a first operating system that supports the GNSS module, and the second core of the homogeneous multi-core processor runs a second operating system that supports application programs. The first operating system and the second operating system share a first memory space. The first operating system writes first GNSS data into a multi-channel circular queue in the first memory space so that the second operating system reads the first GNSS data from the multi-channel circular queue; and / or, the second operating system writes second GNSS data into the multi-channel circular queue in the first memory space so that the first operating system reads the second GNSS data from the multi-channel circular queue. In this method, the electronic device can establish a multi-channel circular queue in the memory space shared by the first operating system and the second operating system to perform GNSS data exchange between multiple cores, achieving the data interaction function of the built-in GNSS module across cores and operating systems, improving the flexibility of data transmission between multiple cores, and improving the data transmission performance between the built-in GNSS module and the processor. Brief Description of the Drawings

[0059] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the accompanying drawings required for the description of the embodiments and the prior art will be briefly introduced below. Obviously, the accompanying drawings in the following description are only some embodiments of the present application, and other drawings can be obtained according to these drawings.

[0060] Figure 1 FIG. is a schematic diagram of an embodiment of a GNSS data exchange method based on a homogeneous multi-core multi-operating system in an embodiment of the present application;

[0061] Figure 2 FIG. is a schematic diagram of another embodiment of a GNSS data exchange method based on a homogeneous multi-core multi-operating system in an embodiment of the present application;

[0062] Figure 3 FIG. is a schematic diagram of another embodiment of a GNSS data exchange method based on a homogeneous multi-core multi-operating system in an embodiment of the present application;

[0063] Figure 4 FIG. is a schematic diagram of an embodiment of a GNSS data exchange system based on a homogeneous multi-core multi-operating system in an embodiment of the present application;

[0064] Figure 5 FIG. is a schematic diagram of an embodiment of an electronic device in an embodiment of the present application. Detailed Description of the Embodiments

[0065] The embodiments of the present application provide a GNSS data exchange method and system based on a homogeneous multi-core multi-operating system, which are used to achieve the data interaction function of the built-in GNSS module across cores and operating systems, improve the flexibility of data transmission between multiple cores, and improve the data transmission performance between the built-in GNSS module and the processor

[0066] In order to enable those skilled in the art to better understand the solutions of the present application, the technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only some embodiments of the present application, rather than all embodiments. Based on the embodiments in the present application, they should all fall within the protection scope of the present application.

[0067] It can be understood that the electronic devices involved in the embodiments of the present application may include general handheld screen electronic devices, such as mobile phones, smart phones, portable terminals, terminals, personal digital assistants (PDAs), portable multimedia player (PMP) devices, laptop computers, notebooks, wireless broadband (Wibro) terminals, tablet computers (PCs), smart PCs, point of sales (POS) terminals, and in-vehicle computers, etc.

[0068] The electronic device may further include a wearable device. A wearable device is a portable electronic device that can be directly worn on the user's body or integrated into the user's clothes or accessories. A wearable device is not only a hardware device, but can also achieve powerful intelligent functions through software support, data interaction, and cloud interaction, such as computing functions, positioning functions, and alarm functions. At the same time, it can also be connected to mobile phones and various terminals. Wearable devices may include, but are not limited to, watch-type devices supported by the wrist (such as watches, wristbands, etc.), shoes-type devices supported by the feet (such as shoes, socks, or other products worn on the legs), Glass-type devices supported by the head (such as glasses, helmets, headbands, etc.), and smart clothing, schoolbags, crutches, accessories, and other various non-mainstream product forms.

[0069] Next, the technical solution of the present application will be further described by way of embodiments, as Figure 1 shown, is a schematic diagram of an embodiment of a GNSS data exchange method based on a homogeneous multi-core multi-operating system in an embodiment of the present application. This method is applied to an electronic device, and the method may include:

[0070] 101. The first operating system writes first GNSS data to a multi-channel circular queue in the first memory space.

[0071] In an embodiment of the present application, the first operating system writes first GNSS data to a multi-channel circular queue in the first memory space so that the second operating system can read the first GNSS data from the multi-channel circular queue.

[0072] It should be noted that the electronic device may include a GNSS module and a processor. The GNSS module may be integrated in the processor. Further, the processor may be a homogeneous multi-core processor, which may at least include a first core and a second core. The first core may run a first operating system that supports the GNSS module, and the second core may run a second operating system that supports application programs. Optionally, the first operating system may include a real-time operating system (RTOS), etc., and the second operating system may include operating systems such as Linux and Android.

[0073] 102. The second operating system writes second GNSS data to a multi-channel circular queue in the first memory space.

[0074] In an embodiment of the present application, the second operating system writes second GNSS data to a multi-channel circular queue in the first memory space so that the first operating system reads the second GNSS data from the multi-channel circular queue.

[0075] Optionally, the GNSS module in the electronic device shares the first memory space with the homogeneous multi-core processor, and data transmission can be performed between the GNSS module and the homogeneous multi-core processor through the multi-channel circular queue in the first memory space.

[0076] Optionally, before the first operating system writes first GNSS data to the multi-channel circular queue in the first memory space, and / or the second operating system writes second GNSS data to the multi-channel circular queue in the first memory space, the GNSS data exchange system may create the multi-channel circular queue.

[0077] It should be noted that the GNSS data exchange system may create a multi-channel circular queue in the first memory space shared by the first operating system and the second operating system. The multi-channel circular queue corresponds to the first memory space. The GNSS data exchange system may create a multi-channel circular queue in each memory space for data transmission between multi-cores. The multi-channel circular queue includes a start address and an end address.

[0078] Optionally, the multi-channel circular queue may include N first circular queues and N second circular queues, where N is a positive integer.

[0079] Among them, the first circular queue is a circular queue in which the first operating system writes first GNSS data and the second operating system reads the first GNSS data; the second circular queue is a circular queue in which the second operating system writes second GNSS data and the first operating system reads the second GNSS data.

[0080] Further, the multi-channel circular queue can be divided into N groups of circular queues, and each group of circular queues includes a first circular queue and a second circular queue; the N groups of circular queues correspond one-to-one to N data transmission channels, that is, each data transmission channel can correspond to a first circular queue and a second circular queue.

[0081] Exemplarily, as shown in Table 1 below, it is the memory table of the multi-channel circular queue. fifo_r[CHANNEL_D] and fifo_w[CHANNEL_D] are a group of circular queues. fifo_r[CHANNEL_D] is the first circular queue in this group of circular queues, and fifo_w[CHANNEL_D] is the second circular queue in this group of circular queues; similarly, fifo_r[CHANNEL_C] and fifo_w[CHANNEL_C] are a group of circular queues, fifo_r[CHANNEL_B] and fifo_w[CHANNEL_B] are a group of circular queues, fifo_r[CHANNEL_A] and fifo_w[CHANNEL_A] are a group of circular queues. Each circular queue has a different starting address, and the length of each circular queue is the size of the GNSS data that can be written / read out by this circular channel.

[0082] Table 1 Memory Table of Multi-Channel Circular Queue

[0083] Starting address Length Usage 0X4C800000 1M fifo_r[CHANNEL_D] 0X4C700000 1M fifo_w[CHANNEL_D] 0X4C600000 1M fifo_r[CHANNEL_C] 0X4C500000 1M fifo_w[CHANNEL_C] 0X4C400000 1M fifo_r[CHANNEL_B] 0X4C300000 1M fifo_w[CHANNEL_B] 0X4C200000 1M fifo_r[CHANNEL_A] 0X4C100000 1M fifo_w[CHANNEL_A]

[0084] In the embodiment of the present application, the first GNSS data may include at least one of: observation data, standard data, and differential data. The second GNSS data may include at least one of: observation data, standard data, and differential data.

[0085] Among them, the observation data refers to the data obtained by observing the satellite and the ground receiving station; the standard data is the data of the unified Radio Technical Commission for Maritime services (RTCM) standard protocol of the current Global Positioning System (GPS) navigation equipment, and this standard data may be the data of the National Marine Electronics Association (NMEA); the differential data is the data after single-difference or double-difference processing.

[0086] Optionally, the first operating system writes the first GNSS data into the multi-channel circular queue in the first memory space, and specifically may include but is not limited to the following implementation manners:

[0087] Implementation method 1: Regardless of the data type of the first GNSS data, the first operating system writes the first GNSS data to a multi-channel circular queue in the first memory space.

[0088] It should be noted that when the first operating system writes the first GNSS data, it writes to the first circular queue in each group of circular queues. Then the first operating system can sequentially write the first GNSS data to the first circular queue in the first group of circular queues, and then write to the first circular queue in the second group of circular queues, and so on; in this way, the second operating system can first read the first GNSS data from the first circular queue in the first group of circular queues, and then read the first GNSS data from the first circular queue in the second group of circular queues.

[0089] Implementation method 2: According to the data type of the first GNSS data, the first operating system writes the first GNSS data to a circular queue corresponding to the data type of the first GNSS data in the first memory space.

[0090] It should be noted that in this implementation method, each group of circular queues can correspond to a data type of the first GNSS data. In this way, when the first operating system writes the first GNSS data, it can write to the circular queue corresponding to the data type of the first GNSS data.

[0091] Exemplarily, assume that the observation data corresponds to the first group of circular queues CHANNEL_A, the standard data corresponds to the second group of circular queues CHANNEL_B, and the differential data corresponds to the third group of circular queues CHANNEL_C. Then when the first operating system writes the standard data, the first operating system can write the standard data to the first circular queue fifo_r[CHANNEL_B] in the second group of circular queues CHANNEL_B. In this way, the second operating system can read the standard data from the first circular queue fifo_r[CHANNEL_B] in the second group of circular queues CHANNEL_B.

[0092] Similarly, optionally, the second operating system writes the second GNSS data to a multi-channel circular queue in the first memory space, which may specifically include but is not limited to the following implementation methods:

[0093] Implementation method 1: Regardless of the data type of the second GNSS data, the second operating system writes the second GNSS data to a multi-channel circular queue in the first memory space.

[0094] It should be noted that when the second operating system writes the second GNSS data, it writes to the second circular queue in each group of circular queues. Then, the second operating system can sequentially write the second GNSS data to the second circular queue in the first group of circular queues, and then write to the second circular queue in the second group of circular queues, and so on. In this way, the first operating system can first read the second GNSS data from the second circular queue in the first group of circular queues, and then read the second GNSS data from the second circular queue in the second group of circular queues.

[0095] Implementation method 2: According to the data type of the second GNSS data, the second operating system writes the second GNSS data to the circular queue corresponding to the data type of the second GNSS data in the first memory space.

[0096] It should be noted that in this implementation method, each group of circular queues can correspond to a data type of the second GNSS data. In this way, when the second operating system writes the second GNSS data, it can write to the circular queue corresponding to the data type of the second GNSS data.

[0097] Exemplarily, assume that the observation data corresponds to the first group of circular queues CHANNEL_A, the standard data corresponds to the second group of circular queues CHANNEL_B, and the differential data corresponds to the third group of circular queues CHANNEL_C. Then, when the second operating system writes the standard data, the second operating system can write the standard data to the second circular queue fifo_w[CHANNEL_B] in the second group of circular queues CHANNEL_B. In this way, the first operating system can read the standard data from the second circular queue fifo_w[CHANNEL_B] in the second group of circular queues CHANNEL_B.

[0098] It should be noted that the above-mentioned first group of circular queues and the second group of circular queues can refer to any group of circular queues, and are not used to specifically refer to the circular queues ranked first or second in the first memory space.

[0099] Through the above two optional implementation methods, the first operating system can sequentially write and / or read the first GNSS data to / from each group of circular queues, or write and / or read the first GNSS data to / from the circular queue corresponding to the data type according to the data type of the first GNSS data. The second operating system can sequentially write and / or read the second GNSS data to / from each group of circular queues, or write and / or read the second GNSS data to / from the circular queue corresponding to the data type according to the data type of the second GNSS data. In this way, the efficiency of the first operating system writing and / or reading the first GNSS data and the second operating system writing and / or reading the second GNSS data can be improved.

[0100] Optionally, in the embodiments of the present application, the electronic device may execute step 101 and / or step 102, that is, the electronic device may only execute step 101, may only execute step 102, or may execute both step 101 and step 102.

[0101] Furthermore, when the electronic device executes step 101 and step 102, it may execute step 101 and step 102 simultaneously, may execute step 101 first and then step 102, or may execute step 102 first and then step 101. The embodiments of the present application do not make any limitations.

[0102] In the embodiments of the present application, the GNSS data exchange system includes a homogeneous multi-core processor and a GNSS module. The GNSS module is integrated in the homogeneous multi-core processor. The first core of the homogeneous multi-core processor runs a first operating system that supports the GNSS module, and the second core of the homogeneous multi-core processor runs a second operating system that supports application programs. The first operating system and the second operating system share a first memory space. The first operating system writes first GNSS data into a multi-channel circular queue in the first memory space so that the second operating system reads the first GNSS data from the multi-channel circular queue; and / or, the second operating system writes second GNSS data into the multi-channel circular queue in the first memory space so that the first operating system reads the second GNSS data from the multi-channel circular queue. In this method, the electronic device can establish a multi-channel circular queue in the shared memory space for GNSS data exchange between multiple cores, achieving the data interaction function of the built-in GNSS module across cores and operating systems, improving the flexibility of data transmission between multiple cores, and improving the data transmission performance between the built-in GNSS module and the processor.

[0103] As Figure 2 shown, it is a schematic diagram of another embodiment of the GNSS data exchange method based on a homogeneous multi-core multi-operating system in the embodiments of the present application. This method is applied to an electronic device and may include:

[0104] 201. The first operating system writes first GNSS data into a multi-channel circular queue in the first memory space.

[0105] In the embodiments of the present application, the first GNSS data may include at least one of observation data and reference data.

[0106] Among them, the observation data may include at least one of pseudorange observations, carrier observations, and Doppler observations; the reference data may include at least one of pseudorange reference values, carrier reference values, and Doppler reference values.

[0107] 202. The second operating system reads the first GNSS data from the multi-channel circular queue in the first memory space.

[0108] 203. The second operating system calculates the first GNSS data to obtain differential data.

[0109] In the embodiment of the present application, the second operating system can calculate the observation data and / or the reference data to obtain differential data.

[0110] Among them, the second operating system can obtain differential data according to the observation data and / or the reference data, and the pseudorange observation model and / or the carrier observation model. The differential data can be a differential observation equation.

[0111] It should be noted that the pseudorange observation model is The carrier observation model is λ is the wavelength, L is the pseudorange, is the carrier, N is the double-difference ambiguity, ρ is the distance between the antenna and the satellite, c is the speed of light, is the receiver clock error, is the satellite clock error, ε φ is the atmospheric propagation error. The second operating system can substitute the observation data and / or the reference data into the above model to obtain differential data.

[0112] 204. The second operating system writes the differential data to the multi-channel circular queue in the first memory space.

[0113] 205. The first operating system reads the differential data from the multi-channel circular queue in the first memory space.

[0114] 206. The first operating system performs positioning solution on the differential data to obtain real-time kinematic (RTK) data.

[0115] In the embodiment of the present application, after the first operating system obtains the differential data, it can solve the differential observation equation, that is, perform single-difference and double-difference processing, and double-difference ambiguity fixing processing, so as to obtain real-time kinematic (RTK) data.

[0116] In an embodiment of the present application, the electronic device includes a homogeneous multi-core processor and a GNSS module. The GNSS module is integrated in the homogeneous multi-core processor. The first core of the homogeneous multi-core processor runs a first operating system that supports the GNSS module, and the second core of the homogeneous multi-core processor runs a second operating system that supports application programs. A first memory space is shared between the first operating system and the second operating system. The first operating system and the second operating system can perform GNSS data transmission through a multi-channel circular queue in the first memory space. In this method, the electronic device can establish a multi-channel circular queue in the shared memory space to perform GNSS data exchange between multiple cores, achieving the data interaction function of the built-in GNSS module across cores and operating systems, improving the flexibility of data transmission between multiple cores, and improving the data transmission performance between the built-in GNSS module and the processor.

[0117] Optionally, the first operating system writing the first GNSS data to the multi-channel circular queue in the first memory space may specifically include: the first operating system writing the first GNSS data to the first circular queue in the first group of circular queues through the first data transmission channel; when it is detected that the first GNSS sub-data cannot be written to the first circular queue in the first group of circular queues through the first data transmission channel, the first operating system writing the first GNSS sub-data to the first circular queue in the second group of circular queues through the second data transmission channel.

[0118] Wherein, the first group of circular queues corresponds to the first data transmission channel, the second group of circular queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.

[0119] It should be noted that the multi-channel circular queue can be divided into N groups of circular queues, and each group of circular queues includes a first circular queue and a second circular queue; the N groups of circular queues correspond one-to-one to N data transmission channels, that is, each data transmission channel can correspond to a first circular queue and a second circular queue.

[0120] In this implementation manner, the capacity of each group of circular queues in the first memory space has an upper limit. If the first GNSS data is greater than the capacity of the first group of circular queues, then the first operating system cannot write all the first GNSS data to the first group of circular queues through the first data transmission channel. Therefore, the first operating system can write the remaining part of the GNSS data in the first GNSS data to the second group of circular queues through the second data transmission channel.

[0121] Exemplarily, assume that the multi-channel circular queue includes four groups of circular queues, the capacities of the first circular queue and the second circular queue in each group of circular queues are both 1M, and the first GNSS data is 2.3M. The first operating system can write 1M of the first GNSS data into the first circular queue in the first group of circular queues through the first data transmission channel, then write 1M of the first GNSS data into the first circular queue in the second group of circular queues through the second data transmission channel, and then write 0.3M of the first GNSS data into the first circular queue in the third group of circular queues through the third data transmission channel.

[0122] Similarly, optionally, the second operating system writes differential data into the multi-channel circular queue in the first memory space, which may specifically include: the second operating system writes differential data into the second circular queue in the first group of circular queues by using the first data transmission channel; when it is detected that the sub-differential data cannot be written into the second circular queue in the first group of circular queues through the first data transmission channel, the first operating system writes the sub-differential data into the second circular queue in the second group of circular queues by using the second data transmission channel.

[0123] Among them, the first group of circular queues corresponds to the first data transmission channel, the second group of circular queues corresponds to the second data transmission channel, and the sub-differential data is part of the differential data.

[0124] It should be noted that the multi-channel circular queue can be divided into N groups of circular queues, each group of circular queues includes a first circular queue and a second circular queue; the N groups of circular queues correspond one-to-one to N data transmission channels, that is, each data transmission channel can correspond to a first circular queue and a second circular queue.

[0125] In this implementation manner, the capacity of each group of circular queues in the first memory space has an upper limit. If the differential data is greater than the capacity of the first group of circular queues, then the first operating system cannot write all the differential data into the first group of circular queues through the first data transmission channel. Therefore, the first operating system can write the remaining part of the differential data into the second group of circular queues through the second data transmission channel.

[0126] Exemplarily, assume that the multi-channel circular queue includes four groups of circular queues. The capacities of the first circular queue and the second circular queue in each group of circular queues are both 1M, and the differential data is 3.8M. The first operating system can write 1M of differential data to the second circular queue in the first group of circular queues through the first data transmission channel, then write 1M of differential data to the second circular queue in the second group of circular queues through the second data transmission channel, then write 1M of differential data to the second circular queue in the third group of circular queues through the third data transmission channel, and then write 0.8M of differential data to the second circular queue in the fourth group of circular queues through the fourth data transmission channel.

[0127] Through the above optional implementation manners, the operating system can write GNSS data to the multi-channel circular queue through multiple data transmission channels, which can improve the stability of GNSS data transmission.

[0128] As Figure 3 shown, it is another schematic diagram of an embodiment of the GNSS data exchange method based on a homogeneous multi-core multi-operating system in an embodiment of the present application. This method is applied to an electronic device, and this method may include:

[0129] 301. The first operating system writes the first GNSS data to the multi-channel circular queue in the first memory space.

[0130] 302. The second operating system receives the serial port operation instruction sent by the application program through the virtual serial port driver.

[0131] In the embodiment of the present application, the user can click on the application program displayed on the electronic device to trigger the application program to generate a serial port operation instruction; the electronic device calls the GNSS data application interface through the application program to transfer the serial port operation instruction to the virtual serial port driver, and then calls the virtual serial port driver to receive the serial port operation instruction transferred by the GNSS data application interface.

[0132] Among them, the serial port operation instruction is transferred by the application program through the GNSS data application interface corresponding to the GNSS module provided by the virtual serial port driver; the virtual serial port driver is used to simulate the physical serial port of the external GNSS module, and the external GNSS module is a GNSS module disposed outside the processor and performing data transmission with the processor through the physical serial port.

[0133] It should be noted that the virtual serial port driver refers to a computer program that can enable an application to access the first memory space, so that data transmission can be carried out between the application and the GNSS module integrated in the processor. The GNSS data application interface corresponding to the GNSS module provided by the virtual serial port driver can be similar to the physical serial port of an external GNSS module. The application uses the original method of calling the physical serial port to call the GNSS data application interface and transmits serial port operation instructions to the virtual serial port driver.

[0134] The application refers to the program software installed in the first operating system, which can provide various application functions for users. The application has a visible user interface and can interact with users. For example: Amap.

[0135] The serial port operation instructions can include, but are not limited to, one or more of data read instructions, data write instructions, and serial port setting instructions, etc. Among them, the data read instruction refers to the instruction for the application to read the target data in the first memory space, the data write instruction refers to the instruction for the application to write the target data in the first memory space, and the serial port setting instruction refers to the instruction for updating the virtual serial port parameters.

[0136] 303. The second operating system reads the first GNSS data from the multi-channel circular queue through the virtual serial port driver.

[0137] Optionally, when the serial port operation instruction includes a data read instruction, the virtual serial port driver reads the first target data in the first memory space according to the data read instruction and returns the first target data to the application.

[0138] Among them, the first target data is the data written by the GNSS module integrated in the processor to the first memory space.

[0139] In some embodiments, the GNSS module integrated in the processor can periodically write the first target data to the first memory space, that is, the first target data is the data periodically written by the GNSS module integrated in the processor to the first memory space. Among them, the period of target data writing can be set before the electronic device leaves the factory or can be user-defined, and no specific limitation is made here. For example: the GNSS module integrated in the processor writes the first target data to the first memory space every 2 seconds, 3 seconds, etc.

[0140] Optionally, after reading the first target data in the first memory space through the virtual serial port driver according to the data read instruction, the method may further include: returning a response instruction for the serial port operation instruction to the application through the virtual serial port driver.

[0141] Among them, the response instruction may include an instruction indicating that the electronic device has successfully read the first target data in the first memory space. It can be understood that the application program in the electronic device can quickly learn that the application program has successfully obtained the first target data according to this response instruction.

[0142] Optionally, if the virtual serial port driver fails to successfully read the first target data from the first memory space, for example, the GNSS module has not yet written the data required by the application program to the first memory space, or there is an error in the data, etc., the virtual serial port driver can return a failure instruction to the application program, and this failure instruction is used to indicate that the first target data has not been successfully read from the first memory space.

[0143] In some embodiments, after receiving the failure instruction returned by the virtual serial port driver, the application program can output a first prompt message, and this first prompt message is used to prompt the user that the first target data cannot be obtained temporarily.

[0144] 304. The second operating system sends the first GNSS data to the application program.

[0145] In the embodiments of the present application, the virtual serial port driver can read the first GNSS data from the multi-channel circular queue according to the serial port operation instruction, and send the first GNSS data to the application program so that the application program can display the first GNSS data.

[0146] 305. The second operating system writes the second GNSS data to the multi-channel circular queue in the first memory space.

[0147] Optionally, the application program can call the GNSS data application interface to send a data write instruction to the virtual serial port driver, and the virtual serial port driver can write the GNSS data sent by the application program to the multi-channel circular queue in the first memory space according to the data write instruction.

[0148] It should be noted that when the application program needs to transmit data to the GNSS module, it can first call the GNSS data application interface to send a data write instruction to the virtual serial port driver. Optionally, this data write instruction can carry data type parameters, data formats, etc. used to represent the data to be written.

[0149] After receiving the serial port write instruction sent by the application program, the virtual serial port driver can parse the serial port operation instruction to obtain the identifier of the data write instruction. At this time, the virtual serial port driver can determine that the serial port operation instruction includes a data write instruction according to the identifier of the data write instruction, so that the virtual serial port driver can write GNSS data in the first memory space according to this data write instruction.

[0150] In the embodiment of the present application, the GNSS data exchange system includes a homogeneous multi-core processor and a GNSS module. The GNSS module is integrated in the homogeneous multi-core processor. The first core of the homogeneous multi-core processor runs the first operating system that supports the GNSS module, and the second core of the homogeneous multi-core processor runs the second operating system that supports the application program. The first operating system and the second operating system share the first memory space. After the first operating system writes the first GNSS data into the multi-channel circular queue in the first memory space, the second operating system receives the serial port operation instruction sent by the application program through the virtual serial port driver, then reads the first GNSS data from the multi-channel circular queue through the virtual serial port driver, and sends the first GNSS data to the application program. The second operating system writes the second GNSS data into the multi-channel circular queue in the first memory space. In the embodiment of the present application, the virtual serial port driver is used to simulate the physical serial port of the external GNSS module. The external GNSS module is a GNSS module set outside the processor and used for data transmission with the processor through the physical serial port. The code of the upper-layer application program does not need to be modified, and it can call the virtual GNSS data application interface provided by the virtual serial port driver in the original way of accessing the external GNSS module through the physical serial port, so as to realize the access to the built-in GNSS module, improve the compatibility of the built-in GNSS module, achieve the cross-core and cross-operating system data interaction function of the built-in GNSS module, improve the flexibility of data transmission between multi-cores, and improve the data transmission performance between the built-in GNSS module and the processor.

[0151] As Figure 4 shown, it is a schematic diagram of an embodiment of the GNSS data exchange system based on a homogeneous multi-core and multi-operating system in the embodiment of the present application. The GNSS data exchange system based on a homogeneous multi-core and multi-operating system includes a homogeneous multi-core processor and a GNSS module. The GNSS module is integrated in the homogeneous multi-core processor. The first core of the homogeneous multi-core processor runs the first operating system that supports the GNSS module, and the second core of the homogeneous multi-core processor runs the second operating system that supports the application program. The first operating system and the second operating system share the first memory space. The GNSS data exchange system based on a homogeneous multi-core and multi-operating system may include:

[0152] A processing module 401, configured to write the first GNSS data into the multi-channel circular queue in the first memory space through the first operating system, so that the second operating system reads the first GNSS data from the multi-channel circular queue; and / or,

[0153] The processing module 401 is further configured to write the second GNSS data into the multi-channel circular queue in the first memory space through the second operating system, so that the first operating system reads the second GNSS data from the multi-channel circular queue.

[0154] Optionally, in some embodiments of the present application,

[0155] The processing module 401 is further configured to read the first GNSS data from the multi-channel circular queue in the first memory space through the second operating system, where the first GNSS data includes at least one of observation data and reference data;

[0156] The processing module 401 is further configured to calculate the first GNSS data through the second operating system to obtain differential data;

[0157] Specifically, the processing module 401 is configured to write the differential data into the multi-channel circular queue in the first memory space through the second operating system;

[0158] Specifically, the processing module 401 is configured to read the differential data from the multi-channel circular queue in the first memory space through the first operating system.

[0159] Optionally, in some embodiments of the present application,

[0160] The multi-channel circular queue includes N first circular queues and N second circular queues, where N is a positive integer;

[0161] Among them, the first circular queue is a circular queue in which the first operating system writes the first GNSS data and the second operating system reads the first GNSS data; the second circular queue is a circular queue in which the second operating system writes the second GNSS data and the first operating system reads the second GNSS data.

[0162] Optionally, in some embodiments of the present application,

[0163] The multi-channel circular queue is divided into N groups of circular queues, and each group of circular queues includes a first circular queue and a second circular queue. The N groups of circular queues correspond one-to-one to N data transmission channels;

[0164] The processing module 401 is further configured to write the first GNSS data into the first circular queue in the first group of circular queues through the first operating system by using the first data transmission channel;

[0165] The processing module 401 is further configured to, when it is detected that the first GNSS sub-data cannot be written into the first circular queue in the first group of circular queues through the first data transmission channel, write the first GNSS sub-data into the first circular queue in the second group of circular queues through the first operating system by using the second data transmission channel;

[0166] Among them, the first group of circular queues corresponds to the first data transmission channel, the second group of circular queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.

[0167] Optionally, in some embodiments of the present application,

[0168] The first GNSS data includes at least one of observation data, standard data, and differential data. Each cyclic queue is used for the first operating system to write and / or read different types of first GNSS data.

[0169] Optionally, in some embodiments of the present application,

[0170] The processing module 401 is further configured to read the second GNSS data from the multi-channel cyclic queue in the first memory space through the first operating system. The second GNSS data includes differential data;

[0171] The processing module 401 is further configured to perform positioning solution on the second GNSS data through the first operating system to obtain real-time kinematic RTK data.

[0172] Optionally, in some embodiments of the present application,

[0173] The transceiver module 402 is configured for the second operating system to receive the serial port operation instruction sent by the application program through the virtual serial port driver. The virtual serial port driver is used to simulate the physical serial port of the external GNSS module. The external GNSS module is a GNSS module disposed outside the homogeneous multi-core processor and performing data transmission with the homogeneous multi-core processor through the physical serial port;

[0174] The processing module 401 is specifically configured for the second operating system to read the first GNSS data from the multi-channel cyclic queue through the virtual serial port driver and send the first GNSS data to the application program.

[0175] As Figure 5 shown, it is a schematic diagram of another embodiment of the electronic device in the embodiments of the present application, which may include: a memory 501 and a processor 502; a global navigation satellite system GNSS module is integrated in the processor 502, and the processor 502 shares a first memory space with the GNSS module; a computer program is stored in the memory 501, and the processor 502 can call the computer program in the memory 501;

[0176] In the embodiments of the present application, the processor 502 further has the following functions:

[0177] Writing the first GNSS data to the multi-channel cyclic queue in the first memory space through the first operating system, so that the second operating system reads the first GNSS data from the multi-channel cyclic queue; and / or writing the second GNSS data to the multi-channel cyclic queue in the first memory space through the second operating system, so that the first operating system reads the second GNSS data from the multi-channel cyclic queue.

[0178] Optionally, the processor 502 also has the following functions:

[0179] Read first GNSS data from a multi-channel circular queue in the first memory space through the second operating system, where the first GNSS data includes at least one of observation data and reference data; calculate differential data by performing calculations on the first GNSS data through the second operating system; write the differential data to the multi-channel circular queue in the first memory space through the second operating system; read the differential data from the multi-channel circular queue in the first memory space through the first operating system.

[0180] Optionally, the multi-channel circular queue includes N first circular queues and N second circular queues, where N is a positive integer; among them, the first circular queue is a circular queue in which the first GNSS data is written by the first operating system and read by the second operating system; the second circular queue is a circular queue in which the second GNSS data is written by the second operating system and read by the first operating system.

[0181] Optionally, the multi-channel circular queue is divided into N groups of circular queues, and each group of circular queues includes a first circular queue and a second circular queue, and the N groups of circular queues correspond one-to-one to N data transmission channels;

[0182] The processor 502 also has the following functions: write the first GNSS data to the first circular queue in the first group of circular queues through the first operating system using the first data transmission channel; when it is detected that the first GNSS sub-data cannot be written to the first circular queue in the first group of circular queues through the first data transmission channel, write the first GNSS sub-data to the first circular queue in the second group of circular queues through the first operating system using the second data transmission channel; among them, the first group of circular queues corresponds to the first data transmission channel, the second group of circular queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.

[0183] Optionally, the first GNSS data includes at least one of: observation data, standard data, and differential data, and each group of circular queues is used for the first operating system to write and / or read different types of first GNSS data.

[0184] Optionally, the processor 502 also has the following functions:

[0185] Read second GNSS data from a multi-channel circular queue in the first memory space through the first operating system, where the second GNSS data includes differential data; perform positioning and solution on the second GNSS data through the first operating system to obtain real-time kinematic RTK data.

[0186] Optionally, the processor 502 further has the following functions:

[0187] The second operating system receives the serial port operation instructions sent by the application program through the virtual serial port driver, and the virtual serial port driver is used to simulate the physical serial port of the external GNSS module. The external GNSS module is a GNSS module arranged outside the homogeneous multi-core processor and performing data transmission with the homogeneous multi-core processor through the physical serial port; the second operating system reads the first GNSS data from the multi-channel circular queue through the virtual serial port driver and sends the first GNSS data to the application program.

[0188] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product.

[0189] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, computer, server, or data center to another website, computer, server, or data center in a wired manner (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wirelessly (such as infrared, wireless, microwave, etc.). The computer-readable storage medium may be any available medium that a computer can store, or a data storage device such as a server or data center that includes one or more integrated available media. The available medium may be a magnetic medium (such as a floppy disk, hard disk, magnetic tape), an optical medium (such as a DVD), or a semiconductor medium (such as a solid state disk (SSD)).

[0190] Those skilled in the art can clearly understand that for the convenience and brevity of description, the specific working processes of the systems, devices, and units described above can refer to the corresponding processes in the foregoing method embodiments and will not be elaborated herein.

[0191] In several embodiments provided by the present application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the displayed or discussed couplings or direct couplings or communication connections between each other can be through some interfaces. The indirect couplings or communication connections of devices or units can be in electrical, mechanical, or other forms.

[0192] The units described as separate components may or may not be physically separated. The components displayed as units may or may not be physical units, that is, they can be located in one place or distributed to multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0193] In addition, each functional unit in various embodiments of the present application can be integrated in a processing unit, or each unit can exist physically alone, or two or more units can be integrated in one unit. The above-mentioned integrated units can be implemented in the form of hardware or in the form of software functional units.

[0194] If the above-mentioned integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, in essence, or the part that contributes to the prior art, or all or part of this technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of the present application. The foregoing storage medium includes: various media such as USB flash drives, mobile hard disks, read-only memories (ROM), random access memories (RAM), magnetic disks, or optical discs that can store program codes.

[0195] As described above, the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them; although the present application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements for some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of various embodiments of the present application.

Claims

1. A GNSS data exchange method based on a homogeneous multi-core multi-operating system, characterized in that Applied to a GNSS data exchange system based on a homogeneous multi-core multi-operating system, the GNSS data exchange system includes a homogeneous multi-core processor and a GNSS module. The GNSS module is integrated in the homogeneous multi-core processor. The first core of the homogeneous multi-core processor runs a first operating system that supports the GNSS module, and the second core of the homogeneous multi-core processor runs a second operating system that supports application programs. A first memory space is shared between the first operating system and the second operating system. The method includes: Writing first GNSS data to a multi-channel circular queue in the first memory space through the first operating system, so that the second operating system reads the first GNSS data from the multi-channel circular queue; and / or, Writing second GNSS data to a multi-channel circular queue in the first memory space through the second operating system, so that the first operating system reads the second GNSS data from the multi-channel circular queue. Wherein, the multi-channel circular queue includes N first circular queues and N second circular queues, N is a positive integer. The first circular queue is a circular queue in which the first operating system writes the first GNSS data and the second operating system reads the first GNSS data. The second circular queue is a circular queue in which the second operating system writes the second GNSS data and the first operating system reads the second GNSS data. The multi-channel circular queue is divided into N groups of circular queues, and each group of circular queues includes one of the first circular queues and one of the second circular queues; The writing of the first GNSS data to the multi-channel circular queue in the first memory space through the first operating system includes: According to the data type of the first GNSS data, writing the first GNSS data to the first circular queue corresponding to the data type of the first GNSS data in the first memory space through the first operating system. Wherein, each group of circular queues can correspond to one data type of the first GNSS data; The writing of the second GNSS data to the multi-channel circular queue in the first memory space through the second operating system includes: According to the data type of the second GNSS data, writing the second GNSS data to the second circular queue corresponding to the data type of the second GNSS data in the first memory space through the second operating system. Wherein, each group of circular queues can correspond to one data type of the second GNSS data.

2. The method according to claim 1, wherein After writing the first GNSS data to the multi-channel circular queue in the first memory space through the first operating system, the method further includes: Reading the first GNSS data from the multi-channel circular queue in the first memory space through the second operating system, where the first GNSS data includes at least one of observation data and reference data; Calculating differential data from the first GNSS data through the second operating system; Writing second GNSS data to the multi-channel circular queue in the first memory space through the second operating system, so that the first operating system reads the second GNSS data from the multi-channel circular queue, includes: Writing the differential data to the multi-channel circular queue in the first memory space through the second operating system; Reading the differential data from the multi-channel circular queue in the first memory space through the first operating system.

3. The method according to claim 1, wherein The N groups of circular queues correspond one-to-one to N data transmission channels; Writing first GNSS data to the multi-channel circular queue in the first memory space through the first operating system, includes: Writing the first GNSS data to the first circular queue in the first group of circular queues through the first operating system using the first data transmission channel; When it is detected that the first GNSS sub-data cannot be written to the first circular queue in the first group of circular queues through the first data transmission channel, writing the first GNSS sub-data to the first circular queue in the second group of circular queues through the first operating system using the second data transmission channel; Wherein, the first group of circular queues corresponds to the first data transmission channel, the second group of circular queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.

4. The method according to claim 3, characterized in that, The first GNSS data includes at least one of: observation data, standard data, differential data, and each group of circular queues is used for the first operating system to write and / or read different types of first GNSS data.

5. The method according to claim 1, characterized in that, After writing second GNSS data to the multi-channel circular queue in the first memory space through the second operating system, the method further includes: Reading the second GNSS data from the multi-channel circular queue in the first memory space through the first operating system, and the second GNSS data includes differential data; Performing positioning and resolution on the second GNSS data through the first operating system to obtain real-time kinematic RTK data.

6. The method according to any one of claims 1 to 5, characterized in that The second operating system reads the first GNSS data from the multi-channel circular queue, includes: The second operating system receives a serial port operation instruction sent by an application program through a virtual serial port driver, and the virtual serial port driver is used to simulate the physical serial port of an external GNSS module, and the external GNSS module is a GNSS module arranged outside the homogeneous multi-core processor and performing data transmission with the homogeneous multi-core processor through the physical serial port; The second operating system reads the first GNSS data from the multi-channel circular queue through the virtual serial port driver and sends the first GNSS data to the application program.

7. A GNSS data exchange system based on a homogeneous multi-core multi-operating system, characterized in that, The GNSS data exchange system includes a homogeneous multi-core processor and a GNSS module. The GNSS module is integrated in the homogeneous multi-core processor. The first core of the homogeneous multi-core processor runs a first operating system that supports the GNSS module, and the second core of the homogeneous multi-core processor runs a second operating system that supports application programs. A first memory space is shared between the first operating system and the second operating system. The GNSS data exchange system includes: A processing module, configured to write first GNSS data to a multi-channel circular queue in the first memory space through the first operating system, so that the second operating system reads the first GNSS data from the multi-channel circular queue; and / or, The processing module is further configured to write second GNSS data to the multi-channel circular queue in the first memory space through the second operating system, so that the first operating system reads the second GNSS data from the multi-channel circular queue. Wherein, the multi-channel circular queue includes N first circular queues and N second circular queues, N is a positive integer. The first circular queue is a circular queue in which the first operating system writes the first GNSS data and the second operating system reads the first GNSS data; the second circular queue is a circular queue in which the second operating system writes the second GNSS data and the first operating system reads the second GNSS data. The multi-channel circular queue is divided into N groups of circular queues, and each group of circular queues includes one of the first circular queues and one of the second circular queues; The processing module is further configured to write the first GNSS data to a first circular queue corresponding to the data type of the first GNSS data in the first memory space through the first operating system according to the data type of the first GNSS data. Wherein, each group of circular queues can correspond to one data type of the first GNSS data; The processing module is further configured to write the second GNSS data to a second circular queue corresponding to the data type of the second GNSS data in the first memory space through the second operating system according to the data type of the second GNSS data. Wherein, each group of circular queues can correspond to one data type of the second GNSS data.

8. An electronic device, characterized in that, Including: A memory storing executable program code; And a processor coupled to the memory; The processor calls the executable program code stored in the memory. When the executable program code is executed by the processor, the processor implements the method according to any one of claims 1-6.

9. A computer-readable storage medium having executable program code stored thereon, characterized in that, When the executable program code is executed by the processor, the method according to any one of claims 1-6 is implemented.

Citation Information

Patent Citations

  • Communication method and system of multi-nuclear multi-operating system

    CN101216814A

  • GNSS (global navigation satellite system) receiver board card on basis of ZYNQ architectures

    CN106772486A