i.MX 6 SoloX MCC
- MCC is a library for lightweight communication between cores
- Configured at compile time (mcc_config.h)
- Current version (2.0) is not backward compatible
- MCC works with shared memory area
- Communication is performed through ‘send’ and ‘receive’ functions
Shared memory Cores communicate through shared memory

Core structures of the MCC MCC_ENDPOINT
core
- Identifies a processor core, A9 is 0 and M4 is 1.
node
- In Linux, each process using MCC has its own node number. MQX has only one node number.
port
- Any number of ports per node is allowed.
- Value MCC_RESERVED_PORT_NUMBER is not allowed.
The number of endpoints in system is defined during compile time by macro MCC_ATTR_MAX_RECEIVE_ENDPOINTS.
MCC_BOOKEEPING_STRUCT Endpoint table I.

MCC API Functions
−int mcc_initialize(MCC_NODE);
−int mcc_destroy(MCC_NODE);
−int mcc_create_endpoint(MCC_ENDPOINT*, MCC_PORT);
−int mcc_destroy_endpoint(MCC_ENDPOINT*);
−int mcc_send(MCC_ENDPOINT*, MCC_ENDPOINT*, void*, MCC_MEM_SIZE, unsigned int);
−int mcc_recv(MCC_ENDPOINT*, MCC_ENDPOINT*, void*, MCC_MEM_SIZE, MCC_MEM_SIZE*, unsigned int);
−int mcc_msgs_available(MCC_ENDPOINT*, unsigned int*);
−int mcc_get_info(MCC_NODE, MCC_INFO_STRUCT*);
- MCC_SEND_RECV_NOCOPY_API_ENABLED
−int mcc_get_buffer(void**, MCC_MEM_SIZE*, unsigned int);
−int mcc_send_nocopy(MCC_ENDPOINT*, MCC_ENDPOINT*, void*, MCC_MEM_SIZE);
−int mcc_recv_nocopy(MCC_ENDPOINT*, MCC_ENDPOINT*, void**, MCC_MEM_SIZE*, unsigned int);
−int mcc_free_buffer(void*);