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 Standard API −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*);
記事全体を表示