Embedded development concepts, development platforms and application areas

Publisher: EAIOT Time: 2023-04-19 Category: IOT 479Views 2Comments

Embedded development means development under an embedded operating system, including hardware and software as well as integrated development under systematic design guidance. In addition to the EDA development of separate hardware for the time being, the focus is on the systematic design and software development under certain hardware conditions.


I. Definition of embedded development

Embedded development refers to the use of discrete components or integrated devices for circuit design, structural design, then software programming (usually high-level language), experiments, after many rounds of modification design, production, and finally complete the development of the entire system. This kind of embedded development is suitable for future systems where the product is relatively homogeneous, the production volume is relatively large, the product development cycle is relatively long and the cost control is relatively strict.


Embedded technology is not just a software technology, nor just a hardware technology, but a comprehensive technology of how to develop and build a specific programmable software system on a specific hardware environment. Embedded technology was born out of the development of embedded systems, and it is the core driving force that is dependent on embedded systems and drives them forward. An embedded is a dedicated computer system that is used as part of a device or equipment. Typically, an embedded system is an embedded processor control board with the control program stored in ROM. Virtually all devices with digital interfaces, such as watches, microwave ovens, VCRs, cars, etc., use embedded systems, and some embedded systems also contain operating systems, but most embedded systems implement the entire control logic from a single program. Embedded technology has been developed rapidly in recent years, but the embedded industry involves a very wide range of fields, and the characteristics of each other are quite obvious. For example, many industries: mobile phones, PDA, car navigation, industrial control, military, multimedia terminals, gateways, digital TV, etc.


II. the mainstream embedded development platform

There are three mainstream embedded platforms: ARM platform, DSP platform and FPGA platform.

1、ARM

ARM microprocessor is provided by ARM IP (Intellectual Property, intellectual property) license, delivered to a number of chip design manufacturers to integrate the production. In 2007, STMicroelectronics (ST) became the first semiconductor manufacturer to introduce the ARM Cortex-M license, opening a new era of high-performance, low-cost, low-power ARM embedded chips, and its STM32 series microprocessors are the most popular Cortex-M microprocessors. ARM embedded systems are widely used in automatic detection and control, intelligent ARM embedded systems are widely used in automatic detection and control, intelligent instrumentation, mechatronics equipment, automotive electronics and daily consumer electronics, and their superior performance and perfect development environment are favored by the majority of electronic engineers.

2、DSP platform

Embedded Digital Signal Processor (EDSP) is a processor dedicated to signal processing, with a special design in terms of system structure and instruction algorithms. The DSP instructions can be used to quickly implement various digital signal processing algorithms, with high compilation efficiency and instruction execution speed, and has been used in a large scale in various instruments such as digital filtering, FFT and spectrum analysis.

3、FPGA platform

With the emergence of platform-level FPGA products and the continuous development of EDA design tool software, using existing FPGAs and EDA tools, one can also easily embed RISC (Reduced Instruction Set Computer) processor cores, DSP algorithms, memories, dedicated ASIC modules, and Other digital IP cores and customised logic can be built into a programmable System on Chip (SOPC), integrating into a single FPGA all the functions that would otherwise require a processor, DSP and several ASIC chips on a PCB.

Rich multiplier (DSP) resources, high-speed transceiver (GTP/GTX) resources, Ethernet MAC resources, embedded processor (Power PC) resources, clock and phase-locked loop resources, memory (BRAM) resources, and even ARM resources are embedded in Xilinx's newly launched Zynq-7000 series chips, transforming the traditional FPGA into an ARM-based system. These embedded hardware resources greatly enhance the development of traditional FPGAs into an ARM+FPGA extended development platform. These embedded hardware resources greatly enhance the functionality of traditional FPGAs and improve the efficiency and flexibility of FPGAs, making a single FPGA platform suitable for a wide range of products and extensions. Developers only need to master hardware description language such as Verilog HDL and related knowledge of embedded system development to program and control the whole system.


III. the hardware environment requirements for embedded development

(1) Embedded processor: MPU, DSP.

