[go: up one dir, main page]

CN114035204B - GNSS data exchange method and system based on isomorphic multi-core multi-operating system - Google Patents

GNSS data exchange method and system based on isomorphic multi-core multi-operating system

Info

Publication number
CN114035204B
CN114035204B CN202111237156.8A CN202111237156A CN114035204B CN 114035204 B CN114035204 B CN 114035204B CN 202111237156 A CN202111237156 A CN 202111237156A CN 114035204 B CN114035204 B CN 114035204B
Authority
CN
China
Prior art keywords
data
operating system
gnss
queue
channel
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.)
Active
Application number
CN202111237156.8A
Other languages
Chinese (zh)
Other versions
CN114035204A (en
Inventor
李仁德
林文华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Geoelectron Co ltd
Original Assignee
Guangzhou Geoelectron Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Geoelectron Co ltd filed Critical Guangzhou Geoelectron Co ltd
Priority to CN202111237156.8A priority Critical patent/CN114035204B/en
Publication of CN114035204A publication Critical patent/CN114035204A/en
Application granted granted Critical
Publication of CN114035204B publication Critical patent/CN114035204B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/03Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

The embodiment of the application discloses a GNSS data exchange method and system based on isomorphic multi-core multi-operating system, which are used for improving the data transmission performance between a built-in GNSS module and a processor. The GNSS data exchange system comprises an isomorphic multi-core processor and a GNSS module, wherein the GNSS module is integrated in the isomorphic multi-core processor, a first core of the isomorphic multi-core processor runs a first operating system supporting the GNSS module, and a second core of the isomorphic multi-core processor runs a second operating system supporting an application program; and/or writing the second GNSS data into the multi-channel circulation 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 circulation queue.

Description

GNSS data exchange method and system based on isomorphic multi-core multi-operating system
Technical Field
The application relates to the technical field of electronics, in particular to a GNSS data exchange method and system based on isomorphic multi-core multi-operating system.
Background
The global navigation satellite system (Global navigation SATELLITE SYSTEM, GNSS) module is a module with complex functions and structures, and with the progress of hardware technology, some GNSS modules can be integrated into a CPU, where the GNSS modules and the CPU often perform data communication by means of memory sharing and the like. However, the GNSS module currently built in the CPU cannot meet the requirement of a large amount of data exchange, and the data transmission performance is poor.
Disclosure of Invention
The embodiment of the application provides a GNSS data exchange method and system based on isomorphic multi-core multi-operating system, which are used for achieving the data interaction function of a built-in GNSS module crossing cores and crossing operating systems, improving the flexibility of data transmission among multiple cores and improving the data transmission performance between the built-in GNSS module and a processor.
An embodiment of the present application provides a GNSS data exchange method based on an isomorphic multi-core multi-operating system, applied to a GNSS data exchange system based on an isomorphic multi-core multi-operating system, where the GNSS data exchange system includes an isomorphic multi-core processor and a GNSS module, the GNSS module is integrated in the isomorphic multi-core processor, a first core of the isomorphic multi-core processor runs a first operating system supporting the GNSS module, a second core of the isomorphic multi-core processor runs a second operating system supporting an application program, and a first memory space is shared between the first operating system and the second operating system, and the method includes:
writing first GNSS data into the multi-channel circulation queue in the first memory space by the first operating system, so that the second operating system reads the first GNSS data from the multi-channel circulation queue, and/or,
And writing second GNSS data into the multi-channel circulation 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 circulation queue.
Optionally, after the writing, by the first operating system, the first GNSS data to the multi-channel circular queue in the first memory space, the method further includes:
Reading out the first GNSS data from the multi-channel circulation queue in the first memory space by the second operating system, wherein the first GNSS data comprises at least one of observation data and reference data;
Calculating the first GNSS data through the second operating system to obtain differential data;
The writing, by the second operating system, second GNSS data to 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, including:
Writing the differential data into a multi-channel circulation queue in the first memory space through the second operating system;
and reading out the differential data from the multi-channel circulation queue in the first memory space through the first operating system.
Optionally, the multi-channel circular queue includes N first circular queues and N second circular queues, where N is a positive integer;
The first circulation queue is a circulation queue in which the first GNSS data is written by the first operating system and the first GNSS data is read by the second operating system, and the second circulation queue is a circulation queue in which the second GNSS data is written by the second operating system and the second GNSS data is read by the first operating system.
Optionally, the multi-channel circular queue is divided into N groups of circular queues, each group of circular queues includes one first circular queue and one second circular queue, and the N groups of circular queues are in one-to-one correspondence with N data transmission channels;
The writing, by the first operating system, the first GNSS data to the multi-channel circular queue in the first memory space includes:
Writing the first GNSS data to a first circular queue in a first set of circular queues by using a first data transmission channel through the first operating system;
when the fact that the first GNSS sub-data cannot be written into the first circulating queues in the first group of circulating queues through the first data transmission channel is detected, the first GNSS sub-data is written into the first circulating queues in the second group of circulating queues through the second data transmission channel by the first operating system;
the first set of circulation queues corresponds to the first data transmission channel, the second set of circulation queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.
Optionally, the first GNSS data comprises at least one of observation data, standard data and differential data, and each set of circular queues is used for writing and/or reading different types of first GNSS data by the first operating system.
Optionally, after the writing, by the second operating system, of the second GNSS data to the multi-channel circular queue in the first memory space, the method further includes:
reading the second GNSS data from the multi-channel circulation queue in the first memory space through the first operating system, wherein the second GNSS data comprises differential data;
And carrying out positioning calculation on the second GNSS data through the first operating system to obtain real-time dynamic RTK data.
Optionally, the second operating system reads the first GNSS data from the multi-channel circulation queue, including:
The second operating system receives a serial port operation instruction sent by an application program through a virtual serial port driver, wherein the virtual serial port driver is used for simulating a physical serial port of an external GNSS module, and the external GNSS module is a GNSS module which is arranged outside the isomorphic multi-core processor and performs data transmission with the isomorphic multi-core processor through the physical serial port;
and the second operating system reads the first GNSS data from the multichannel circulating queue through the virtual serial port driver and sends the first GNSS data to the application program.
A second aspect of the present application provides a GNSS data exchange system based on an isomorphic multicore operating system, where the GNSS data exchange system includes an isomorphic multicore processor and a GNSS module, where the GNSS module is integrated in the isomorphic multicore processor, a first core of the isomorphic multicore processor runs a first operating system supporting the GNSS module, a second core of the isomorphic multicore processor runs a second operating system supporting an application program, and a first memory space is shared between the first operating system and the second operating system, where the GNSS data exchange system includes a processing module configured to write, through the first operating system, first GNSS data into a multichannel circulation queue in the first memory space, so that the second operating system reads the first GNSS data from the multichannel circulation queue, and/or,
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.
Alternatively, in some embodiments of the application,
The processing module is further used for reading out first GNSS data from the multi-channel circulation queue in the first memory space through the second operating system, wherein the first GNSS data comprises at least one of observation data and reference data;
The processing module is also used for calculating the first GNSS data through the second operating system to obtain differential data;
The processing module is specifically used for writing differential data into the multi-channel circulation queue in the first memory space through the second operating system;
The processing module is specifically configured to read out differential data from the multi-channel circular queue in the first memory space through the first operating system.
Alternatively, in some embodiments of the application,
The multichannel circulating queue comprises N first circulating queues and N second circulating queues, wherein N is a positive integer;
The first circulating queue is a circulating queue in which first GNSS data are written by a first operating system and read by a second operating system, and the second circulating queue is a circulating queue in which second GNSS data are written by the second operating system and read by the first operating system.
Alternatively, in some embodiments of the application,
The multi-channel circulation queue is divided into N groups of circulation queues, each group of circulation queues comprises a first circulation queue and a second circulation queue, and the N groups of circulation queues are in one-to-one correspondence with the N data transmission channels;
the processing module is further used for writing first GNSS data into a first circulation queue in the first group of circulation queues by using the first data transmission channel through the first operating system;
The processing module is further configured to, when it is detected that the first GNSS sub-data cannot be written to the first circular queue in the first set of circular queues through the first data transmission channel, write the first GNSS sub-data to the first circular queue in the second set of circular queues through the first operating system by using the second data transmission channel;
The first set of circulation queues corresponds to the first data transmission channel, the second set of circulation queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.
Alternatively, in some embodiments of the application,
The first GNSS data comprises at least one of observation data, standard data and differential data, and each set of circular queues is used for writing and/or reading different types of first GNSS data by the first operating system.
Alternatively, in some embodiments of the application,
The processing module is further used for reading out second GNSS data from the multi-channel circulation queue in the first memory space through the first operating system, wherein the second GNSS data comprises differential data;
And the processing module is also used for carrying out positioning calculation on the second GNSS data through the first operating system to obtain real-time dynamic RTK data.
Alternatively, in some embodiments of the application,
The receiving and transmitting module is used for receiving a serial port operation instruction sent by the application program through a virtual serial port driver, wherein the virtual serial port driver is used for simulating a physical serial port of an external GNSS module, and the external GNSS module is a GNSS module which is arranged outside the isomorphic multi-core processor and performs data transmission with the isomorphic multi-core processor through the physical serial port;
The processing module is specifically configured to read the first GNSS data from the multi-channel circular queue by using the virtual serial driver, and send the first GNSS data to the application program.
A third aspect of an embodiment of the present application provides an electronic device, which may include:
a memory storing executable program code;
And a processor coupled to the memory;
the processor invokes the executable program code stored in the memory, which when executed by the processor causes the processor to implement the method according to the first aspect of the embodiment of the present application.
In yet another aspect, an embodiment of the present application provides a computer readable storage medium having executable program code stored thereon, the executable program code implementing the method according to the first aspect of the embodiment of the present application when executed by a processor.
In yet another aspect, embodiments of the present application disclose a computer program product which, when run on a computer, causes the computer to perform any of the methods disclosed in the first aspect of the embodiments of the present application.
In yet another aspect, an embodiment of the present application discloses an application publishing platform, which is configured to publish a computer program product, where the computer program product, when run on a computer, causes the computer to perform any one of the methods disclosed in the first aspect of the embodiment of the present application.
From the above technical solutions, the embodiment of the present application has the following advantages:
In the embodiment of the application, the GNSS data exchange system comprises an isomorphic multicore processor and a GNSS module, wherein the GNSS module is integrated in the isomorphic multicore processor, a first core of the isomorphic multicore processor runs a first operating system supporting the GNSS module, a second core of the isomorphic multicore processor runs a second operating system supporting an application program, a first memory space is shared between the first operating system and the second operating system, the first operating system writes first GNSS data into a multichannel circular queue in the first memory space so that the second operating system reads the first GNSS data from the multichannel circular queue, and/or the second operating system writes second GNSS data into the multichannel circular queue in the first memory space so that the first operating system reads the second GNSS data from the multichannel circular queue. In the method, the electronic equipment can establish a multi-channel circulation queue in the memory space shared by the first operating system and the second operating system so as to exchange GNSS data between the multiple cores, thereby achieving the data interaction function of the built-in GNSS module crossing the core and crossing the operating system, improving the flexibility of data transmission between the multiple cores and improving the data transmission performance between the built-in GNSS module and the processor.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings used in the description of the embodiments and the prior art will be briefly described, it being obvious that the drawings in the following description are only some embodiments of the present application, and that other drawings may be obtained according to these drawings.
FIG. 1 is a schematic diagram of an embodiment of a GNSS data exchange method based on an isomorphic multi-core multi-operating system in an embodiment of the present application;
FIG. 2 is a schematic diagram of another embodiment of a GNSS data exchange method based on an isomorphic multi-core multi-operating system in an embodiment of the present application;
FIG. 3 is a schematic diagram of another embodiment of a GNSS data exchange method based on an isomorphic multi-core multi-operating system in an embodiment of the present application;
FIG. 4 is a schematic diagram of an embodiment of a GNSS data exchange system based on an isomorphic multi-core multi-operating system in accordance with an embodiment of the present application;
Fig. 5 is a schematic diagram of an embodiment of an electronic device according to an embodiment of the present application.
Detailed Description
The embodiment of the application provides a GNSS data exchange method and system based on isomorphic multi-core multi-operating system, which are used for achieving the data interaction function of a built-in GNSS module crossing cores and crossing operating systems, improving the flexibility of data transmission among multiple cores and improving the data transmission performance between the built-in GNSS module and a processor.
In order that those skilled in the art will better understand the present application, reference will now be made to the accompanying drawings in which embodiments of the application are illustrated, it being apparent that the embodiments described are only some, but not all, of the embodiments of the application. Based on the embodiments of the present application, it should be understood that the present application is within the scope of protection.
It is 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, personal digital assistants (Personal DIGITAL ASSISTANT, PDA), portable multimedia player (Personal MEDIA PLAYER, PMP) devices, notebook computers, notebook (Note Pad), wireless broadband (Wireless Broadband, wibro) terminals, tablet computers (Personal Computer, PC), smart PCs, point of Sales (POS), and car computers.
The electronic device may also include a wearable device. The wearable device may be worn directly on the user or be a portable electronic device integrated into the user's clothing or accessories. The wearable device is not only a hardware device, but also can realize powerful intelligent functions such as a calculation function, a positioning function and an alarm function through software support, data interaction and cloud interaction, and can be connected with a mobile phone and various terminals. Wearable devices may include, but are not limited to, wrist-supported watch types (e.g., watches, wrist products, etc.), foot-supported shoes (e.g., shoes, socks, or other leg wear products), head-supported Glass types (e.g., glasses, helmets, headbands, etc.), and smart apparel, school bags, crutches, accessories, etc. in various non-mainstream product forms.
In the following, by way of example, the technical solution of the present application is further described, as shown in fig. 1, which is a schematic diagram of an embodiment of a GNSS data exchange method based on an isomorphic multi-core multi-operating system in an embodiment of the present application, where the method is applied to an electronic device, and the method may include:
101. The first operating system writes first GNSS data into the multi-channel circulation queue in the first memory space.
In the embodiment of the present application, the first operating system writes the first GNSS data into the 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.
It should be noted that the electronic device may include a GNSS module and a processor, where the GNSS module may be integrated in the processor, and further, the processor may be an isomorphic multicore processor, where the isomorphic multicore processor may include at least a first core and a second core, where the first core may run a first operating system supporting the GNSS module, and the second core may run a second operating system supporting an application program. Alternatively, the first operating system may include a Real-time operating system (Real-time operating system, RTOS) or the like, and the second operating system may include an operating system such as Lunix, android or the like.
102. The second operating system writes second GNSS data into the multi-channel circulation queue in the first memory space.
In the embodiment of the present application, the second operating system writes the 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.
Optionally, a first memory space is shared between the GNSS module and the isomorphic multicore processor in the electronic device, and data transmission can be performed between the GNSS module and the isomorphic multicore processor through a multichannel circular queue in the first memory space.
Optionally, the GNSS data exchange system may create a multi-channel circular queue before the first operating system writes the first GNSS data to the multi-channel circular queue in the first memory space and/or the second operating system writes the second GNSS data to the multi-channel circular queue in the first memory space.
It should be noted that the GNSS data exchange system may create a multi-channel circular queue in a first memory space shared by the first operating system and the second operating system, where the multi-channel circular queue corresponds to the first memory space, and the GNSS data exchange system may create a multi-channel circular queue in each memory space to perform data transmission between multiple cores, where the multi-channel circular queue includes a start address and a stop address.
Optionally, the multi-channel circular queue may include N first circular queues and N second circular queues, where N is a positive integer.
The first circulating queue is a circulating queue in which first GNSS data are written by a first operating system and read by a second operating system, and the second circulating queue is a circulating queue in which second GNSS data are written by the second operating system and read by the first operating system.
Further, the multi-channel circular queue may be divided into N groups of circular queues, each group of circular queues including a first circular queue and a second circular queue, where the N groups of circular queues correspond to the N data transmission channels one by one, i.e., each data transmission channel may correspond to one of the first circular queue and one of the second circular queue.
Illustratively, as shown in Table 1 below, the memory table of the multi-CHANNEL cyclic queues is shown, fifo_r [ channel_D ] and fifo_w [ channel_D ] are a set of cyclic queues, fifo_r [ channel_D ] is the first cyclic queue in the set of cyclic queues, fifo_w [ channel_D ] is the second cyclic queue in the set of cyclic queues, and fifo_r [ channel_C ] and fifo_w [ channel_C ] are a set of cyclic queues, fifo_r [ channel_B ] and fifo_w [ channel_B ] are a set of cyclic queues, fifo_r [ channel_A ] and fifo_w [ channel_A ] are each a different starting address, and the length of each cyclic queue is the size of GNSS data that the cyclic CHANNEL can write/read.
Table 1 memory table of a multi-channel circular queue
Start address Length of Use of the same
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]
In the embodiment of the application, the first GNSS data can comprise 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.
The observation data is data obtained by observation of a satellite and a ground receiving station, the standard data is data of an international maritime service radio technical commission (Radio Technical Commission for MARITIME SERVICES, RTCM) standard protocol unified by the current global positioning system (Global Positioning System, GPS) navigation equipment, the standard data can be data of the national marine electronics association (National Marine Electronics Association, NMEA), and the differential data is data processed through single difference or double difference.
Optionally, the first operating system writes the first GNSS data to the multi-channel circular queue in the first memory space, which may specifically include, but is not limited to, the following implementation manners:
In one implementation, the first operating system writes the first GNSS data to the multi-channel circular queue in the first memory space regardless of the data type of the first GNSS data.
When the first operating system writes the first GNSS data into the first circular queue of each set of circular queues, the first operating system may sequentially write the first GNSS data into the first circular queue of the first set of circular queues, then write the first GNSS data into the first circular queue of the second set of circular queues, and so on, so that the second operating system may read the first GNSS data from the first circular queue of the first set of circular queues and then read the first GNSS data from the first circular queue of the second set of circular queues.
According to the second implementation mode, the first operating system writes the first GNSS data into a circulation queue corresponding to the data type of the first GNSS data in the first memory space according to the data type of the first GNSS data.
It should be noted that, in this implementation, each set of circular queues may correspond to a data type of the first GNSS data, so that when the first operating system writes the first GNSS data, the first operating system may write the first GNSS data to the circular queue corresponding to the data type of the first GNSS data.
Illustratively, it is assumed that the observed data corresponds to a first set of circular queues, channel_a, the standard data corresponds to a second set of circular queues, channel_b, and the differential data corresponds to a third set of circular queues, channel_c. When the first operating system writes the standard data, the first operating system may write the standard data to the first circular queue fifo_r [ channel_b ] in the second set of circular queues channel_b, so that the second operating system may read the standard data from the first circular queue fifo_r [ channel_b ] in the second set of circular queues channel_b.
Similarly, optionally, the second operating system writes the second GNSS data to the multi-channel circular queue in the first memory space, which may specifically include, but is not limited to, the following implementation manners:
in one implementation, the second operating system writes the second GNSS data to the multi-channel circular queue in the first memory space regardless of the data type of the second GNSS data.
It should be noted that, when the second operating system writes the second GNSS data into the second circular queue in each set of circular queues, the second operating system may sequentially write the second GNSS data into the second circular queue in the first set of circular queues, and then write the second GNSS data into the second circular queue in the second set of circular queues, and so on, so that the first operating system may read the second GNSS data from the second circular queue in the first set of circular queues first, and then read the second GNSS data from the second circular queue in the second set of circular queues.
According to the second GNSS data type, the second operating system writes the second GNSS data into the circular queue corresponding to the second GNSS data type in the first memory space.
It should be noted that, in this implementation, each set of circular queues may correspond to a data type of the second GNSS data, so that when the second operating system writes the second GNSS data, the second operating system may write the second GNSS data to the circular queue corresponding to the data type of the second GNSS data.
Illustratively, it is assumed that the observed data corresponds to a first set of circular queues, channel_a, the standard data corresponds to a second set of circular queues, channel_b, and the differential data corresponds to a third set of circular queues, channel_c. When the second operating system writes the standard data, the second operating system may write the standard data to the second circular queue fifo_w [ channel_b ] in the second set of circular queues channel_b, so that the first operating system may read the standard data from the second circular queue fifo_w [ channel_b ] in the second set of circular queues channel_b.
It should be noted that, the first set of circular queues and the second set of circular queues may refer to any set of circular queues, and are not specifically used to arrange the first or the second circular queues in the first memory space.
Through the two alternative implementation modes, the first operating system can sequentially write and/or read the first GNSS data into each group of the circulation queues, and can also write and/or read the first GNSS data into the circulation queues corresponding to the data types according to the data types of the first GNSS data, the second operating system can sequentially write and/or read the second GNSS data into each group of the circulation queues, and can also write and/or read the second GNSS data into the circulation queues corresponding to the data types according to the data types of the second GNSS data, so that the efficiency of the first operating system for writing and/or reading the first GNSS data and the second operating system for writing and/or reading the second GNSS data can be improved.
Optionally, in the embodiment of the present application, the electronic device may perform the step 101, and/or the step 102, that is, the electronic device may perform only the step 101, may perform only the step 102, and may perform both the steps 101 and 102.
Further, when the electronic device executes the 101 step and the 102 step, the 101 step and the 102 step may be executed simultaneously, or the 101 step may be executed first, then the 102 step may be executed, or the 102 step may be executed first, then the 101 step may be executed, which is not limited in the embodiment of the present application.
In the embodiment of the application, the GNSS data exchange system comprises an isomorphic multicore processor and a GNSS module, wherein the GNSS module is integrated in the isomorphic multicore processor, a first core of the isomorphic multicore processor runs a first operating system supporting the GNSS module, a second core of the isomorphic multicore processor runs a second operating system supporting an application program, a first memory space is shared between the first operating system and the second operating system, the first operating system writes first GNSS data into a multichannel circular queue in the first memory space so that the second operating system reads the first GNSS data from the multichannel circular queue, and/or the second operating system writes second GNSS data into the multichannel circular queue in the first memory space so that the first operating system reads the second GNSS data from the multichannel circular queue. According to the method, the electronic equipment can establish a multi-channel circulation queue in the shared memory space to exchange GNSS data among multiple cores, so that the data interaction function of the built-in GNSS module crossing the cores and crossing the operating system is achieved, the flexibility of data transmission among the multiple cores is improved, and the data transmission performance between the built-in GNSS module and the processor is improved.
Fig. 2 is a schematic diagram showing another embodiment of a GNSS data exchange method based on a homogeneous multi-core multi-operating system according to an embodiment of the present application, where the method is applied to an electronic device, and the method may include:
201. The first operating system writes first GNSS data into the multi-channel circulation queue in the first memory space.
In an embodiment of the present application, the first GNSS data may include at least one of observation data and reference data.
The observation data may include at least one of a pseudo-range observation value, a carrier observation value and a Doppler observation value, and the reference data may include at least one of a pseudo-range reference value, a carrier reference value and a Doppler reference value.
202. The second operating system reads the first GNSS data from the multi-channel circular queue in the first memory space.
203. And the second operating system calculates the first GNSS data to obtain differential data.
In the embodiment of the application, the second operating system can calculate the observation data and/or the reference data, so as to obtain the differential data.
The second operating system may obtain differential data according to the observation data, and/or the reference data, and the pseudo-range observation model, and/or the carrier observation model, where the differential data may be a differential observation equation.
The pseudo-range observation model is thatThe carrier observation model isLambda is the wavelength, L is the pseudorange,Is carrier, N is double-difference ambiguity, ρ is the distance between the antenna and the satellite, c is the speed of light,In order for the receiver to be clocked out,Epsilon φ is the atmospheric propagation error, which is the satellite clock difference. The second operating system may bring the observation data and/or the reference data into the model, thereby obtaining the differential data.
204. The second operating system writes differential data to the multi-channel circular queue in the first memory space.
205. The first operating system reads differential data from the multi-channel circular queue in the first memory space.
206. And the first operating system performs positioning calculation on the differential data to obtain real-time dynamic RTK data.
In the embodiment of the application, after the first operating system obtains the differential data, the differential observation equation can be solved, namely, single-difference and double-difference processing and double-difference ambiguity fixing processing are performed, so that Real-time dynamic (Real-TIME KINEMATIC, RTK) data are obtained.
In the embodiment of the application, the electronic equipment comprises an isomorphic multi-core processor and a GNSS module, the GNSS module is integrated in the isomorphic multi-core processor, a first core of the isomorphic multi-core processor operates a first operating system supporting the GNSS module, a second core of the isomorphic multi-core processor operates a second operating system supporting an application program, 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 carry out GNSS data transmission through a multi-channel circulating queue in the first memory space, and in the method, the electronic equipment can establish the multi-channel circulating queue in the shared memory space to carry out GNSS data exchange among multiple cores, so that the data interaction function of the built-in GNSS module across cores across the operating system is achieved, the flexibility of data transmission among multiple cores is improved, and the data transmission performance between the built-in GNSS module and the processor is improved.
Optionally, the first operating system writes the first GNSS data to the multi-channel circulation queues in the first memory space, which specifically includes that the first operating system writes the first GNSS data to the first circulation queues in the first group of circulation queues by using the first data transmission channel, and when detecting that the first GNSS sub-data cannot be written to the first circulation queues in the first group of circulation queues by using the first data transmission channel, the first operating system writes the first GNSS sub-data to the first circulation queues in the second group of circulation queues by using the second data transmission channel.
The first set of circulation queues corresponds to the first data transmission channel, the second set of circulation queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.
It should be noted that the multi-channel circular queue may be divided into N groups of circular queues, where each group of circular queues includes a first circular queue and a second circular queue, and the N groups of circular queues are in one-to-one correspondence with the N data transmission channels, that is, each data transmission channel may be in one of the first circular queue and the second circular queue.
In this implementation, the capacity of each set of circular queues in the first memory space is limited, and if the first GNSS data is greater than the capacity of the first set of circular queues, the first operating system cannot write all of the first GNSS data to the first set of circular queues through the first data transmission channel, so the first operating system can write the remaining part of the first GNSS data to the second set of circular queues through the second data transmission channel.
Illustratively, assume that the multi-channel circular queue includes four sets of circular queues, each of which has a capacity of 1M for the first and second circular queues and a capacity of 2.3M for the first GNSS data. The first operating system can write 1M of first GNSS data into the first circulation queues in the first group of circulation queues through the first data transmission channel, then write 1M of first GNSS data into the first circulation queues in the second group of circulation queues through the second data transmission channel, and then write 0.3M of first GNSS data into the first circulation queues in the third group of circulation queues through the third data transmission channel.
Similarly, optionally, the second operating system writes differential data to the multi-channel circular queues in the first memory space, which specifically includes that the second operating system writes differential data to the second circular queues in the first set of circular queues by using the first data transmission channel, and when detecting that sub-differential data cannot be written to the second circular queues in the first set of circular queues by using the first data transmission channel, the first operating system writes sub-differential data to the second circular queues in the second set of circular queues by using the second data transmission channel.
The first set of circular queues corresponds to the first data transmission channel, the second set of circular queues corresponds to the second data transmission channel, and the sub-differential data are part of differential data.
It should be noted that the multi-channel circular queue may be divided into N groups of circular queues, where each group of circular queues includes a first circular queue and a second circular queue, and the N groups of circular queues are in one-to-one correspondence with the N data transmission channels, that is, each data transmission channel may be in one of the first circular queue and the second circular queue.
In this implementation, the capacity of each set of circular queues in the first memory space is limited, and if the differential data is greater than the capacity of the first set of circular queues, the first operating system cannot write all the differential data to the first set of circular queues through the first data transmission channel, so the first operating system can write the remaining part of the differential data to the second set of circular queues through the second data transmission channel.
Illustratively, assume that the multi-channel circular queue includes four sets of circular queues, each set of circular queues having a first circular queue and a second circular queue each having a capacity of 1M and a differential data of 3.8M. The first operating system can write 1M differential data into a second circular queue in the first group of circular queues through the first data transmission channel, then write 1M differential data into the second circular queue in the second group of circular queues through the second data transmission channel, then write 1M differential data into the second circular queue in the third group of circular queues through the third data transmission channel, and then write 0.8M differential data into the second circular queue in the fourth group of circular queues through the fourth data transmission channel.
Through the optional implementation manner, the operating system can write the GNSS data into the multi-channel circulation queue through a plurality of data transmission channels, so that the stability of GNSS data transmission can be improved.
Fig. 3 is a schematic diagram showing another embodiment of a GNSS data exchange method based on a homogeneous multi-core multi-operating system according to an embodiment of the present application, where the method is applied to an electronic device, and the method may include:
301. The first operating system writes first GNSS data into the multi-channel circulation queue in the first memory space.
302. And the second operating system receives a serial port operation instruction sent by the application program through the virtual serial port driver.
In the embodiment of the application, a user can click an application program displayed in the electronic equipment to trigger the application program to generate a serial port operation instruction, and the electronic equipment calls a GNSS data application interface to transmit the serial port operation instruction to a virtual serial port driver through the application program and then calls the virtual serial port driver to receive the serial port operation instruction transmitted by the GNSS data application interface.
The virtual serial port driver is used for simulating a physical serial port of an external GNSS module, and the external GNSS module is a GNSS module which is arranged outside the processor and performs data transmission with the processor through the physical serial port.
It should be noted that, the virtual serial driver refers to a computer program that can enable an application program to access the first memory space, so that the application program can perform data transmission with a GNSS module integrated in a processor, a GNSS data application interface corresponding to the GNSS module provided by the virtual serial driver may be similar to a physical serial port of an external GNSS module, and the application program invokes the GNSS data application interface in a manner of calling the physical serial port originally, and transmits a serial port operation instruction to the virtual serial port driver.
An application refers to program software installed in a first operating system that is capable of providing a wide variety of application functions to a user. The application has a visual user interface that can interact with a user. Such as a golde map.
The serial port operation instructions may include, but are not limited to, one or more of data read instructions, data write instructions, serial port setup instructions, and the like. The data reading instruction refers to an instruction of an application program for reading target data in the first memory space, the data writing instruction refers to an instruction of the application program for writing the target data in the first memory space, and the serial port setting instruction refers to an instruction for updating virtual serial port parameters.
303. The second operating system reads the first GNSS data from the multi-channel circulation queue through the virtual serial port driver.
Optionally, when the serial port operation instruction includes a data reading instruction, the virtual serial port driver reads the first target data in the first memory space according to the data reading instruction, and returns the first target data to the application program.
The first target data is data written into the first memory space by the GNSS module integrated in the processor.
In some embodiments, the GNSS module integrated in the processor may periodically write first target data to the first memory space, i.e. the first target data is data periodically written to the first memory space by the GNSS module integrated in the processor. The period of writing the target data may be set before the electronic device leaves the factory, or may be set by a user in a user-defined manner, which is not specifically limited herein. For example, a GNSS module integrated in the processor writes the first target data to the first memory space every 2 seconds, 3 seconds, etc.
Optionally, after the first target data in the first memory space is read by the virtual serial port driver according to the data reading instruction, the method may further include returning a response instruction for the serial port operation instruction to the application program by the virtual serial port driver.
The response instruction may include an instruction that the electronic device has successfully read the first target data in the first memory space. It can be appreciated that the application program in the electronic device can quickly learn that the application program has successfully acquired the first target data according to the response instruction.
Optionally, if the virtual serial driver does not successfully read the first target data from the first memory space, for example, the GNSS module has not written the data required by the application program into the first memory space, or the data is wrong, the virtual serial driver may return an acquisition failure instruction to the application program, where the acquisition failure instruction is used to characterize that the first target data is not successfully read from the first memory space.
In some embodiments, after receiving the acquisition failure instruction returned by the virtual serial port driver, the application program may output a first prompting message, where the first prompting message is used to prompt the user that the first target data cannot be acquired temporarily.
304. The second operating system sends the first GNSS data to the application.
In the embodiment of the present application, the virtual serial driver may read the first GNSS data from the multi-channel circular queue according to the serial operation instruction, and send the first GNSS data to the application program, so that the application program displays the first GNSS data.
305. The second operating system writes second GNSS data into the multi-channel circulation queue in the first memory space.
Optionally, the application program may call the GNSS data application interface, send a data writing instruction to the virtual serial driver, and the virtual serial driver may write, according to the data writing instruction, GNSS data sent by the application program into the multi-channel circular queue in the first memory space.
When the application program needs to transmit data to the GNSS module, the GNSS data application interface may be called first, and a data writing instruction may be sent to the virtual serial driver. Optionally, the data writing instruction may carry a data type parameter, a data format, and the like, which are used to characterize the data to be written.
After the virtual serial port driver receives the serial port writing instruction sent by the application program, the virtual serial port driver can analyze the serial port operation instruction to obtain the identification of the data writing instruction, at this time, the virtual serial port driver can determine that the serial port operation instruction comprises the data writing instruction according to the identification of the data writing instruction, so that the virtual serial port driver can write GNSS data in the first memory space according to the data writing instruction.
In the embodiment of the application, the GNSS data exchange system comprises an isomorphic multicore processor and a GNSS module, wherein the GNSS module is integrated in the isomorphic multicore processor, a first core of the isomorphic multicore processor operates a first operating system supporting the GNSS module, a second core of the isomorphic multicore processor operates a second operating system supporting an application program, a first memory space is shared between the first operating system and the second operating system, after the first operating system writes first GNSS data into a multichannel circulating queue in the first memory space, the second operating system receives a serial port operating instruction sent by the application program through a virtual serial port driver, reads the first GNSS data from the multichannel circulating queue through the virtual serial port driver, and sends the first GNSS data to the application program, and the second operating system writes second GNSS data into the multichannel circulating queue in the first memory space. In the embodiment of the application, the virtual serial port driver is used for simulating the physical serial port of the external GNSS module, the external GNSS module is the GNSS module which is arranged outside the processor and performs data transmission with the processor through the physical serial port, the code of the application program at the upper layer can call the virtual GNSS data application interface provided by the virtual serial port driver according to the original mode of accessing the external GNSS module through the physical serial port, thereby realizing the access to the internal GNSS module, improving the compatibility of the internal GNSS module, achieving the data interaction function of the internal GNSS module across cores and across operating systems, improving the flexibility of data transmission between multiple cores and improving the data transmission performance between the internal GNSS module and the processor.
As shown in fig. 4, which is a schematic diagram of an embodiment of a GNSS data exchange system based on an isomorphic multi-core multi-operating system in an embodiment of the present application, the GNSS data exchange system based on the isomorphic multi-core multi-operating system includes an isomorphic multi-core processor and a GNSS module, the GNSS module is integrated in the isomorphic multi-core processor, a first core of the isomorphic multi-core processor runs a first operating system supporting the GNSS module, a second core of the isomorphic multi-core processor runs a second operating system supporting an application program, and a first memory space is shared between the first operating system and the second operating system, and the GNSS data exchange system based on the isomorphic multi-core multi-operating system may include:
a processing module 401, configured to write the first GNSS data to 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,
The processing module 401 is further configured to write 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.
Alternatively, in some embodiments of the application,
The processing module 401 is further configured to read out, by the second operating system, first GNSS data from the multi-channel circular queue in the first memory space, where the first GNSS data includes at least one of observation data and reference data;
The processing module 401 is further configured to calculate, by using the second operating system, the first GNSS data, so as to obtain differential data;
the processing module 401 is specifically configured to write differential data to the multi-channel circular queue in the first memory space through the second operating system;
the processing module 401 is specifically configured to read differential data from the multi-channel circular queue in the first memory space through the first operating system.
Alternatively, in some embodiments of the application,
The multichannel circulating queue comprises N first circulating queues and N second circulating queues, wherein N is a positive integer;
The first circulating queue is a circulating queue in which first GNSS data are written by a first operating system and read by a second operating system, and the second circulating queue is a circulating queue in which second GNSS data are written by the second operating system and read by the first operating system.
Alternatively, in some embodiments of the application,
The multi-channel circulation queue is divided into N groups of circulation queues, each group of circulation queues comprises a first circulation queue and a second circulation queue, and the N groups of circulation queues are in one-to-one correspondence with the N data transmission channels;
The processing module 401 is further configured to write, by using the first operating system, first GNSS data to a first circular queue in the first set of circular queues by using the first data transmission channel;
The processing module 401 is further configured to, when it is detected that the first GNSS sub-data cannot be written to the first circular queue in the first set of circular queues through the first data transmission channel, write the first GNSS sub-data to the first circular queue in the second set of circular queues through the first operating system by using the second data transmission channel;
The first set of circulation queues corresponds to the first data transmission channel, the second set of circulation queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.
Alternatively, in some embodiments of the application,
The first GNSS data comprises at least one of observation data, standard data and differential data, and each set of circular queues is used for writing and/or reading different types of first GNSS data by the first operating system.
Alternatively, in some embodiments of the application,
The processing module 401 is further configured to read out second GNSS data from the multi-channel circular queue in the first memory space through the first operating system, where the second GNSS data includes differential data;
The processing module 401 is further configured to perform positioning calculation on the second GNSS data by using the first operating system, so as to obtain real-time dynamic RTK data.
Alternatively, in some embodiments of the application,
The transceiver module 402 is configured to receive, by using a second operating system through a virtual serial port driver, a serial port operation instruction sent by an application program, where the virtual serial port driver is configured to simulate a physical serial port of an external GNSS module, and the external GNSS module is a GNSS module that is disposed outside the isomorphic multicore processor and performs data transmission with the isomorphic multicore processor through the physical serial port;
the processing module 401 is specifically configured to read, by the second operating system, the first GNSS data from the multi-channel circular queue through the virtual serial driver, and send the first GNSS data to the application program.
FIG. 5 shows another embodiment of an electronic device according to the present application, which may include a memory 501 and a processor 502, wherein a global navigation satellite system GNSS module is integrated in the processor 502, and the processor 502 and the GNSS module share a first memory space;
In an embodiment of the present application, the processor 502 also has the following functions:
And/or writing the second GNSS data into the multi-channel circulation 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 circulation queue.
Optionally, the processor 502 also has the following functions:
The method comprises the steps of reading first GNSS data from a multi-channel circulation queue in a first memory space through a second operating system, wherein the first GNSS data comprises at least one of observation data and reference data, calculating the first GNSS data through the second operating system to obtain differential data, writing the differential data into the multi-channel circulation queue in the first memory space through the second operating system, and reading the differential data from the multi-channel circulation queue in the first memory space through the first operating system.
Optionally, the multi-channel circulation queue includes N first circulation queues and N second circulation queues, where N is a positive integer, the first circulation queues are circulation queues in which first GNSS data is written by the first operating system and read by the second operating system, and the second circulation queues are circulation queues in which second GNSS data is written by the second operating system and read by the first operating system.
Optionally, the multi-channel circular queue is divided into N groups of circular queues, each group of circular queues comprises a first circular queue and a second circular queue, and the N groups of circular queues are in one-to-one correspondence with the N data transmission channels;
The processor 502 may further be configured to write, by the first operating system, first GNSS data to a first circular queue of the first set of circular queues using the first data transmission channel, and write, by the first operating system, first GNSS sub-data to a first circular queue of the second set of circular queues using the second data transmission channel when it is detected that the first GNSS sub-data cannot be written to the first circular queue of the first set of circular queues using the first data transmission channel, wherein the first set of circular queues corresponds to the first data transmission channel, the second set of circular queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.
Optionally, the first GNSS data comprises at least one of observation data, standard data, differential data, and each set of circular queues is used for writing and/or reading different types of first GNSS data by the first operating system.
Optionally, the processor 502 also has the following functions:
Reading second GNSS data from the multi-channel circulation queue in the first memory space through the first operating system, wherein the second GNSS data comprises differential data; and carrying out positioning calculation on the second GNSS data through the first operating system to obtain real-time dynamic RTK data.
Optionally, the processor 502 also has the following functions:
The second operating system receives a serial port operation instruction sent by the application program through a virtual serial port driver, the virtual serial port driver is used for simulating a physical serial port of an external GNSS module, the external GNSS module is a GNSS module which is arranged outside the isomorphic multi-core processor and performs data transmission with the isomorphic multi-core processor through the physical serial port, and the second operating system reads first GNSS data from the multi-channel circulation queue through the virtual serial port driver and sends the first GNSS data to the application program.
In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product.
The computer program product includes one or more computer instructions. When loaded and executed on a computer, produces a flow or function in accordance with embodiments of the present application, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. 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 one website, computer, server, or data center to another website, computer, server, or data center by a wired (e.g., coaxial cable, fiber optic, digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer readable storage medium may be any available medium that can be stored by a computer or a data storage device such as a server, data center, etc. that contains an integration of one or more available media. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid state disk Solid STATE DISK (SSD)), etc.
It will be clear to those skilled in the art that, for convenience and brevity of description, specific working procedures of the above-described systems, apparatuses and units may refer to corresponding procedures in the foregoing method embodiments, which are not repeated herein.
In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. For example, the apparatus embodiments described above are merely illustrative, e.g., the division of the units is merely a logical function division, and there may be additional divisions when actually implemented, e.g., multiple units or components may be combined or integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in the embodiments of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units may be implemented in hardware or in software functional units.
The integrated units, if implemented in the form of software functional units and sold or used as stand-alone products, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application may be embodied essentially or in part or all of the technical solution or in part in the form of a software product stored in a storage medium, including instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the method according to the embodiments of the present application. The storage medium includes a U disk, a removable hard disk, a Read-only memory (ROM), a random access memory (RandomAccessMemory, RAM), a magnetic disk, an optical disk, or other various media capable of storing program codes.
While the application has been described in detail with reference to the foregoing embodiments, it will be understood by those skilled in the art that the foregoing embodiments may be modified or equivalents may be substituted for some of the features thereof, and that the modifications or substitutions do not depart from the spirit and scope of the embodiments of the application.

