SAMV71 Xplained Ultra Software Package 1.5

SD/MMC bits/bytes fields access
[SD/MMC Spec. definitions]

Collaboration diagram for SD/MMC bits/bytes fields access:

Defines

#define SD_BITS32(pDw, nbits, ibit, bits)   ((((uint32_t*)(pDw))[(nbits)/32-(ibit)/32-1] >> ((ibit)%32)) & (bits == 32 ? 0xFFFFFFFF : ((uint32_t)(1ul << (bits)) - 1)))
#define SD_BITS8(pB, nbits, ibit, bits)   ((((uint8_t*)(pB))[(nbits)/8-(ibit)/8-1] >> ((ibit)%8)) & ((1 << (bits)) - 1))
#define SD_U8(pD, nBytes, iByte)   (((uint8_t*)(pD))[(iByte)])
#define SD_U16(pD, nBytes, iByte)
#define SD_U32(pD, nBytes, iByte)

Define Documentation

#define SD_BITS32 (   pDw,
  nbits,
  ibit,
  bits 
)    ((((uint32_t*)(pDw))[(nbits)/32-(ibit)/32-1] >> ((ibit)%32)) & (bits == 32 ? 0xFFFFFFFF : ((uint32_t)(1ul << (bits)) - 1)))

Get bits from a 32-b pointed data (total n bits)

Definition at line 118 of file sdmmc.h.

#define SD_BITS8 (   pB,
  nbits,
  ibit,
  bits 
)    ((((uint8_t*)(pB))[(nbits)/8-(ibit)/8-1] >> ((ibit)%8)) & ((1 << (bits)) - 1))

Get bits from a 8-b pointed data (total n bits)

Definition at line 121 of file sdmmc.h.

#define SD_U16 (   pD,
  nBytes,
  iByte 
)
Value:
((((uint8_t*)(pD))[(iByte)] << 0) +\
      (((uint8_t*)(pD))[(iByte) + 1] << 8))

Get u16 from data area

Definition at line 126 of file sdmmc.h.

#define SD_U32 (   pD,
  nBytes,
  iByte 
)
Value:
((((uint8_t*)(pD))[(iByte) ] <<  0) +\
      (((uint8_t*)(pD))[(iByte) + 1] <<  8) +\
      (((uint8_t*)(pD))[(iByte) + 2] << 16) +\
      (((uint8_t*)(pD))[(iByte) + 3] << 24))

Get u32 from data area

Definition at line 130 of file sdmmc.h.

#define SD_U8 (   pD,
  nBytes,
  iByte 
)    (((uint8_t*)(pD))[(iByte)])

Get u8 from byte pointed data area

Definition at line 124 of file sdmmc.h.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines