RT_MAILBOX my_mailbox;
#define MSG_SIZE 16 // 메시지 크기
// 메일박스 초기화
rt_mailbox_create(&my_mailbox, "MyMailbox", MSG_SIZE * 10);
// 메시지 전송
char msg[MSG_SIZE] = "Hello World";
rt_mailbox_send(&my_mailbox, &msg, MSG_SIZE);
// 메시지 수신
char received_msg[MSG_SIZE];
rt_mailbox_receive(&my_mailbox, &received_msg, MSG_SIZE, TM_INFINITE);
// 메일박스 삭제
rt_mailbox_delete(&my_mailbox);
RT_PIPE my_pipe;
#define P_SIZE 1024 // 파이프 크기
// 파이프 초기화
rt_pipe_create(&my_pipe, "MyPipe", P_MINOR_AUTO, P_SIZE);
// 데이터 전송
char pipe_data[] = "StreamData";
rt_pipe_write(&my_pipe, &pipe_data, sizeof(pipe_data), P_NORMAL);
// 데이터 수신
char received_pipe_data[P_SIZE];
rt_pipe_read(&my_pipe, &received_pipe_data, sizeof(received_pipe_data), TM_INFINITE);
// 파이프 삭제
rt_pipe_delete(&my_pipe);
RT_EVENT my_event;
#define EVENT_MASK 0x01 // 이벤트 마스크
// 이벤트 객체 초기화
rt_event_create(&my_event, "MyEvent", 0, EV_PRIO);
// 이벤트 신호 보내기
rt_event_signal(&my_event, EVENT_MASK);
// 이벤트 대기 및 수신
rt_event_wait(&my_event, EVENT_MASK, &event_received, EV_MASK, TM_INFINITE);
// 이벤트 객체 삭제
rt_event_delete(&my_event);
RT_MUTEX my_mutex;
// 뮤텍스 초기화
rt_mutex_create(&my_mutex, "MyMutex");
// 뮤텍스 잠금
rt_mutex_acquire(&my_mutex, TM_INFINITE);
// 공유 자원 접근
// ... 코드를 작성한다 ...
// 뮤텍스 해제
rt_mutex_release(&my_mutex);
// 뮤텍스 삭제
rt_mutex_delete(&my_mutex);
RT_SEM my_sem;
// 세마포어 초기화 (초기 카운트: 1)
rt_sem_create(&my_sem, "MySemaphore", 1, S_PRIO);
// 세마포어 획득
rt_sem_p(&my_sem, TM_INFINITE);
// 공유 자원 접근
// ... 코드를 작성한다 ...
// 세마포어 반환
rt_sem_v(&my_sem);
// 세마포어 삭제
rt_sem_delete(&my_sem);
RT_QUEUE data_channel;
#define DATA_CHANNEL_SIZE 1024
// 데이터 통로 초기화
rt_queue_create(&data_channel, "DataChannel", DATA_CHANNEL_SIZE, Q_UNLIMITED, Q_MUTEX);
// 데이터 전송
char data_to_send[] = "RealTimeData";
rt_queue_write(&data_channel, &data_to_send, sizeof(data_to_send), Q_NORMAL);
// 데이터 수신
char received_data[DATA_CHANNEL_SIZE];
rt_queue_read(&data_channel, &received_data, sizeof(received_data), TM_INFINITE);
// 데이터 통로 삭제
rt_queue_delete(&data_channel);
RT_SHM shared_mem;
// 공유 메모리 초기화
rt_shm_create(&shared_mem, "SharedMemory", 4096, Q_UNLIMITED);
// 공유 메모리 접근
void *shared_area = rt_shm_map(&shared_mem);
// ... 데이터를 읽거나 씁니다 ...
// 공유 메모리 해제
rt_shm_unmap(shared_area);
// 공유 메모리 삭제
rt_shm_delete(&shared_mem);