Vxmp is a VxWorks component that provides shared-memory objects dedicated
To high-speed synchronization and communication between tasks running in
Separate instances of VxWorks.
======================================
What is "separate instances of VxWorks ."
Shared-memory objects are a class of system objects that can be accessed by tasks
Running on different processors
Accessible by all processors.
============================================
Can all eight p4080 cores access this memory?
Shared-memory objects are an extension of local
VxWorks objects. Local objects are only available to tasks on a single processor.
========================================================== ======================================
Local VxWorks object can only access data on a single core
Vxmp supplies the following types of shared-memory objects:
■ Shared semaphores (binary and counting)
■ Shared message queues
■ Shared-memory partitions (system-and user-created partitions)
========================================================== ====================
Semaphore, message queue, share-memory partitions
Shared-memory objects provide the following advantages:
■ A transparent interface that allows shared-memory objects to be manipulated
With the same routines that are used for manipulating local objects.
■ High-speed inter-Processor Communication-No going through
Unnecessary network stack.
■ The shared memory can reside either in dual-ported RAM or on a separate
Memory board.
========================================================== ====================
Use the routine of localobject to operate the share-Memory Object
Fast interaction between processors
What is the last one...
Vxmp consists of the following facilities:
A name database (smnamelib ),
Task synchronization and resource tracking with semaphores (semsmlib ),
Messaging with message queues (msgqsmlib) to build a custom protocol,
A shared-memory allocator (smmemlib ).
========================================================== ====================
Vxmp can only be used in kernel space, not SMP
Vxmp provides the API for creating shared memory object and returns the Object ID. This object ID is used to identify
Object, and it is global to the vxmp system, regardless of the CPU from which it is accessed.
After a shared-memory object is created, kernel tasks can operate on it with
Same routines used for the corresponding local object.
Such:
Semgive (), semtake (), msgqsend (), msgqreceive (), mempartalloc (), and
Mempartfree () to operate on both types of objects.
Kernel tasks on any CPU can create and use shared-memory objects.
No processor has priority over another from a shared-memory object's point
View
========================================================== ======================================
For Shared Memory Object, all CPUs are equal.
shared-memory object cannot used at interrupt level.
note that shared-memory objects are allocated from dedicated shared-memory
pools, and cannot be deleted.
================================================= ==========================< br> ISR cannot call the routione that uses shared-memory object. shared-memory object cannot be deleted.