(2) Memory system: Flash+RAM+MEM card+mini HD.

Embedded system is different from the general-purpose computer system, it does not have a large-capacity storage medium like hard disk, but uses static volatile memory (RAM, SRAM), dynamic memory (DRAM) and non-volatile memory (ROM, EPROM, EEPROM, FLASH) as the storage medium, of which FLASH, with its erasable times, fast storage speed FLASH has been widely used in the embedded field due to its advantages such as more erasable times, fast storage speed, large storage capacity and low price.

(3) Input devices: keyboard, video/audio input, A/D.

(4) Output devices: display (LED/LCD/OLED) devices, video/audio output, A/D.

(5) Communication interfaces: Ehternet (802.3), WIFI (802.11).

(6) Bus interfaces: RS232/RS485, USB, 1394 (Firewire).

(7) Power management: standby, hibernation, power management, etc.

The choice of hardware platform for embedded development is mainly the choice of embedded processor. The choice of processor in a specific application determines its market competitiveness. The kind of embedded processor used in a system depends mainly on the application area, the user's needs, the cost, the ease of development and other factors. The selection of the most suitable hardware platform is a complex task during development, including the need to consider other engineering influences and the lack of complete or accurate information.


IV. The architecture of embedded development

The standard embedded development architecture has two main systems: CISC (Complex Instruction Set Computer) and RISC (Reduced Instruction Set Computer).

Early CPUs were all CISC architectures, which were designed to perform the required computing tasks with a minimum number of machine language instructions. This architecture increased the complexity of the CPU architecture and the requirements of the CPU process, but was very beneficial for the development of compilers. Only Intel and its compatible CPUs still use the CISC architecture; the RISC architecture requires software to specify the individual steps of operation, reducing the complexity of the CPU and allowing more powerful CPUs to be produced at the same process level, but with higher requirements for compiler design. The predominantly RISC processor is the RISC processor.

The RISC architecture is in a very broad camp, from ARM and MIPS to PowerPC, ARC and Tensilica, all of which fall into the RISC processor category. CISC and RISC are gradually converging, with the Pentium Pro, Nx586 and K5 being obvious examples. The Pentium Pro, Nx586 and K5 are clear examples where the kernel is based on the RISC architecture, accepting CISC instructions and then classifying them into RISC instructions so that redundant instructions can be executed at the same time.



V. the process of embedded development

At present, embedded development has been gradually standardized, on the basis of following the general engineering development process, embedded development has some characteristics of its own. Mainly includes system requirement analysis (requires strict specification of technical requirements), architecture design, hardware, software and mechanical system design, system integration, system testing, and finally get the product.

(1) System requirement analysis. Determine the design task and design objectives, and refine the design specification as a formal design guide and acceptance standard. The requirements of the system are generally divided into two aspects: functional requirements and non-functional requirements. Functional requirements are the basic functions of the system, such as input and output signals, operation methods, etc.; non-functional requirements include system performance, cost, power consumption, volume, weight and other factors.

(2) Architecture design. Describes how the system will achieve the stated functional and non-functional requirements, including the functional division of hardware, software and actuators, as well as the software and hardware selection of the system. A good architecture is critical to the success of the design.

(3) Hardware/software co-design. Based on the architecture, the software and hardware of the system are designed in detail. In order to shorten the product development cycle, the design is often done in parallel. Most of the work of embedded system design is focused on software design. Object-oriented technology, software component technology and modular design are methods often used in modern software engineering.

(4) System integration. Integrating the system's software, hardware and execution devices together, debugging, and finding and improving errors in the unit design process.

(5) System testing. The designed system is tested to see if it meets the functional requirements given in the specification.

The most important feature of the embedded system development model is the integrated development of software and hardware. This is because the embedded product is a combination of software and hardware, software for hardware development, solidification, can not be modified .


VI. the main features of embedded development

