static void APP_SRTM_Linkup(void)
{
srtm_channel_t chan;
srtm_rpmsg_endpoint_config_t rpmsgConfig;
(void)chan;
(void)rpmsgConfig;
/* Create SRTM peer core */
core = SRTM_PeerCore_Create(PEER_CORE_ID);
/* Set peer core state to activated */
SRTM_PeerCore_SetState(core, SRTM_PeerCore_State_Activated);
/* Common RPMsg channel config */
rpmsgConfig.localAddr = RL_ADDR_ANY;
rpmsgConfig.peerAddr = RL_ADDR_ANY;
rpmsgConfig.rpmsgHandle = rpmsgHandle;
#if SRTM_AUDIO_SERVICE_USED
rpmsgConfig.epName = APP_SRTM_AUDIO_CHANNEL_NAME;
chan = SRTM_RPMsgEndpoint_Create(&rpmsgConfig);
SRTM_PeerCore_AddChannel(core, chan);
assert((audioService != NULL) && (saiAdapter != NULL));
SRTM_AudioService_BindChannel(audioService, saiAdapter, chan);
rpmsgConfig.epName = APP_SRTM_PDM_CHANNEL_NAME;
chan = SRTM_RPMsgEndpoint_Create(&rpmsgConfig);
SRTM_PeerCore_AddChannel(core, chan);
assert((audioService != NULL) && (pdmAdapter != NULL));
SRTM_AudioService_BindChannel(audioService, pdmAdapter, chan);
#endif
#if SRTM_I2C_SERVICE_USED
/* Create and add SRTM I2C channel to peer core*/
rpmsgConfig.epName = APP_SRTM_I2C_CHANNEL_NAME;
chan = SRTM_RPMsgEndpoint_Create(&rpmsgConfig);
SRTM_PeerCore_AddChannel(core, chan);
#endif
#if SRTM_CAMERA_SERVICE_USED
/* === ДОБАВЛЯЕМ КАНАЛ ДЛЯ КАМЕРЫ === */
rpmsgConfig.epName = APP_SRTM_CAMERA_CHANNEL_NAME;
chan = SRTM_RPMsgEndpoint_Create(&rpmsgConfig);
SRTM_PeerCore_AddChannel(core, chan);
// Примечание: так как у нас Custom-сервис, нам не нужно делать BindChannel,
// диспетчер SRTM автоматически свяжет этот эндпоинт с зарегистрированными сервисами.
#endif
SRTM_Dispatcher_AddPeerCore(disp, core);
}