Eleven embedded operating systems based on ARM

Publisher:文江桂青Latest update time:2018-02-01 Source: eefocusKeywords:ARM Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

Embedded Operation System (EOS) refers to an operating system used in embedded systems. Embedded systems are divided into four layers: hardware layer, driver layer, operating system layer and application layer. The embedded operating system is responsible for the allocation of all software and hardware resources of the embedded system, task scheduling, control, and coordination of concurrent activities. It must reflect the characteristics of the system in which it is located, and can achieve the functions required by the system by loading and unloading certain modules. It is a widely used system software.

Embedded LINUX

 

Embedded Linux is an operating system that is tailored and modified to run on embedded computer systems. The advantages of Linux as an embedded system are: first, Linux is open source; second, Linux kernel is small, efficient, and can be customized, and its minimum system kernel is only about 134KB; third, Linux is a free OS, and Linux also has many features required by embedded operating systems, the most prominent of which is that Linux is adaptable to a variety of CPUs and hardware platforms, has stable performance, is easy to tailor, and is easy to develop and use. At the same time, the structure of the Linux kernel is very complete in terms of networking, and Linux has the most complete support for the most commonly used TCP/IP protocol in the network. It provides support for 10M, 100M, and 1G Ethernet networks, as well as wireless networks, Token Ring, optical fiber, and even satellites.


Migration steps: 1. Migration of Bootloader; 2. Migration of embedded Linux operating system kernel; 3. Creation of embedded Linux operating system root file system; 4. Writing peripheral Linux drivers on the circuit board.


WinCE


WinCE is the foundation of Microsoft's embedded and mobile computing platform. It is an open, scalable 32-bit embedded operating system. It is an operating system for electronic devices based on handheld computers. It is a streamlined Windows 95. The graphical user interface of Win CE is quite outstanding. WinCE is a multi-threaded, full priority, multi-tasking operating system designed for platforms with limited resources. Its modular design allows it to be customized for user electronic devices from handheld computers to dedicated industrial controllers. The basic kernel of the operating system requires at least 200K of ROM.


Generally speaking, a WinCE system consists of four layers: application, WinCE kernel image, board support package (BSP), and hardware platform. The basic software platform is mainly composed of WinCE system kernel image (OS Image) and board support package (BSP). Because the WinCE system is a system that is closely integrated with software and hardware, even if the CPU processor is the same, if the peripheral hardware on the development board is different, it is still necessary to modify the BSP to complete a new BSP. In other words, the WinCE porting process is mainly the process of rewriting the BSP.


Android


Android is a hierarchical software set specifically for mobile devices, including an operating system, middleware, and some important applications. As a completely open source operating system, Android is a software stack consisting of the Linux operating system, middleware, and core applications. Through the API provided by the Android SDK and the corresponding development tools, programmers can easily develop applications on the Android platform. The entire system consists of five parts: applications, application frameworks, application libraries, Android runtimes, and Linux kernels. The Android operating system has built-in applications, including email clients, SMS programs, calendars, maps, browsers, address books, and other programs. It is worth mentioning that all these programs are written in Java.


The main work of transplantation is the transplantation of drivers and hardware abstraction layers. In order to better understand and debug the system, you should also properly understand the calls of the upper layer to the hardware abstraction layer.


TinyOS


TinyOS is an open source embedded operating system developed by the University of California, Berkeley, and is mainly used in wireless sensor networks. The program adopts a modular design, so its program core is often very small. Generally speaking, the core code and data are about 400 Bytes, which can break through the limitation of sensor storage resources. TinyOS provides a series of reusable components. An application can connect various components through a wiring configuration file to complete the functions it needs.


Embedded Real-Time Operating System (RTOS)


In the fields of industrial control, military equipment, aerospace, etc., there are stringent requirements for the response time of the system, which requires the use of real-time systems. When external events or data are generated, they can be accepted and processed at a sufficiently fast speed, and the processing results can control the production process or respond quickly to the processing system within the specified time, and control the coordinated operation of all real-time tasks. Therefore, the understanding of embedded real-time operating systems should be based on the understanding of embedded systems and add the requirements for response time.


FreeRTOS

