Jump to content

Nucleus PLUS

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Modular (talk | contribs) at 18:40, 8 April 2006. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Nucleus PLUS is a real-time, preemptive, multitasking kernel designed for time-critical embedded applications. Nucleus PLUS is 95% ANSI C and 5% assembly language. The assembly language portion is divided into three target dependent modules: initialization, thread management, and timer management. The rest of the kernel is generic and only needs to be re-compiled to move to a new CPU architecture. Nucleus PLUS has been designed in a highly modular fashion. For example, queue services have no relationship with pipe services, likewise, semaphore services have no relationship with event services.. All of the Nucleus PLUS facilities (or components) are divided logically into separate files so that only those that are used are included in your final executable. The division goes beyond the standard separation between queues, pipes, semaphores, events, etc. Within each of these components, files are separated to minimize the final size of the kernel in your application. For example, common queue services include creating, deleting, sending, and receiving. Some not so common services are force in front and broadcast. Therefore, each of these groups is maintained in a separate file. If you use queues, but you don’t use force in front or broadcast, that module is not included in your executable. Since we take advantage of your tool-set’s librarian, all of this is automatic.

Nucleus Features

   * Minimizing interrupt latency while preventing priority inversion    
   * Interrupts are not disabled during the kernel service    
   * Dynamic modification of the priority tasks    
   * Task Management component of the kernel (often referred to as thread services) provides all of the facilities necessary to successfully manages any multi-tasking environment.    
   * Modification at run-time of the task priority, pre-emptive status, and time-slice    
   * Round-robin scheduling of the lowest priority tasks    
   * Pipes, queues, and mailboxes are used for inter-task communication.    
   * Counting Semaphores, Event Groups, and Signals are used for inter-task synchronization.    
   * Two types of memory management: Memory Pools and Fixed Partitions    
   * Programmable timer threads

Important Development Features

   * No royalty, source code licensing    
   * Optionally checks: all parameters to all Nucleus PLUS service calls during the build process and the stack usage during compilation    
   * Selected information of the interaction between the application and the kernel.    
   * Collect status information about any kernel component

[1] [2]