US20240045672A1 - Embedded terminals remote online development system - Google Patents

Embedded terminals remote online development system Download PDF

Info

Publication number
US20240045672A1
US20240045672A1 US17/761,793 US202117761793A US2024045672A1 US 20240045672 A1 US20240045672 A1 US 20240045672A1 US 202117761793 A US202117761793 A US 202117761793A US 2024045672 A1 US2024045672 A1 US 2024045672A1
Authority
US
United States
Prior art keywords
embedded
program
ide
bios
user
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.)
Pending
Application number
US17/761,793
Other languages
English (en)
Inventor
Yihuai WANG
Lianmin SHI
Xiaofang Zhang
Wangshu YAO
Qiang Liu
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.)
Suzhou University
Original Assignee
Suzhou University
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 Suzhou University filed Critical Suzhou University
Assigned to SOOCHOW UNIVERSITY reassignment SOOCHOW UNIVERSITY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LIU, QIANG, SHI, Lianmin, WANG, Yihuai, YAO, Wangshu, ZHANG, XIAOFANG
Publication of US20240045672A1 publication Critical patent/US20240045672A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Definitions

  • the invention relates to the technical field of software development and debugging, in particular to an embedded terminals remote online development system.
  • the IoT technology generated with the development of the computer technology, the Internet technology and the sensor technology, and is a network that connects any object to the Internet through information sensing devices, in accordance with agreed protocols, for information exchange and communication to achieve intelligent identification, positioning, tracking, monitoring and management, and is an extension and expansion on the basis of the Internet.
  • IoT applications allow various complex terminal devices with different application needs to access the Internet. These terminals are the “source” of the IoT, and embedded terminals are often preferably used as IoT development terminals because they are highly targeted, good in operational capacity and reliability, small in size and good in portability. With the rise of the demand for remote deployment of the terminals, there has been a shift in the development mode of the embedded terminals from local development to remote development in recent years. However, there is little research on remote online development systems for embedded terminals, and a complete system that are compatible with different communication modules and different types of embedded terminals is not available.
  • the software and hardware design of embedded terminals often has a high technical threshold, which is mainly manifested in the following aspects: software and hardware collaborative design is needed, and software, hardware and multi-industry knowledge is involved; some systems have high real-time requirements; many IoT intelligent products must have high anti-interference and stability; and software and hardware joint tests have to be carried out frequently during the development process. Therefore, product development based on embedded terminals is plagued by high costs, long cycles, and difficulty in ensuring the stability. It also puts higher requirements for the comprehensive development ability of technicians. In order to integrate the common elements of embedded terminal development to improve development efficiency, an efficient software and hardware architecture is urgently needed.
  • the invention aims to solve the problem of high development threshold of embedded terminals, give a common hardware and software architecture, design a remote program updating and remote software debugging solution that is compatible with different communication modules to get rid of the dependence of software debugging on additional hardware, and provide a common and efficient IDE.
  • the invention provides an embedded terminals remote online development system, comprising:
  • An embedded terminal, a cloud forwarding platform and an IDE module wherein the cloud forwarding platform establish a communication connection with the IDE module through the Internet, and establishes a connection with a communication module of the embedded terminal through a communication base station; and the IDE module established a connection with the embedded terminal in a wired manner.
  • a hardware platform of the embedded terminal comprises a master chip minimal system, a communication module and a peripheral circuit thereof, a power conversion circuit, and an access sensor.
  • the embedded terminal and the IDE module uplink and downlink data to the cloud forwarding platform with a fixed IP address, and the cloud forwarding platform is response for forwarding data, so that information exchange between the embedded terminal and the IDE module is completed.
  • the IDE module has functions of code editing, code analysis, program compilation, software debugging, software updating, and memory reading/writing.
  • the cloud forwarding platform is response for forwarding data between the embedded terminal and the IDE module.
  • the cloud forwarding platform comprises a cloud server and a developer computer, a server side of an intranet traversal software FRP runs on the cloud server, a client side and a cloud forwarding program of the intranet traversal software FRP run on the developer computer, and an address and a port of the cloud server are mapped onto the developer computer.
  • the code editing function comprises: writing and deleting of codes, line annotation and paragraph annotation of codes, text finding and replacing in files, text finding and replacing in projects, code format unification, and jumping between variable/function declarations and definitions.
  • program compilation function completes program compilation in a GNU cross-compiling mode, with a GCC compiler supporting multiple languages and target device extension as a tool.
  • the IDE module is capable of entering remote updating of embedded terminal software, comprising:
  • the IDE module is capable of entering remote debugging of embedded terminal software, comprising:
  • the invention has the following advantages: the embedded terminals remote online development system with good universality and flexibility is established in combination with a cloud platform, so that the development difficulty of embedded terminals is lowered, repetitive work during development is reduced, the development cycle is shortened, and the development cost is reduced.
  • FIG. 1 illustrates a structural diagram of an embedded terminals remote offline development system according to one implementation of the invention.
  • FIG. 2 illustrates an overall block diagram of an embedded terminal measurement and control system according to one implementation of the invention.
  • FIG. 3 illustrates a model diagram of a cloud forwarding program according to one implementation of the invention.
  • FIG. 4 illustrates a topologic diagram of FRP intranet traversal according to one implementation of the invention.
  • FIG. 5 illustrates a function support diagram of an RO-IDE according to one implementation of the invention.
  • an IDE as the main development site for developers
  • an embedded terminal as the main development object
  • an embedded terminal as the main development object
  • the invention proposes an Embedded Terminals Remote Online Development System (ET-RODS), the architecture of which is shown in FIG. 1 .
  • the embedded terminals remote online development system is mainly divided into three parts: an embedded terminal, a cloud forwarding platform and an IDE.
  • the cloud forwarding platform establishes a communication connection with the IDE through the Internet, and establishes a connection with a communication module of the embedded terminal through a communication base station, thus completing the communication between the IDE and the embedded terminal.
  • Embedded terminal a hardware platform of the embedded terminal typically consists of a master chip minimal system, a communication module and a peripheral circuit thereof, a power conversion circuit and other auxiliary circuits, and constitutes a hardware entity with an information collection and control function, together with an access sensor.
  • the software part of the embedded terminal is used by developers to design and fulfill specific functions with an MCU as the core, and completes the functions of data collection, transmission, storage, control and operation in combination with hardware.
  • the cloud forwarding platform as a bridge of data transmission, connects the embedded terminal to the IDE, is responsible for transmitting instructions from the IDE to the embedded terminal, and is also responsible for feeding the execution condition of the instructions received by the embedded terminal back to the IDE.
  • the cloud forwarding platform is introduced.
  • the cloud forwarding platform is introduced as a data forwarding server with a fixed IP address.
  • the IDE is the main site for software development of embedded terminals and generally has the functions such as code editing, code analysis, program compilation, software debugging and program updating. Under the background of remote online development, the functions such as software debugging and program updating need to establish a communication connection with the cloud forwarding platform to transmit data to the embedded terminals to complete the corresponding functions.
  • the construction of the hardware platform and the design of the software architecture are two core parts of the design of the embedded terminal.
  • the hardware platform provides a basic program running environment for the software architecture, while the software architecture communicates with hardware to ensure that hardware resources are fully used.
  • the invention constructs the hardware platform mainly based on a master chip, a power conversion circuit and communication-related modules, and designs a basic measurement and control system with the aid of the design of external interfaces hardware components.
  • An STM32L431RC chip is selected as the master chip of the embedded terminal.
  • An external power supply for the embedded terminal is generally 5V, and the most typical power supply mode is USB (Universal Serial Bus) power supply; while the operating voltage of the STM32L432RC chip is 3.3V, and most communication modules support a 3.3V supply voltage, so it is necessary to introduce a 5V to 3.3V power conversion chip.
  • a power conversion chip TPS70933 which is low in power consumption and is provided with enable pins is adopted in the invention.
  • An ME3616NB-IoT communication module is selected.
  • Circuits related to the communication module comprise a communication module minimal system, a UART level conversion circuit, an eSIM card circuit, a main antenna and GNSS antenna circuit, and the like. Through the combination of these circuits, the interaction between the MCU and the communication module and the interaction between the communication module and a remote server are realized.
  • ME3616 minimal system circuit the ME3616 minimal system circuit communicates with the MCU in various manners, and selects an UART as a communication interface for AT instructions for data transmission; and the ME3616 minimal system circuit is also connected to an eSIM card and an antenna and is provided with firmware updating and debugging interfaces.
  • the ME3616 communication module does not comprise a SIM card, so a circuit needs to be additionally designed to access to the communication module; and in order to reduce the size, an eSIM card is accessed to the communication module, as a fixed part.
  • Main antenna and GNSS circuit a main antenna and GNNS antenna module is disposed in the ME3616 communication module to improve the signal intensity and positioning accuracy and to facilitate core network attachment, data communication and GPS positioning.
  • the invention provides a remote information transmission function with the MCU as the core, in combination with the ME3616 communication module, and forms the hardware platform based on the power conversion circuit.
  • sensors and actuators can be accessed by means of external interfaces to achieve input and output of signals, thus realizing measurement and control of the measurement and control system, as shown in the FIG. 2 .
  • the input and output of analog and switch quantities together realize the information acquisition and control functions of the measurement and control system, and if the sensors or actuators to be connected to external devices are well packaged, the interface circuit can be designed directly. If the sensors or actuators are not packaged, the packaging design of corresponding circuits should be completed first in accordance with the component-based design idea, and then the interface circuit is designed to ensure the portability and reusability of peripheral modules.
  • an LCD screen of the external devices exchanges information with the MCU mainly through SPI communication, while the communication module in the hardware platform exchange information with the MCU through serial communication (UART), both of which require the design of corresponding interface circuits according to the corresponding communication modes.
  • the analog input and output device and the switch input and output device both adopt a three-wire connection mode, which is realized by means of a power pin, a ground pin and a function pin respectively.
  • the parameters of the power pins should be reasonably designed.
  • the LCD screen carries out data exchange through SPI communication with the MCU, so in addition to an MISO pin, an MOSI pin and a CLK pin of SPI, a BLK pin, a DC pin and an RES pin should be connected to GPIO function pins in the MCU, to fulfil the functions such as resetting, backlight, and data/command selection of the LCD screen, and an eight-pin peripheral interface is formed together with a power line and a ground line.
  • This invention adopts the design idea of the GEC software architecture to design the software architecture of the embedded terminal.
  • the following will elaborate the design of the GEC software architecture under an STM32L431RC chip in three aspects of project division, space division and function division.
  • the GEC software architecture is divided into two parts: a BIOS project and a User project.
  • BIOS project the BIOS project is a relatively fixed and complete project, and developers do not need to consider the specific implementation of the BIOS project, and cannot interfere with the BIOS project either.
  • the BIOS project provides a stable environment to which the User project can return, and the BIOS project is a running basis for the rich functions of the GEC architecture.
  • BIOS Project directory Description 01_Doc Document folder storing project-related explanatory documents 02_CPU Core folder, containing chip core-related documents 03_MCU MCU-related document folder . . ./mcu.h MCU-related basic information, macro constants, etc. . . ./Linker_file Link folder, containing link script inventions . . ./MCU_drivers Underlying driver files, mainly flash, gpio and uart, including corresponding header files and source files . . ./Startup Chip startup files, including chip startup files, header files, etc.
  • 04_GEC Architecture-related documents containing information such as definitions and macro constants for the core functions of the architecture 05_UserBoard Application driver files, such as emuart components and ueupdate components 06_SoftComponent Software driver files, such as TypeConversion components, OS resident files 07_NosPrg Project main program folder without operating system . . ./includes.h Project header file . . ./isr.c Interrupt handling file . . ./main.c Main function execution file Debug Compiling debug information files
  • 04_GEC Architecture-related documents containing information such as definitions and macro constants for the core functions of the architecture 05_UserBoard Application driver files, such as emuart components and printf components 06_SoftComponent Software driver files, such as operating system function interface files 07_AppPrg Project main program folder . . ./includes.h Project header file . . ./isr.c Interrupt handling file . . ./main.c Main function execution file, with operating system being started or not started . . ./threadauto_appinit.c Operating system example files, which can be deleted as required Debug Compiling debug information files
  • the User project is truly a developed project that can be directly programmed by the developer without the perception of BIOS.
  • the User project is just a general project reserved with a clear folder structure and rich optional functions.
  • interrupt vector tables of the BIOS and the User project are read, and a sector where the interrupt vector table of the User project is located is erased;
  • an address table entry of a serial interrupt handling function, which is used for program updating of the User project, in the interrupt vector table of the BIOS project is copied to a corresponding position of the interrupt vector table read out from the User project, and is written back into the corresponding sector.
  • a global interrupt vector table pointer of the system is modified to point to the interrupt vector table of the User project.
  • the storage space of the MCU is divided into two main parts: Flash and SRAM, so the space division of the GEC software architecture is described in terms of these two parts: Flash and SRAM.
  • Flash partition of the chip the Flash of the chip is divided into a BIOS zone and a User zone, wherein the BIOS zone is divided into five parts: an interrupt vector table, a main code area, a dynamic command area, a component function list area and a component function code area, and the User zone is divided into an interrupt vector table and a main code area.
  • the interrupt vector table of BIOS stores the addresses of interrupt service routine functions corresponding to all interrupts;
  • the main code area is a Flash space occupied by a common project and mainly contains functions and necessary data in the project;
  • the dynamic command area is a piece of Flash space reserved for dynamic injection of temporary codes and is part of the dynamic command system;
  • the component function list area is used to store call addresses of all functions in a dynamic component library; and the component function code area is used to store specific implementations of these functions, and is part of the dynamic component library.
  • the function list area is used to store call addresses of the functions in the dynamic library, the function code area is used to store concrete implementations of these functions, and both the function list area and the function code area are one part of the dynamic library.
  • the interrupt vector table and the main code area in User correspond to the interrupt vector table and the main code area in BIOS and have the same functions as the interrupt vector table and the main code area in BIOS.
  • SRAM partition of the chip the SRAM space in the chip is also used by both BIOS and User.
  • the SRAM space is divided into a data segment, a bss segment, a heap segment and a stack segment, wherein the data segment stores global variables and static variables that have been initialized and have a value which is not zero; the bss segment stores global variables and static variables that have not been initialized or initialized and have a value of 0;
  • the heap segment is generally allocated and freed dynamically by a programmer, for example, a space is dynamically applied and freed in a stack area using a malloc or free function in the C language; the stack segment is automatically allocated by a compiler and holds local variables and parameters in functions; and the data segment, the bss segment and the heap segment are arranged from a low address to a high address, while the stack segment is allocated downwards from a high address.
  • the SRAM space of the MCU is limited relatively and is affected by the field allocation manner of the SRAM space, to ensure a zero crossover of the SRAM space of BIOS and User, the SRAM space has to be divided into two parts, which not only increases the design difficulty of BIOS (seeking for the smallest SRAM occupation for BIOS), but also inevitably leads to a waste of SRAM in BIOS.
  • BIOS still occupies the entire SRAM space, while the SRAM start address of User is set behind the bss segment of BIOS. In this way, before BIOS jumps to User, BIOS occupies the ensure SRAM space because the User program does not run at this time; after BIOS jumps to User, BIOS no longer uses the heap and stack segments, and User makes full use of the SRAM space that is no longer be used by BIOS. Thus, the SRAM space is used to the maximum extent.
  • the function division of the GEC architecture is performed mainly in two aspects: the BIOS project and the User project.
  • BIOS project Functions of the BIOS project: the functions of the BIOS project are divided into two main parts, one is the injection and operation of dynamic functions based on the dynamic command system, and the other is the updating, resetting, termination and guidance of local programs of the User project.
  • the updating of the local programs of the User project means that BIOS obtains a machine code of the User project through a certain communication method (generally serial communication) and writes the machine code into Flash from a start address of a specified User program area after erasing an old version of the project.
  • a certain communication method generally serial communication
  • the program cannot update itself while running, so when there is a need to update the User project, the running environment of the system will be switched from the User project to the BIOS project, and the BIOS project is responsible for subsequent reception, verification and writing of the machine code.
  • the main steps for updating the local programs of the User project are as follows:
  • the integrated development environment (hereinafter referred to as IDE) sends a handshake signal to a serial port of a target chip; the target chip gives a response to the handshake signal from the IDE; the IDE sends main information of this update to the target chip, and after receiving the main information, the target chip prepares to terminate and erase the current User, and gives feedback; the IDE starts to send data frames to the target chip, and only when receiving the feedback from the target chip on the current frame, the IDE will continue to send a next data frame; after receiving the last data frame with a special mark, the target chip will perform a check, and when the check is correct, a hot reset will be performed; and the BIOS project carries out subsequent guidance on the User project.
  • IDE The integrated development environment
  • BIOS when the IDE sends main update information to the chip, a variable marking the update state in BIOS will be modified within a serial port interrupt, and a soft reset function of a core is called to pull the chip back to BIOS. Before a regular User program jump is executed, a gcUpdateFlag variable will be detected, so that the User program will not jump and will stay in BIOS to run.
  • the chip may stop running because of unpredictable errors of the user project.
  • the chip may be hot reset back to the BIOS project by means of a key reset and the User project is re-guided.
  • the chip may resume normal running only for a short period of time by a reset because the error of the User project still exists, which makes it difficult to ensure that the User project can be updated properly by the chip.
  • the current User project has to be terminated, which, in the GEC architecture of STM32, is achieved by quickly and successively triggering the key reset of the chip six times, so that the BIOS project will no longer guide the User project, and the User project will stay in the BIOS project and will not run until a next User project update.
  • the time of key reset is controlled here to eliminate the dependence on a timer, which allows more resources to be reserved for the specific application development of the User program, mainly by giving a one-second delay consisting of a cycle after each key reset, and a button for the next key reset must be pressed within this second, otherwise if the total number of key resets is less than six after this delay, the number of key resets will be cleared and will not retained in the BIOS, and vice versa.
  • the User project may be re-guided by the BIOS project by means of a cold reset on the target chip under the condition that the User project is not updated.
  • the guidance on the User project means that the target chip runs in the BIOS project in the initial stage and will jump from the BIOS project to the User project to run when the BIOS project detects the presence of the User project or the BIOS project just completes a download or update of the User project.
  • a first 32-bit constant (Main Stack Pointer, MSP) in the start address of the User project should also be read and compared with the maximum value of the SRAM space of the chip; if the first 32-bit constant is the same as the maximum value of the SRAM space of the chip, it indicates that the User project has been written, and a jump can be carried out.
  • Functions of the User project the functions of the User project, which is directly programmed by developers, are determined by the developers, and common functions during embedded development include the collection and storage of sensor data, the connection and data sending and receiving of the cloud forwarding platform, and the operation of a hardware actuator.
  • FIG. 3 A model of the cloud forwarding program is shown in FIG. 3 .
  • the cloud forwarding program mainly involves two ports, one of which is for the embedded terminal and the other one for the IDE.
  • the main function of the cloud forwarding program is to forward data between the embedded terminal and the IDE, without any data processing.
  • FRP Fast Reverse Proxy
  • the network principle for using FRP intranet traversal may be understood with reference to FIG. 4 .
  • Developers can install the cloud forwarding program on their own computer and also install an FRP client software on this computer, and the FRP client software establishes a connection with an FRP server software on the cloud server.
  • the FRP server software maps the cloud forwarding program on an intranet to a public IP of the cloud server.
  • the developer computer accessing the extranet, and the cloud server together form a new cloud forwarding platform to provide services for the embedded terminal and the IDE.
  • both the embedded terminal and the IDE can access the cloud forwarding program running on the developer computer in the same way as accessing the public IP.
  • the invention develops a remote online integrated development environment (RO-IDE) based on the ET-RODS model.
  • RO-IDE remote online integrated development environment
  • the following will give a design method in four aspects: functional support, basic functional design, core functional design and extended functional interface design.
  • the IDE is a set of modules related to software development functions.
  • An IDE for embedded application development often needs to have the functions such as project management, cross-compilation, cross-debugging and program download.
  • existing IDEs have the programs of difficulties in configuration, poor chip versatility and poor compilation adaptability, and few solutions are available for remote online development of different chips for different communication modules. Therefore, the invention provides an RO-IDE for embedded application development.
  • the functional support of the RO-IDE is also divided into three corresponding parts: main functional support provided by an RO-IDE software architecture on a general-purpose computer, operational execution support provided by the BIOS program of the embedded terminal, and remote communication support provided by the cloud forwarding program, as shown in FIG. 5 .
  • the software architecture on the general-purpose computer may either directly exchange information with the embedded terminal via a wired connection such as serial communication for local development, or remotely and wirelessly exchange information with a terminal node by using the cloud forwarding program of the cloud forwarding platform as a bridge.
  • the RO-IDE software architecture on the general-purpose computer is typically divided into three parts: basic functions, core functions and extended functions.
  • the basic functions mainly include code editing, program compilation and memory reading/writing;
  • the core functions mainly include program updating and software debugging;
  • the extended functions complete the access of additional functions by means of extended function interfaces.
  • the cloud forwarding program of the cloud forwarding platform as the bridge between the RO-IDE and the BIOS program of the terminal node, and is mainly responsible for transmitting information between these two when memory reading/writing, program updating and software debugging are carried out remotely.
  • the BIOS program in the terminal node is reserved with an interface for interaction with the RO-IDE to assist the RO-IDE to perform memory reading/writing, program updating and software debugging for the user program.
  • the RO-IDE is a graphical software written in the C# language and has some basic functions for completing embedded application development such as project import and closure, code editing, project directory management, program compilation, and memory reading/writing. Design details for code editing, program compilation and memory reading/writing will be expounded below.
  • the code editing functions mainly include writing and deleting of codes, line annotation and paragraph annotation of codes, text finding and replacing in files, text finding and replacing in projects, code format unification, and jumping between variable/function declarations and definitions.
  • the invention modifies the functions such as text finding and replacing and jumping between variable/function declarations and definitions based on the use of an open source control ICSharpCode, in terms of the background requirements of embedded application development.
  • functions such as text finding and replacing and jumping between variable/function declarations and definitions based on the use of an open source control ICSharpCode, in terms of the background requirements of embedded application development.
  • multi-threading is used to improve the finding efficiency when specific texts are to be found, and regular expressions are used to fulfill the functions such as case-sensitive and full-word matching finding.
  • the RO-IDE uses a GCC (GNU Compiler Collection) compiler, which supports multiple languages and target device extension, as a tool to complete program compilation in a GNU cross-compilation mode.
  • GCC GNU Compiler Collection
  • a GNU suite provides a Make tool to shield GCC instructions and to rely on Makefile.
  • the Makefile defines compilation and connection rules, specifies the order in which different files are compiled, and controls the generation process of an underlying program from a source code file to an executable file.
  • the Makefile also specifies target files, dependency files and corresponding control instructions generated by compilation.
  • Makefile template considering the universality to different chips, the RO-IDE provides a common Makefile template for different chips, so that the program compilation of the RO-IDE has certain chip adaptability.
  • the main format is shown in Table 5-6.
  • Memory reading/writing is a practical tool for developers to check the storage space of the current embedded terminal and is also a simple application of dynamic commands.
  • the main operating logic of memory reading/wiring is as follows: after a connection between software on the general-purpose computer and the BIOS program of the embedded terminal is established, the software on the upper computer sends a dynamic command package for memory reading/writing to the BIOS program and requests an address range of the currently accessible memory space of the embedded terminal to the BIOS program, which is received by the upper computer and fed back in the graphical interface. At this point, the users start issue a reading/writing request to check or modify the contents of the corresponding memory space.
  • RO-IDE The core functions of RO-IDE include remote updating and debugging of embedded terminal software.
  • a method for remote updating of the embedded terminal software comprises:
  • a method for remote debugging of the embedded terminal software comprises:
  • Hex files are selected as target machine code files, which have the advantages of being smaller, easier to transfer and easier to parse than Elf files.
  • the Elf files are recoded, with line as a unit and colon as a start symbol, sequentially according to length, offset, record type, valid data and checksum. data and checksum.
  • the parsing of the Hex files is illustrated in Table 5-7 with specific examples.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
