VSF Documented
Macros | Functions | Variables
driver.c File Reference
#include "hal/vsf_hal_cfg.h"
#include "./device.h"
#include "hal/driver/vendor_driver.h"
#include "hal/utilities/stream/usart/vsf_usart_stream.h"
#include "service/vsf_service.h"
#include "./vsf_hal_distbus_enum_with_peripheral_count.inc"

Macros

#define VSF_HAL_DISTBUS_MSGPOLL_SIZE   64
 
#define VSF_HAL_DISTBUS_DEFINE(__TYPE)
 
#define __VSF_HAL_DISTBUS_ENUM   VSF_HAL_DISTBUS_DEFINE
 
#define VSF_HAL_DISTBUS_PERIPHERAL_TYPE_DEF(__TYPE)
 
#define __VSF_HAL_DISTBUS_ENUM   VSF_HAL_DISTBUS_PERIPHERAL_TYPE_DEF
 
#define VSF_HAL_HW_IMPLEMENT(__N, __VALUE)
 
#define VSF_HAL_HW_IMPLEMENT_ARRAY(__N, __VALUE)    &VSF_MCONNECT(vsf_hw_, VSF_HAL_CFG_IMP_TYPE, __N),
 
#define VSF_HAL_HW_IMPLEMENT_MULTI()
 
#define VSF_HAL_DISTBUS_DEFINE_DEVS(__TYPE)    VSF_MCONNECT(vsf_hal_distbus_, __TYPE, _t) *__TYPE;
 
#define __VSF_HAL_DISTBUS_ENUM   VSF_HAL_DISTBUS_DEFINE_DEVS
 
#define VSF_HAL_DISTBUS_ENUM(__TYPE)
 
#define __VSF_HAL_DISTBUS_ENUM   VSF_HAL_DISTBUS_ENUM
 

Functions

 describe_mem_stream (vsf_distbus_transport_stream_rx, 1024)
 
 dcl_vsf_pool (def_vsf_pool(__vsf_hal_distbus_msg_pool)
 
 imp_vsf_pool (__vsf_hal_distbus_msg_pool, __vsf_hal_distbus_msg_t)
 
void vsf_hal_distbus_on_new (vsf_hal_distbus_t *hal_distbus, vsf_hal_distbus_type_t type, uint8_t num, void *devs)
 
bool vsf_driver_init (void)
 common hal drivers
 

Variables

 __vsf_hal_distbus_msg_t
 
 vsf_hal_distbus_ctx_t
 

Macro Definition Documentation

◆ VSF_HAL_DISTBUS_MSGPOLL_SIZE

#define VSF_HAL_DISTBUS_MSGPOLL_SIZE   64

◆ VSF_HAL_DISTBUS_DEFINE

#define VSF_HAL_DISTBUS_DEFINE (   __TYPE)
Value:
struct { \
uint8_t dev_num; \
VSF_MCONNECT(vsf_, __TYPE, _t) *dev[32]; \
} __TYPE;
unsigned char uint8_t
Definition stdint.h:5

◆ __VSF_HAL_DISTBUS_ENUM [1/4]

#define __VSF_HAL_DISTBUS_ENUM   VSF_HAL_DISTBUS_DEFINE

◆ VSF_HAL_DISTBUS_PERIPHERAL_TYPE_DEF

#define VSF_HAL_DISTBUS_PERIPHERAL_TYPE_DEF (   __TYPE)
Value:
typedef struct VSF_MCONNECT(vsf_hw_, __TYPE, _t) { \
VSF_MCONNECT(vsf_remapped_, __TYPE, _t) _; \
} VSF_MCONNECT(vsf_hw_, __TYPE, _t);
struct VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_t)
Definition flash.c:53
struct @839::@866 _

◆ __VSF_HAL_DISTBUS_ENUM [2/4]

#define __VSF_HAL_DISTBUS_ENUM   VSF_HAL_DISTBUS_PERIPHERAL_TYPE_DEF

◆ VSF_HAL_HW_IMPLEMENT

#define VSF_HAL_HW_IMPLEMENT (   __N,
  __VALUE 
)
Value:
VSF_MCONNECT(vsf_hw_, VSF_HAL_CFG_IMP_TYPE, _t) VSF_MCONNECT(vsf_hw_, VSF_HAL_CFG_IMP_TYPE, __N) = {\
._ = { \
.op = &VSF_MCONNECT(vsf_remapped_, VSF_HAL_CFG_IMP_TYPE, _op),\
}, \
};

◆ VSF_HAL_HW_IMPLEMENT_ARRAY

#define VSF_HAL_HW_IMPLEMENT_ARRAY (   __N,
  __VALUE 
)     &VSF_MCONNECT(vsf_hw_, VSF_HAL_CFG_IMP_TYPE, __N),