Embedded system is generally agreed to the definition of domestic: computer technology-based, application-centric, software, hardware can be cut, suitable for the application system for functional reliability, cost, volume, power consumption strict requirements of professional computer systems. In terms of composition, embedded system takes microprocessor and software as core components, both of which are indispensable; in terms of characteristics, embedded system has the characteristics of being easily and flexibly embedded into other application systems, that is, it has strong embeddedness.

According to the type of embedded microprocessor, embedded system can be divided into embedded microcontroller system with microcontroller as the core; embedded computer system with industrial computer board as the core; embedded digital signal processor system with DSP as the core; embedded SOPC (System On a Programmable Chip, programmable system on chip) system with FPGA as the core. System on a Programmable Chip) system, etc.

Embedded systems have a lot of overlap with traditional microcontroller systems and computer systems in terms of meaning. In order to facilitate the distinction, in practical applications, embedded systems should also have the following three characteristics:

(1) the microprocessor of the embedded system is usually composed of 32-bit and above RISC (Reduced Instruction Set Computer, streamlined instruction set computer processor), such as ARM, MIPS, etc.

(2) The software system of embedded system is usually with embedded operating system as the core, plus user applications.

(3) Embedded system has obvious embeddability in characteristics.


VII. the key technology of embedded development

1. Relevant technologies in the development process

In the development process of embedded system, it mainly includes the development of host and target machine, the host machine can compile, address and link the code in the embedded system for execution, while the target machine is the hardware platform in the embedded system. In the development of the embedded system, the application needs to be converted into the corresponding binary code, which can be run on the target machine. In the above development process, it can be divided into three main steps, which are compilation process; linking process and addressing process, among them, the embedded system cross-compiler can compile, cross-compiler belongs to a computer platform code generation compiler, the more common cross-compiler is GNU C/C++ (gcc), it will compile all the completed target file and a target file This is the linking process. The addressing process specifies the physical memory address at each offset of the target file and the file generated during the addressing process is the binary file. In the debugging process of embedded system, the cross-debugger is mainly used to carry out debugging, and the debugging method usually adopts the host-target situation, and the connection between the host and the target is realized through Ethernet or serial port line. In the debugging process, the system kernel and application programs stored in the host computer need to be downloaded to the RAM or ROM of the target machine respectively. When the target machine is running, it will receive the debugger control command from the host machine, and cooperate with the debugger to download, run and debug the application, and then send the debugging information to the host machine.

2. Software porting technology

In the embedded system development, software migration technology is undoubtedly one of the key technologies, which is to complete the software function migration with the migration protocol, which mainly includes three parts, namely byte order, byte alignment and bit space allocation. In the byte order, the existing byte order mainly includes small bytes and large bytes. The small byte order is based on the order of data arrangement in the storage address, i.e. the low address is used to store the low byte data and the high address is used to store the high byte data. The big-endian byte order is exactly the same as the small-endian byte order. In terms of byte alignment, there are many existing byte alignment methods, which mainly use the MakeFile command in GCC to compile bytes and then align them, but this alignment method has some defects, so it is necessary to add the corresponding unpacking and grouping functions in the incoming and outgoing data locations respectively, so as to improve the interoperability and portability of software in embedded systems. This improves software interoperability and portability in embedded systems. Bit space allocation is also an important factor in software migration techniques, and is usually done from left to right, or right to left in some systems. The bit sequencing ensures that the embedded system saves the data accurately and uses programming methods to compile the bit sequencing so that only the corresponding program needs to be called directly during the bit sequencing process.


VIII. embedded development of the main considerations

Embedded systems are dedicated computer systems with practical applications as the main consideration. Embedded is characterised by configurable hardware and software, reliable functionality, low cost, small size, low power consumption and high real-time performance. Therefore, embedded systems are bound by the function and specific application environment, and their development process is different from general-purpose computer systems. The following factors must be considered in the design and development of embedded systems:

-reliable and practical functionality and ease of upgrading;

-real-time concurrent processing and timely response;

-Complying with the required size and compact structure

-Interfaces conform to specifications and are easy to operate;

-Configuration and stability, easy maintenance;

-Strictly managed power consumption, low cost.


Tags: Embedded

Related Article