US17/761,793 2021-04-29 2021-10-09 Embedded terminals remote online development system Pending US20240045672A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202110472342.3 2021-04-29
CN202110472342.3A CN113110859B (zh) 2021-04-29 2021-04-29 一种嵌入式终端远程在线开发系统
PCT/CN2021/122780 WO2022227411A1 (zh) 2021-04-29 2021-10-09 一种嵌入式终端远程在线开发系统

Publications (1)

Publication Number Publication Date
US20240045672A1 true US20240045672A1 (en) 2024-02-08

Family

ID=76720397

Family Applications (1)

Application Number Title Priority Date Filing Date
US17/761,793 Pending US20240045672A1 (en) 2021-04-29 2021-10-09 Embedded terminals remote online development system

Country Status (3)

Country Link
US (1) US20240045672A1 (zh)
CN (1) CN113110859B (zh)
WO (1) WO2022227411A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113110859B (zh) * 2021-04-29 2024-05-17 苏州大学 一种嵌入式终端远程在线开发系统
CN113741411B (zh) * 2021-11-08 2022-02-01 西安热工研究院有限公司 一种分散控制系统全局变量点产物文件生成方法和系统
CN114518868B (zh) * 2022-02-15 2023-09-22 中航机载系统共性技术有限公司 一种嵌入式开发方法、装置、设备及介质
CN115086169A (zh) * 2022-05-23 2022-09-20 宿迁学院产业技术研究院 一种基于5g nr的远程程序更新方法和系统
CN116455868B (zh) * 2023-03-29 2023-11-07 成都康胜思科技有限公司 一种基于泛域名解析加私有协议内网穿透的集成服务系统
CN116560658B (zh) * 2023-06-29 2024-02-06 睿思芯科(深圳)技术有限公司 基于云技术的芯片集成开发系统
CN117032742B (zh) * 2023-07-07 2024-05-28 长园智联科技(珠海)有限公司 一种输电线路边与端监测设备的软件升级方法及系统
CN117376229B (zh) * 2023-12-08 2024-02-06 成都菁蓉联创科技有限公司 基于嵌入式设备的ftp文件系统软件交叉调试方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497456A (en) * 1992-12-31 1996-03-05 Intel Corporation Apparatus for transferring information between an interrupt producer and an interrupt service environment
US20070043833A1 (en) * 2005-08-22 2007-02-22 Inventec Corporation Computer platform system program remote upgrading control method and system
CN102855151B (zh) * 2012-08-21 2016-06-08 武汉电信器件有限公司 不打断业务的光模块固件在应用升级方法
CN106952425B (zh) * 2017-02-15 2019-05-14 深圳市新国都支付技术有限公司 一种终端远程升级方法和pos终端
CN111756858B (zh) * 2020-07-03 2023-05-26 潍柴动力股份有限公司 嵌入式设备的远程开发处理系统、方法及装置
CN112416443A (zh) * 2020-11-16 2021-02-26 苏州大学 实现实时操作系统在嵌入式架构下的驻留方法
CN113110859B (zh) * 2021-04-29 2024-05-17 苏州大学 一种嵌入式终端远程在线开发系统