◆ VSF_HAL_HW_IMPLEMENT_MULTI

#define VSF_HAL_HW_IMPLEMENT_MULTI ( )
Value:
VSF_MREPEAT(VSF_MCONNECT(VSF_HW_, VSF_HAL_CFG_IMP_UPCASE_TYPE, _COUNT), VSF_HAL_HW_IMPLEMENT, NULL)\
VSF_MCONNECT(vsf_hw_, VSF_HAL_CFG_IMP_TYPE, _t) *const VSF_MCONNECT(vsf_hw_, VSF_HAL_CFG_IMP_TYPE, s)[VSF_MCONNECT(VSF_HW_, VSF_HAL_CFG_IMP_UPCASE_TYPE, _COUNT)] = {\
VSF_MREPEAT(VSF_MCONNECT(VSF_HW_, VSF_HAL_CFG_IMP_UPCASE_TYPE, _COUNT), VSF_HAL_HW_IMPLEMENT_ARRAY, NULL)\
};
#define VSF_HAL_HW_IMPLEMENT_ARRAY(__N, __VALUE)
Definition driver.c:123
#define VSF_HAL_HW_IMPLEMENT(__N, __VALUE)
Definition driver.c:117
#define NULL
Definition lvgl.h:26
#define VSF_MREPEAT(__COUNT, __MACRO, __PARAM)
Definition vsf_repeat_macro.h:51

◆ VSF_HAL_DISTBUS_DEFINE_DEVS

#define VSF_HAL_DISTBUS_DEFINE_DEVS (   __TYPE)     VSF_MCONNECT(vsf_hal_distbus_, __TYPE, _t) *__TYPE;

◆ __VSF_HAL_DISTBUS_ENUM [3/4]

#define __VSF_HAL_DISTBUS_ENUM   VSF_HAL_DISTBUS_DEFINE_DEVS

◆ VSF_HAL_DISTBUS_ENUM

#define VSF_HAL_DISTBUS_ENUM (   __TYPE)
Value:
case VSF_MCONNECT(VSF_HAL_DISTBUS_, __TYPE): \
if (!__vsf_hal_distbus_ctx.chip.__TYPE.dev_num) { \
__vsf_hal_distbus_ctx.chip.__TYPE.dev_num = vsf_min(num, dimof(__vsf_hal_distbus_ctx.chip.__TYPE.dev));\
for (uint8_t i = 0; i < __vsf_hal_distbus_ctx.chip.__TYPE.dev_num; i++) {\
__vsf_hal_distbus_ctx.chip.__TYPE.dev[i] = (VSF_MCONNECT(vsf_, __TYPE, _t) *)&u_devs.__TYPE[i];\
VSF_MCONNECT(vsf_hw_, __TYPE, s)[i]->_.target = (VSF_MCONNECT(vsf_, __TYPE, _t) *)__vsf_hal_distbus_ctx.chip.__TYPE.dev[i];\
__vsf_arch_trace(0, "[hal_distbus] new " VSF_STR(__TYPE) "%d %p" VSF_TRACE_CFG_LINEEND, i, __vsf_hal_distbus_ctx.chip.__TYPE.dev[i]);\
} \
} \
break;
#define VSF_STR(__STRING)
Definition __type.h:140
#define vsf_min(__a, __b)
Definition __type.h:152
#define dimof(__arr)
Definition __type.h:155
#define VSF_TRACE_CFG_LINEEND
Definition vsf_trace.h:47

◆ __VSF_HAL_DISTBUS_ENUM [4/4]

#define __VSF_HAL_DISTBUS_ENUM   VSF_HAL_DISTBUS_ENUM

Function Documentation

◆ describe_mem_stream()

describe_mem_stream ( vsf_distbus_transport_stream_rx  ,
1024   
)

◆ dcl_vsf_pool()

dcl_vsf_pool ( def_vsf_pool __vsf_hal_distbus_msg_pool)

◆ imp_vsf_pool()

imp_vsf_pool ( __vsf_hal_distbus_msg_pool  ,
__vsf_hal_distbus_msg_t   
)

◆ vsf_hal_distbus_on_new()

void vsf_hal_distbus_on_new ( vsf_hal_distbus_t hal_distbus,
vsf_hal_distbus_type_t  type,
uint8_t  num,
void *  devs 
)

◆ vsf_driver_init()

bool vsf_driver_init ( void  )

common hal drivers

Note
initialize device driver
Parameters
none
Return values
trueinitialization succeeded.
falseinitialization failed

initialise interrupt controller;

Variable Documentation

◆ __vsf_hal_distbus_msg_t

__vsf_hal_distbus_msg_t

◆ vsf_hal_distbus_ctx_t

vsf_hal_distbus_ctx_t
Generated from commit: vsfteam/vsf@74aa6ce