Functions include: task management, time management, semaphores, message queues, memory management, and recording functions, which can basically meet the needs of smaller systems. FreeRTOS tasks can choose whether to share a stack, and there is no limit on the number of tasks. Multiple tasks can be assigned the same priority. Tasks of the same priority can be scheduled in round-robin fashion, and can be set to preemptible or non-preemptible cores.


The FreeRTOS porting mainly requires rewriting the following three files: 1. portmacro.h 2. port.c 3. port.asm


μTenux


μTenux is based on the ARM microcontroller platform. It is the most suitable for ARM Cortex M0-M4 series microcontrollers. The code is open source and free. It is a powerful preemptive real-time multitasking operating system. In addition to the general characteristics of real-time embedded operating systems: portability, curability, and scalability, μTenux also has the following advantages: (1) Microkernel. No MMU, small ROM/RAM footprint, maximum ROM 60KB, minimum 10KB; maximum RAM 12KB, minimum 2KB; (2) Open source and free; (3) Supports all 32-bit ARM7/9 and Cortex M series microcontrollers; (4) Can be configured with up to 256 tasks and 140 task priorities; (5) Good commercial support, and the T-Engine forum is responsible for overall maintenance.


The transplantation mainly includes: chip system clock transplantation, peripheral transplantation, general output/input port transplantation and watchdog module transplantation. Considering the importance of kernel code and its significance in the entire transplantation, and in order to make the whole system have better real-time performance, assembly language can be used to write the startup code of the operating system.


VxWorks


The VxWorks system provides efficient semaphores, message queues, pipes, and network-transparent sockets between multiple processors and tasks. Another key feature of real-time systems is hardware interrupt processing. In order to obtain the fastest and most reliable interrupt response, the interrupt service program ISR of the VxWorks system has its own context. The VxWorks real-time operating system consists of more than 400 relatively independent, short and refined target modules. Users can select appropriate modules to tailor and configure the system according to their needs, which effectively ensures the security and reliability of the system. The system's linker can automatically link some target modules according to the needs of the application. In this way, through the on-demand combination of target modules, many applications that meet functional requirements can be obtained.


The porting process can refer to some BSP codes on the Internet. The full name of BSP is board support  PAC kage, which is a board support package. Its function is to provide an operating interface for the VxWorks kernel for special hardware platforms.


μClinux


As an open source operating system, embedded Linux is being widely used for its low price, powerful functions and easy portability. μClinux is an embedded Linux designed specifically for processors without MMU, which is very suitable for the needs of low-end and mid-range embedded systems. Under the authorization of the GNU General Public License, users of the μClinux operating system can use almost all Linux API functions without being affected by the lack of a memory management unit MMU; moreover, μClinux has been appropriately tailored and optimized on the basis of standard Linux to form a highly optimized, compact code embedded Linux, which is small in size but still retains most of the advantages of Linux, such as good stability, powerful network functions, good portability, complete file system support functions, and standard and rich application program interface APIs, etc., which can support a variety of small and exquisite central processors such as ARM7TDMI.


eCos


eCos is translated into Chinese as embedded configurable operating system or embedded configurable real-time operating system. It is suitable for deeply embedded applications, and its main application targets include consumer electronics, telecommunications, vehicle-mounted equipment, handheld devices and other low-cost and portable applications. eCos is a source code development software without any copyright fees. The biggest feature of eCos is modularity and configurable kernel. If embedded Linux is too large, then eCos may be able to meet the requirements. It is a portable open source embedded RTOS for 16-bit, 32-bit and 64-bit processors. Unlike embedded Linux, it is designed by a working group dedicated to designing embedded systems. eCos has quite rich features and a configuration tool that allows you to select the features you need.


The eCos software is divided into several modules, and the porting work is mainly carried out in its HAL layer. The so-called HAL (hardware abstraction layer) brings together hardware-related software.


μC/OS-II

      

Most of the μC/OS-II code is written in ANSI C language, including a small part of assembly code, so that it can be used by microprocessors of different architectures. Its structure is compact and concise and supports preemptive multi-task scheduling and management. This real-time operating system manages up to 64 tasks and provides functions such as internal program memory management, system runtime management, and multi-task real-time scheduling and management. Since its author occupies and reserves 8 tasks, there are up to 56 tasks left for user applications. The priority assigned to each task must be different. This means that μC/OS-II does not support time slice round-robin scheduling. μC/OS-II sets up an independent stack space for each task, which can quickly implement task switching.


