FSI-CCPLEX Communication#
Following is a list of acronyms and abbreviations used in this section:
Acronyms Abbreviations |
Definition |
---|---|
CCPLEX |
NVIDIA Carmel CPU Complex. Set of Arm cores in NVIDIA Thor for user application running over HLOS |
FSI |
FSI(Functional Safety Island) core (4 X R52) is for Safety related automotive applications |
GOS |
Guest OS partition on CCPLEX |
IFS |
QNX Image File System |
Channel |
Channel is peer-to-peer communication channel between Peer1 |
and Peer2 |
|
Channel consists of two FIFOs: |
|
|
|
|
|
Frames |
The elements within the FIFO in shared memory are called “frames” |
FSI-CCPLEX-COM Generic use case enables data communication in peer-to-peer mode for SWCs/applications running on FSI and CCPLEX using shared memory (FSI CPU NS DRAM carveout). A distinguishing aspect of this use case is that the raw data is completely transparent to the communication mechanism, and the data is not comprised of a signal or service provided over a vehicle communication bus.
This component provides interfaces to access DRAM carveout, which is used as shared memory for communication between CCPLEX and FSI and Mailbox used to notify the message reception/transmissions.
The use case has two demo apps, which are DemoAppCom (on CCPLEX) and DemoApp (on FSI). Demo apps are positions, as shown in the following image:
NvFsiComLib is an interface library on CCPLEX side for FSI-CCPLEX communication.
NvFsiCom is a daemon that is responsible for notifying when data is available to read.
cddCcplexCom – CDD on FSI to access shared memory and handle data receive notification. This module supports independent FSI-CCPLEX communication on all FSI cores. (Two cores can be configured as notification cores and other two can be configured as polling cores). (FSICOM multi core and multi instance).
DemoAppCom simulates Application on CCPLEX. DemoApp connected to Rte to demonstrate SWC behavior for sending and receiving the data between CCPLEX and FSI. This demo can be used as base for any new development and requirement realization by Customers or for NVIDIA® DRIVE AV.
Shared memory of size 16 MB is available to be used.
Handshake at start-up:
API Header and Datatypes#
Refer to NvFsiCom.h
for APIs of NvFsiComLib
and NvFsiComTypes.h
for datatypes.
Note
For the NvFsiCom library, the NvFsiComHandle_t datatype member element ChId represents zero-based relative index in the array of channels for an application node. (For example, for a node configured to use channels 2, 6, 5. The ChId (in NvFsiComHandle_t handle) for channels is 0,1,2 respectively.)
Note
When FsiCom client on Ccplex calls NvFsiComDeinit()
, the memory allocated by the client is reset to 0
before deallocating the memory.