Claims (9)

1. The GNSS data exchange method based on the isomorphic multi-core multi-operating system is characterized by being applied to the GNSS data exchange system based on the isomorphic multi-core multi-operating system, wherein the GNSS data exchange system comprises an isomorphic multi-core processor and a GNSS module, the GNSS module is integrated in the isomorphic multi-core processor, a first core of the isomorphic multi-core processor runs a first operating system supporting the GNSS module, a second core of the isomorphic multi-core processor runs a second operating system supporting an application program, and a first memory space is shared between the first operating system and the second operating system, and the method comprises the following steps:
writing first GNSS data into the multi-channel circulation queue in the first memory space by the first operating system, so that the second operating system reads the first GNSS data from the multi-channel circulation queue, and/or,
Writing second GNSS data into a multi-channel circulation 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 circulation queue, wherein the multi-channel circulation queue comprises N first circulation queues and N second circulation queues, N is a positive integer, the first circulation queue is a circulation queue in which the first GNSS data is written by the first operating system and the first GNSS data is read by the second operating system, the second circulation queue is a circulation queue in which the second GNSS data is written by the second operating system and the second GNSS data is read by the first operating system, and the multi-channel circulation queue is divided into N groups of circulation queues, and each group of circulation queues comprises one first circulation queue and one second circulation queue;
The writing, by the first operating system, the first GNSS data to the multi-channel circular queue in the first memory space includes:
According to the data type of the first GNSS data, writing the first GNSS data into a first circulation 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 circulation queues can correspond to one data type of the first GNSS data;
The writing, by the second operating system, second GNSS data to the multi-channel circular queue in the first memory space includes:
And writing the second GNSS data into a second circulation 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 circulation queues can correspond to one data type of the second GNSS data.
2. The method of claim 1, wherein after the writing of the first GNSS data to the multi-channel circular queue in the first memory space by the first operating system, the method further comprises:
Reading out the first GNSS data from the multi-channel circulation queue in the first memory space by the second operating system, wherein the first GNSS data comprises at least one of observation data and reference data;
Calculating the first GNSS data through the second operating system to obtain differential data;
The writing, by the second operating system, second GNSS data to 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, including:
Writing the differential data into a multi-channel circulation queue in the first memory space through the second operating system;
and reading out the differential data from the multi-channel circulation queue in the first memory space through the first operating system.
3. The method of claim 1, wherein the N sets of circular queues are in one-to-one correspondence with N data transmission channels;
The writing, by the first operating system, the first GNSS data to the multi-channel circular queue in the first memory space includes:
Writing the first GNSS data to a first circular queue in a first set of circular queues by using a first data transmission channel through the first operating system;
when the fact that the first GNSS sub-data cannot be written into the first circulating queues in the first group of circulating queues through the first data transmission channel is detected, the first GNSS sub-data is written into the first circulating queues in the second group of circulating queues through the second data transmission channel by the first operating system;
the first set of circulation queues corresponds to the first data transmission channel, the second set of circulation queues corresponds to the second data transmission channel, and the first GNSS sub-data is part of the first GNSS data.
4. The method of claim 3, wherein the first GNSS data comprises at least one of observation data, standard data, differential data, and each set of circular queues is used for writing and/or reading different types of first GNSS data by the first operating system.
5. The method of claim 1, wherein after the writing of the second GNSS data to the multi-channel circular queue in the first memory space by the second operating system, the method further comprises:
reading the second GNSS data from the multi-channel circulation queue in the first memory space through the first operating system, wherein the second GNSS data comprises differential data;
And carrying out positioning calculation on the second GNSS data through the first operating system to obtain real-time dynamic RTK data.
6. The method of any one of claims 1 to 5, wherein the second operating system reading the first GNSS data from the multi-channel circular queue comprises:
The second operating system receives a serial port operation instruction sent by an application program through a virtual serial port driver, wherein the virtual serial port driver is used for simulating a physical serial port of an external GNSS module, and the external GNSS module is a GNSS module which is arranged outside the isomorphic multi-core processor and performs data transmission with the isomorphic multi-core processor through the physical serial port;
and the second operating system reads the first GNSS data from the multichannel circulating queue through the virtual serial port driver and sends the first GNSS data to the application program.
7. The utility model provides a GNSS data exchange system based on isomorphic multicore many operating system, its characterized in that, GNSS data exchange system includes isomorphic multicore treater and GNSS module, the GNSS module is integrated in the isomorphic multicore treater, the first core operation of isomorphic multicore treater supports the first operating system of GNSS module, the second core operation of isomorphic multicore treater supports the second operating system of application, share first memory space between first operating system and the second operating system, 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,
The processing module is further configured to write 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, where the multi-channel circular queue includes N first circular queues and N second circular queues, N is a positive integer, the first circular queues are circular queues in which the first operating system writes the first GNSS data, and the second operating system reads the first GNSS data, the second circular queues are circular queues in which the second operating system writes the second GNSS data, and the first operating system reads the second GNSS data, and the multi-channel circular queue is divided into N groups of circular queues, each group of circular queues includes one first circular queue and one second circular queue;
The processing module is further configured to write, according to the data type of the first GNSS data, the first GNSS data into a first circular queue corresponding to the data type of the first GNSS data in the first memory space through the first operating system, where each set of circular queues can correspond to one data type of the first GNSS data;
the processing module is further configured to write, according to the data type of the second GNSS data, the second GNSS data into a second circular queue corresponding to the data type of the second GNSS data in the first memory space through the second operating system, where each set of circular queues can correspond to one data type of the second GNSS data.
8. An electronic device, comprising:
a memory storing executable program code;
And a processor coupled to the memory;
The processor invoking the executable program code stored in the memory, which when executed by the processor, causes the processor to implement the method of any of claims 1-6.
9. A computer readable storage medium having stored thereon executable program code, which when executed by a processor, implements the method according to any of claims 1-6.
CN202111237156.8A 2021-10-22 2021-10-22 GNSS data exchange method and system based on isomorphic multi-core multi-operating system Active CN114035204B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111237156.8A CN114035204B (en) 2021-10-22 2021-10-22 GNSS data exchange method and system based on isomorphic multi-core multi-operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111237156.8A CN114035204B (en) 2021-10-22 2021-10-22 GNSS data exchange method and system based on isomorphic multi-core multi-operating system