Also Published As

Publication number Publication date
CN113110859B (zh) 2024-05-17
CN113110859A (zh) 2021-07-13
WO2022227411A1 (zh) 2022-11-03

Similar Documents

Publication Publication Date Title
US20240045672A1 (en) Embedded terminals remote online development system
US7155381B2 (en) Module for developing wireless device applications using an integrated emulator
US8028268B2 (en) System and method for building software package for embedded system
US7669186B2 (en) Debugging applications at resource constrained virtual machines using dynamically installable lightweight agents
US8473971B2 (en) Type inference and type-directed late binding
US20030236657A1 (en) Method of developing wireless device applications using an integrated emulator and an IDE
CN101667154A (zh) 用于改善片上仿真系统中高级语言的仿真速度的装置和方法
CN102364433B (zh) 在ARM处理器上实现Wine构建工具移植的方法
KR20050024827A (ko) 타겟 시스템 기반 소스 프로그램 개발장치 및 방법
Lacamera Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems
CN102722438B (zh) 一种内核调试的方法和设备
CN100570560C (zh) 启动芯片软件版本信息设置方法和装置
CN116301880A (zh) 微控制单元中的指令响应方法、装置、电子设备及介质
KR20050074766A (ko) 자바 프로그램의 처리 속도를 향상시키는 시스템 및 그 방법
CN109542464B (zh) IoT设备脚本程序的开发部署系统、方法及存储介质
CN111552480B (zh) 跨平台编译方法、装置、设备及可读存储介质
KR100403195B1 (ko) 웹 기반 인서킷 에뮬레이터, 이를 이용한 타겟 임베디드시스템의 웹 기반 개발 시스템 및 방법
US20060080636A1 (en) Method of building intelligent platform management interface firmware architecture
KR101394225B1 (ko) 다중 언어로 개발된 어플리케이션을 위한 프로파일링 수행 시스템 및 이를 이용한 프로파일링 방법
Saillard et al. Parcoach extension for static mpi nonblocking and persistent communication validation
Kurniawan et al. Introduction to wireless sensor networks
Lee et al. Integrated IoT programming with selective abstraction
Devadithya et al. C++ reflection for high performance problem solving environments
CN111625447A (zh) 测试方法及装置、电子设备、计算机可读存储介质
CN105573818B (zh) 一种虚拟化环境中的windows内核基地址及编译版本识别方法

Legal Events

Date Code Title Description
AS Assignment

Owner name: SOOCHOW UNIVERSITY, CHINA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WANG, YIHUAI;SHI, LIANMIN;ZHANG, XIAOFANG;AND OTHERS;REEL/FRAME:059308/0436

Effective date: 20220305

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION