Choco OS  V.0.16.9.0
Join to the chocolate world
Registers Module

Module with definitions of registers. More...

Macros

#define oC_RegisterType_(REGISTER_NAME)
 Returns name of type for storing register value. More...
 
#define oC_RegisterSize_(REGISTER_NAME)
 returns size of register in number of bits
 
#define oC_RegisterByBaseAddress(BaseAddress, REGISTER_NAME)
 Access to register with dynamic base address. More...
 
#define oC_Register(BASE_NAME, REGISTER_NAME)
 Access to register via base address name. More...
 

Typedefs

typedef volatile oC_UInt_t oC_Register_t
 type for storing registers
 

Detailed Description

The module contains definitions of types for each register. Each register type is a union that consist of register bits definitions and Value field.

Macro Definition Documentation

#define oC_Register (   BASE_NAME,
  REGISTER_NAME 
)

The macro is for accessing registers, when the base address name is known at the compilation time - for example in case of system registers, or modules, when there is only one channel used you can use this macro to read/write register value.

Parameters
BASE_NAMEName of base address from the oc_ba_defs.h file
REGISTER_NAMEName of register from oc_registers_desf.h file
oC_Register( DMA2D , DMA2D_DR )->Value = 0xFF;

Definition at line 117 of file oc_registers.h.

#define oC_RegisterByBaseAddress (   BaseAddress,
  REGISTER_NAME 
)

The macro is for accessing registers, when the base address is dynamically counted (for example it is given from user as channel).

Parameters
BaseAddressBase address of register map
REGISTER_NAMEName of a register from the oc_registers_defs.h file
oC_RegisterByBaseAddress( 0x4000000UL , FLASH_DR )->Value = 0xFF;

Definition at line 99 of file oc_registers.h.

#define oC_RegisterType_ (   REGISTER_NAME)

The macro returns name of a structure type for parsing register bits. The type is created using macro and definitions from the oc_registers_defs.h file for each register.

oC_RegisterType_(FLASH_DR) FLASH_DR;
FLASH_DR.Value = 0xFF;
if(FLASH_DR.D0 == 1)
{
// The D0 bit in the FLASH_DR register is set
}

Definition at line 73 of file oc_registers.h.