ChibiOS/HAL  6.1.0
hal_pal_lld.h File Reference

PLATFORM PAL subsystem low level driver header. More...

Go to the source code of this file.

Data Structures

struct  PALConfig
 Generic I/O ports static initializer. More...
 

Macros

#define IOPORT1   0
 First I/O port identifier. More...
 
#define pal_lld_init(config)   _pal_lld_init(config)
 Low level PAL subsystem initialization. More...
 
#define pal_lld_readport(port)   0U
 Reads the physical I/O port states. More...
 
#define pal_lld_readlatch(port)   0U
 Reads the output latch. More...
 
#define pal_lld_writeport(port, bits)
 Writes a bits mask on a I/O port. More...
 
#define pal_lld_setport(port, bits)
 Sets a bits mask on a I/O port. More...
 
#define pal_lld_clearport(port, bits)
 Clears a bits mask on a I/O port. More...
 
#define pal_lld_toggleport(port, bits)
 Toggles a bits mask on a I/O port. More...
 
#define pal_lld_readgroup(port, mask, offset)   0U
 Reads a group of bits. More...
 
#define pal_lld_writegroup(port, mask, offset, bits)
 Writes a group of bits. More...
 
#define pal_lld_setgroupmode(port, mask, offset, mode)   _pal_lld_setgroupmode(port, mask << offset, mode)
 Pads group mode setup. More...
 
#define pal_lld_readpad(port, pad)   PAL_LOW
 Reads a logical state from an I/O pad. More...
 
#define pal_lld_writepad(port, pad, bit)
 Writes a logical state on an output pad. More...
 
#define pal_lld_setpad(port, pad)
 Sets a pad logical state to PAL_HIGH. More...
 
#define pal_lld_clearpad(port, pad)
 Clears a pad logical state to PAL_LOW. More...
 
#define pal_lld_togglepad(port, pad)
 Toggles a pad logical state. More...
 
#define pal_lld_setpadmode(port, pad, mode)
 Pad mode setup. More...
 
#define pal_lld_get_pad_event(port, pad)   &_pal_events[0]; (void)(port); (void)pad
 Returns a PAL event structure associated to a pad. More...
 
#define pal_lld_get_line_event(line)   &_pal_events[0]; (void)line
 Returns a PAL event structure associated to a line. More...
 
Port related definitions
#define PAL_IOPORTS_WIDTH   16U
 Width, in bits, of an I/O port. More...
 
#define PAL_WHOLE_PORT   ((ioportmask_t)0xFFFFU)
 Whole port mask. More...
 
Line handling macros
#define PAL_LINE(port, pad)   ((ioline_t)((uint32_t)(port)) | ((uint32_t)(pad)))
 Forms a line identifier. More...
 
#define PAL_PORT(line)   ((stm32_gpio_t *)(((uint32_t)(line)) & 0xFFFFFFF0U))
 Decodes a port identifier from a line identifier. More...
 
#define PAL_PAD(line)   ((uint32_t)((uint32_t)(line) & 0x0000000FU))
 Decodes a pad identifier from a line identifier. More...
 
#define PAL_NOLINE   0U
 Value identifying an invalid line. More...
 

Typedefs

typedef uint32_t ioportmask_t
 Digital I/O port sized unsigned type. More...
 
typedef uint32_t iomode_t
 Digital I/O modes. More...
 
typedef uint32_t ioline_t
 Type of an I/O line. More...
 
typedef uint32_t ioportid_t
 Port Identifier. More...
 
typedef uint32_t iopadid_t
 Type of an pad identifier. More...
 

Functions

void _pal_lld_init (const PALConfig *config)
 STM32 I/O ports configuration. More...
 
void _pal_lld_setgroupmode (ioportid_t port, ioportmask_t mask, iomode_t mode)
 Pads mode setup. More...
 

Detailed Description

PLATFORM PAL subsystem low level driver header.

Definition in file hal_pal_lld.h.