I'm working on a large project with multiple individual(s).
We have broken the project into multiple modules.
Individual(s) are working on separate DKMs and RTPs depending on the module they are working on. Individuals working with hardware interfaces/drivers are working on DKMs while individuals working only software components are working on RTPs.
My question is that how will individual working on different modules share data between 2 RTPs or 2 DKMs or DKM-RTP?
I was thinking of using Message Queues but unlike Linux in vxWorks their is no provision for ftok to generate key for message queue create API msgQCreate.
IPC using Sockets is not feasible due to the latency involved and real-time capabilities required.
For time-sensitive applications, shared memory can be used. You can rely on
pmapGlobalMapto map a fixed region in memory in the DKM:Where
SHARED_PHYS_ADDRis the physical address of the memory you want to share,SHARED_PHYS_SIZEits size in bytes andMMU_ATTR_SUP_RWX | MMU_ATTR_VALIDthe MMU attributes used for the memory region.Then in the RTPs use sdOpen:
Where
SHARED_PHYS_ADDRis the physical address of the memory you want to share,SHARED_PHYS_SIZEits size in bytes andSD_ATTR_RW | SD_CACHE_DEFAULTthe MMU attributes used for the memory region.SHARED_PHYS_NAMEis the name of the shared region.