To port the μC/OS-II operating system to the target processor, both hardware and software aspects need to be considered. In terms of hardware, the target processor must meet the following conditions:


①The processor's C compiler can generate reentrant code;

②Interrupts can be turned on/off using C language;

③The processor supports interrupts and can generate timed interrupts (usually between 10 and 1000  Hz );

④The processor can support a hardware stack that can accommodate a certain amount of data;

⑤The processor has instructions to read and store the stack pointer and other registers into the stack or memory.


In terms of software, it mainly involves some processor-related code porting, which is distributed in three different files: OS_CPU.H, OS_CPU_C.C and OS_CPU_A.ASM.

Keywords:ARM Reference address:Eleven embedded operating systems based on ARM

Previous article:Stepper Motor Drive Control System Based on ARM9 and QT
Next article:Analysis of Bluetooth CAN Analyzer Based on ARM and Smartphone

Recommended ReadingLatest update time:2024-11-15 14:30

ARM hardware and software handling of exceptions
For IA32 (X86), when an exception is found, the CPU hardware does a lot of things, such as switching SP, CR3, CS, etc. (reading TSS), while for ARM, the processing flow is as follows CPU Hardware: 1 : Save the next instruction where the exception occurs to LR_xxx 2 : Back up the current CPSR to the SP
[Microcontroller]
Use of prefetch command pld in ARM
Kernel version:2.6.14 CPU architecture:ARM920T Recently, I was analyzing copy_from_user of ARM Linux. The main function is implemented by __arch_copy_from_user. This function is defined in the linux/arch/arm/lib/uaccess.S file and is implemented using assembly. Some source codes are as follows:     view plai
[Microcontroller]
Application of ARM-based equal-precision frequency measurement in unit speed measurement and control
  The frequency of the power system reflects the balance between the active power generated by the generator set and the active power required by the load. High-precision and high-reliability frequency measurement plays a vital role in the stable operation of the entire power system. During the start-up and shutdown p
[Microcontroller]
Application of ARM-based equal-precision frequency measurement in unit speed measurement and control
About the coprocessor CP15 and MCR/MRC instructions in ARM9
In ARM-based embedded application systems, the storage system is usually implemented through the system control coprocessor CP15. CP15 contains 16 32-bit registers, which are numbered 0 to 15. Instructions for accessing CP15 registers MCR ARM register to coprocessor register data transfer MRC Coprocessor register
[Microcontroller]
The first instruction after arm power on
There are many similar articles on the Internet, most of which focus on software analysis, from U-boot to kernel. Many articles are also very detailed and insightful. Here, I don't want to talk more about the software mechanism, I'll leave that opportunity to everyone.               I remember an interview at Huawei
[Microcontroller]
The first instruction after arm power on
Quickly learn Arm (12)--Relationship between APB, AHB address and interface
In Quickly Learn Arm (3), I drew a diagram of the LPC2478's memory space. The top two blocks of the memory space are 0xE000 0000 ~ 0xEFFF FFFF (APB) and 0xF000 0000 ~ 0xFFFF FFFF (AHB). These two blocks are about 250M bytes each. Each 250M space is divided into 36 blocks, each of which is about 16K in size. In the L
[Microcontroller]
Quickly learn Arm (12)--Relationship between APB, AHB address and interface
Follow me to write ARM processor part 1: start from writing module arm
I decided to share my experience of writing ARM processors with you. I am not bragging, my core is a very good core. One way to prove it is to download it into FPGA to see if it works. I have already done this method of proof. If you can download the entire project file and modify it slightly, you can verify whether it
[Microcontroller]
Design of ultrasonic distance measurement system based on μC/OS-Ⅱ and ARM
1 Introduction   Ultrasonic waves have strong directivity, slow energy consumption, and can propagate over long distances in a medium, so they are used for distance measurement. Ultrasonic detection is often quick, convenient, simple to calculate, easy to control in real time, and the measurement accuracy can meet i
[Analog Electronics]
Design of ultrasonic distance measurement system based on μC/OS-Ⅱ and ARM
Latest Microcontroller Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号