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's kernel is small, efficient, and customizable, with a minimum kernel size of only about 134KB; third, Linux is a free OS, and Linux also has many features required for embedded operating systems, most notably Linux is adaptable to a variety of CPUs and hardware platforms, with stable performance, good tailorability, and easy development 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 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 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 APIs and corresponding development tools provided by the Android SDK, programmers can easily develop applications on the Android platform.
The entire system consists of five parts: application, application framework, application library, Android runtime, and Linux kernel. 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 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 profile to complete the functions it needs.
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 is a small embedded system with a mini operating system kernel. As a lightweight operating system, its functions include: task management, time management, semaphores, message queues, memory management, recording functions, etc., 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. Round-robin scheduling of tasks of the same priority can be set as a preemptive kernel or a non-preemptive kernel.
μ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 usage, 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.
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.
Previous article:What is the difference between ARM64 and ARM32 Linux programs?
Next article:New solution for analog signal isolation and acquisition based on ARM core MCU
- Popular Resources
- Popular amplifiers
- Learn ARM development(16)
- Learn ARM development(17)
- Learn ARM development(18)
- Embedded system debugging simulation tool
- A small question that has been bothering me recently has finally been solved~~
- Learn ARM development (1)
- Learn ARM development (2)
- Learn ARM development (4)
- Learn ARM development (6)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Detailed explanation of intelligent car body perception system
- How to solve the problem that the servo drive is not enabled
- Why does the servo drive not power on?
- What point should I connect to when the servo is turned on?
- How to turn on the internal enable of Panasonic servo drive?
- What is the rigidity setting of Panasonic servo drive?
- How to change the inertia ratio of Panasonic servo drive
- What is the inertia ratio of the servo motor?
- Is it better for the motor to have a large or small moment of inertia?
- What is the difference between low inertia and high inertia of servo motors?
- Creating an embedded project using Rust
- I bought another development board with the highest integration, no doubt about it.
- [Elective course to get a gift] Keysight's new "Test and Measurement" series of courses, reservations open in the hot summer! Master-level lecturers live online~
- AD chip output digital signal problem
- AVR assembler, paid help
- What is a smart WiFi module? What are the types and functions of wireless router gateway control modules?
- Comparison of several MicroPython IDEs
- [RVB2601 Creative Application Development] @fxyc87 RVB2601-Snake Game
- Qinheng USB PD and other fast charging protocol power receiving chip CH224 evaluation - the first data study and unboxing
- Analysis of the working principles of seven triode collector DC circuits 4