예제 #1
0
void  SerialOS_Init (SERIAL_ERR  *perr)
{
    LIB_ERR     lib_err;
    CPU_SIZE_T  octects_reqd;


    Mem_PoolCreate((MEM_POOL    *)&OS_SemPool,
                   (void        *) 0,
                   (CPU_SIZE_T   ) 0u,
                   (CPU_SIZE_T   ) SERIAL_OS_MAX_NBR_SEM,
                   (CPU_SIZE_T   ) sizeof(OS_SEM),
                   (CPU_SIZE_T   ) 1u,
                   (CPU_SIZE_T  *)&octects_reqd,
                   (LIB_ERR     *)&lib_err);

    if (lib_err != LIB_MEM_ERR_NONE) {
       *perr = SERIAL_OS_ERR_INIT;
        return;
    }

   *perr = SERIAL_OS_ERR_NONE;
}
예제 #2
0
/*=============================================================================
=============================================================================*/
void btstack_memory_init(void)
{
    LIB_ERR err;
    CPU_SIZE_T octetsReqd;

    Mem_PoolCreate(&hci_connection_pool,
                   0,
                   MAX_NO_HCI_CONNECTIONS * sizeof(hci_connection_t),
                   MAX_NO_HCI_CONNECTIONS,
                   sizeof(hci_connection_t),
                   sizeof(unsigned long),
                   &octetsReqd,
                   &err);
    SYS_ASSERT(err == LIB_MEM_ERR_NONE);

    Mem_PoolCreate(&l2cap_service_pool,
                   0,
                   MAX_NO_L2CAP_SERVICES * sizeof(l2cap_service_t),
                   MAX_NO_L2CAP_SERVICES,
                   sizeof(l2cap_service_t),
                   sizeof(unsigned long),
                   &octetsReqd,
                   &err);
    SYS_ASSERT(err == LIB_MEM_ERR_NONE);

    Mem_PoolCreate(&l2cap_channel_pool,
                   0,
                   MAX_NO_L2CAP_CHANNELS * sizeof(l2cap_channel_t),
                   MAX_NO_L2CAP_CHANNELS,
                   sizeof(l2cap_channel_t),
                   sizeof(unsigned long),
                   &octetsReqd,
                   &err);
    SYS_ASSERT(err == LIB_MEM_ERR_NONE);

    Mem_PoolCreate(&rfcomm_multiplexer_pool,
                   0,
                   MAX_NO_RFCOMM_MULTIPLEXERS * sizeof(rfcomm_multiplexer_t),
                   MAX_NO_RFCOMM_MULTIPLEXERS,
                   sizeof(rfcomm_multiplexer_t),
                   sizeof(unsigned long),
                   &octetsReqd,
                   &err);
    SYS_ASSERT(err == LIB_MEM_ERR_NONE);

    Mem_PoolCreate(&rfcomm_service_pool,
                   0,
                   MAX_NO_RFCOMM_SERVICES * sizeof(rfcomm_service_t),
                   MAX_NO_RFCOMM_SERVICES,
                   sizeof(rfcomm_service_t),
                   sizeof(unsigned long),
                   &octetsReqd,
                   &err);
    SYS_ASSERT(err == LIB_MEM_ERR_NONE);

    Mem_PoolCreate(&rfcomm_channel_pool,
                   0,
                   MAX_NO_RFCOMM_CHANNELS * sizeof(rfcomm_channel_t),
                   MAX_NO_RFCOMM_CHANNELS,
                   sizeof(rfcomm_channel_t),
                   sizeof(unsigned long),
                   &octetsReqd,
                   &err);
    SYS_ASSERT(err == LIB_MEM_ERR_NONE);

    Mem_PoolCreate(&db_mem_device_pool,
                   0,
                   MAX_NO_DB_MEM_DEVICES * sizeof(db_mem_device_t),
                   MAX_NO_DB_MEM_DEVICES,
                   sizeof(db_mem_device_t),
                   sizeof(unsigned long),
                   &octetsReqd,
                   &err);
    SYS_ASSERT(err == LIB_MEM_ERR_NONE);

    Mem_PoolCreate(&db_mem_service_pool,
                   0,
                   MAX_NO_DB_MEM_SERVICES * sizeof(db_mem_service_t),
                   MAX_NO_DB_MEM_SERVICES,
                   sizeof(db_mem_service_t),
                   sizeof(unsigned long),
                   &octetsReqd,
                   &err);
    SYS_ASSERT(err == LIB_MEM_ERR_NONE);
}