Publications (2)

Publication Number Publication Date
CN114035204A CN114035204A (en) 2022-02-11
CN114035204B true CN114035204B (en) 2025-08-01

Family

ID=80141751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111237156.8A Active CN114035204B (en) 2021-10-22 2021-10-22 GNSS data exchange method and system based on isomorphic multi-core multi-operating system

Country Status (1)

Country Link
CN (1) CN114035204B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216814A (en) * 2007-12-26 2008-07-09 杭州华三通信技术有限公司 Communication method and system of multi-nuclear multi-operating system
CN106772486A (en) * 2017-02-17 2017-05-31 上海华测导航技术股份有限公司 A kind of GNSS receiver board based on ZYNQ frameworks

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829769B2 (en) * 2000-10-04 2004-12-07 Microsoft Corporation High performance interprocess communication
CN102183771B (en) * 2011-03-21 2013-02-20 华南理工大学 Realizing method of multi-mode GNSS (Global Navigation Satellite System) software receiver based on multi-core processor
CN108318028B (en) * 2017-12-20 2021-10-15 中国航空工业集团公司西安航空计算技术研究所 Design method of navigation system core processing circuit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216814A (en) * 2007-12-26 2008-07-09 杭州华三通信技术有限公司 Communication method and system of multi-nuclear multi-operating system
CN106772486A (en) * 2017-02-17 2017-05-31 上海华测导航技术股份有限公司 A kind of GNSS receiver board based on ZYNQ frameworks

