diff --git a/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_STATIC/main.c b/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_STATIC/main.c index 59c5b08ef..ef0228f08 100644 --- a/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_STATIC/main.c +++ b/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_STATIC/main.c @@ -26,6 +26,18 @@ #include "startup_defs.h" +static vhal_pal_conf_t vpal_config1 = { + .nvpio = 1U, + .vpio = { + [0] = { + .permissions = VPIO_PERM_WRITE, + .port = GPIOA, + .mask = 1U, + .offset = GPIOA_LED_GREEN + } + } +}; + /*===========================================================================*/ /* VFS-related. */ /*===========================================================================*/ diff --git a/os/sb/vhal/sbvhal.h b/os/sb/vhal/sbvhal.h index f8c1f7383..d2d811a80 100644 --- a/os/sb/vhal/sbvhal.h +++ b/os/sb/vhal/sbvhal.h @@ -57,6 +57,7 @@ typedef struct vhal_conf { /** * @brief VPAL configuration. */ + const vhal_pal_conf_t *vpalconf; #endif } vhal_conf_t; diff --git a/os/sb/vhal/sbvhal.mk b/os/sb/vhal/sbvhal.mk index eff236561..68968963f 100644 --- a/os/sb/vhal/sbvhal.mk +++ b/os/sb/vhal/sbvhal.mk @@ -1,5 +1,6 @@ # List of the ChibiOS sandbox VHAL files. -SBVHALSRC = $(CHIBIOS)/os/sb/vhal/sbvhal.c +SBVHALSRC = $(CHIBIOS)/os/sb/vhal/sbvhal.c \ + $(CHIBIOS)/os/sb/vhal/sbvhal_pal.c SBVHALASM = diff --git a/os/sb/vhal/sbvhal_pal.c b/os/sb/vhal/sbvhal_pal.c index 8211b17d2..87dc5a0fd 100644 --- a/os/sb/vhal/sbvhal_pal.c +++ b/os/sb/vhal/sbvhal_pal.c @@ -59,7 +59,7 @@ void sb_api_vhal_pal(struct port_extctx *ectxp) { switch (sub) { case 0: - palWriteBus(bus, bits); + palWriteGroup(GPIOA, 0, 0, 0); } ectxp->r0 = CH_RET_SUCCESS; diff --git a/os/sb/vhal/sbvhal_pal.h b/os/sb/vhal/sbvhal_pal.h index 39ab733e0..f8670c520 100644 --- a/os/sb/vhal/sbvhal_pal.h +++ b/os/sb/vhal/sbvhal_pal.h @@ -25,8 +25,8 @@ * @{ */ -#ifndef SBVHAL_H -#define SBVHAL_H +#ifndef SBVHAL_PAL_H +#define SBVHAL_PAL_H #if (SB_CFG_ENABLE_VHAL_PAL == TRUE) || defined(__DOXYGEN__) @@ -39,6 +39,15 @@ */ #define SB_SVC200_HANDLER sb_api_vhal_pal +/** + * @name VPIO permissions + * @{ + */ +#define VPIO_PERM_READ 1U +#define VPIO_PERM_WRITE 2U +#define VPIO_PERM_CHANGEMODE 4U +/** @} */ + /*===========================================================================*/ /* Module pre-compile time settings. */ /*===========================================================================*/ @@ -55,6 +64,13 @@ * @brief Type of a VHAL PAL instance configuration structure. */ typedef struct vhal_pal_conf { + uint32_t nvpio; + struct { + uint32_t permissions; + ioportid_t port; + ioportmask_t mask; + uint32_t offset; + } vpio[]; } vhal_pal_conf_t; /*===========================================================================*/ @@ -79,6 +95,6 @@ extern "C" { #endif /* SB_CFG_ENABLE_VHAL == TRUE */ -#endif /* SBVHAL_H */ +#endif /* SBVHAL_PAL_H */ /** @} */