Features of the real-time multi-task operating system uCOS-III
UCOS-III is a brand new real-time kernel derived from the world's most popular real-time kernel uC/OS-II, in addition to providing a series of familiar system services, fully revised the API interface, make uC/OS-III more intuitive and easier to use. This product can be widely used in the design and development of communication, industrial control, instrumentation, automotive electronics, consumer electronics, and office automation equipment.
UCOS-III is a preemptible multi-task kernel that supports round-robin scheduling of tasks with the same priority. It can be transplanted to many different CPU architectures. UC/OS-III is designed for embedded systems and can be solidified together with application code into Rom.
UCOS-III allows you to configure the real-time operating system at runtime. All kernel objects, such as tasks, stacks, semaphores, event groups, message queues, messages, mutex semaphores, memory partitions, and timers, are allocated at runtime. This prevents excessive resource allocation during compilation.
UCOS-III allows any number of tasks, semaphores, mutex semaphores, event flags, message queues, timers, and memory partitions (limited by the available CPU Ram size ).
UCOS-III adds many very useful functions, such as nesting mutex semaphores, nesting task pause, and sending signals to tasks without semaphores, no message queue is required to send messages to tasks. Wait for Multiple kernel objects, register tasks for specific conditions of 'errno' or other tasks, and implement built-in performance measurement and deadlock prevention, user-Defined hook functions.
UCOS-III also has built-in support for Kernel-aware debugging. Allows the kernel-aware Debugger to conveniently detect and display uC/OS-III variables and data structures, and also allows uC/probe to display and change variables at runtime.
μCOS-III is a multi-task kernel that can be preemptible. It is the most important task to always run in ready state. The μC/OS-III supports an unlimited number of tasks and allows tasks to monitor stack growth at runtime. It also supports an unlimited number of priorities. However, generally, 32 to 256 different priorities are sufficient for most applications.
What is particularly useful for today's design is rotation scheduling tasks with the same priority. The μC/OS-III allows multiple tasks to run at the same priority, each of which is a time slice specified by the user. Each task can define its own time unit. If its complete time unit is not necessary, each task can discard the time slice. The μC/OS-III also allows unlimited number of kernel objects such as tasks, semaphores, mutex, signal flag, message queue, timer and memory partitions. Most of the μC/OS-III is configurable at runtime.
The μC/OS-III provides close to zero interruption stop times. The μC/OS-III has some internal data structures and variables that require atomic access (which cannot be interrupted ). Protection in these key areas is implemented by lock scheduling, rather than by disabling interruption. The interrupted clock cycle is almost zero, ensuring that the real-time operating system will be able to respond to some of the fastest interruption sources.
Allows tasks to use the same priority. Time slice scheduling is used for multiple tasks with the same priority.
There can be any number of tasks, any number of semaphores (semaphore), mutex, event flag, queue, and Timer) and any allocated storage block capacity (limited by the amount of Ram available to the user's CPU)
A mutex-type semaphores that can be nested. nested tasks are suspended.
Sends a semaphore to a task without a semaphore request and sends a message to a task without a Message Queue request.
A task can be suspended by multiple elements of the kernel ).
Add a task to the status or error code of another task.
Internal performance testing. The maximum disconnection time and maximum scheduling time of each task can be obtained, and the maximum disconnection time and maximum scheduling time of the system can be obtained.
Algorithms that select and determine the priority can be written in assembly languages to take advantage of some CPU advantages with special commands, such as placement and reset commands, and counter clearing (clz ); find the first non-zero-bit (ff1) command.
The method for accessing critical resources is changed from Guanzhong disconnection to locking the scheduler, so that the number of clock cycles for Kernel Guanzhong disconnection is almost zero, ensures that the μC/OS-III can respond to interruptions at the fastest speed.