Also Published As

Publication number Publication date
CN114035204A (en) 2022-02-11

Similar Documents

Publication Publication Date Title
US9980094B2 (en) Method for handling position data in a mobile equipment, and a mobile equipment having improved position data handling capabilities
KR20170090957A (en) Apparatus and method for location determining of electronic device
US20230061599A1 (en) Positioning method, electronic device and storage medium
JP2015528113A (en) GPS positioning method for mobile terminal and mobile terminal
CN110958059B (en) Testing device, system and method of satellite receiver
CN103792560B (en) Satellite positioning method, apparatus and system
KR20180126259A (en) Method and apparatus for providing information based on proximity
EP4290895A1 (en) Method for controlling a positioning chip and electronic device
US20190364245A1 (en) Electronic device for performing video call and computer-readable recording medium
KR20170057993A (en) Apparatus and method for tracking position thereof
CN114035204B (en) GNSS data exchange method and system based on isomorphic multi-core multi-operating system
CN111258917A (en) Software testing system, method and apparatus, computer readable storage medium
Jones et al. Horizontal accuracy assessment of global positioning system data from common smartphones
CN113691937A (en) Method for determining position information, cloud mobile phone and terminal equipment
CN111158033B (en) Differential positioning method, device, equipment and storage medium based on GNSS
KR101260483B1 (en) System and method for providing virtual memo pad based on location based service
CN114036100A (en) Data transmission method of GNSS data application interface based on multi-core multi-operating system
CN102594847A (en) Integrated GNSS (Global Navigation Satellite System) CORS (Continuously Operating Reference System) server
US10511677B2 (en) Information processing method, information processing device, and information processing system
CN119511327B (en) Positioning method and system based on Beidou communication
CN114111763B (en) Inertial RTK measurement system
CN116437444B (en) A beacon-based target positioning method, medium and electronic equipment
CN102694749A (en) Method, client and system for indicating direction of contact object in instant messaging
US7818126B2 (en) Communication method and communication system
CN219495251U (en) Combined navigation system and vehicle

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Li Rende

Inventor after: Lin Wenhua

Inventor before: Li Rende

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant