General Utilities (Ringbuffers, FIFOs, LED Colors, etc.) More...
General Utilities (Ringbuffers, FIFOs, LED Colors, etc.)
A MappedValue
that maps an list of strings linearly.
A MappedValue
that maps an int value linearly.
A MappedValue
that maps a float value using various mapping functions.
Abstract base class for a value that is mapped to a 0..1 normalized range.
A safe and convenient statically allocated string with constexpr powers.
CPU load metering.
To measure the CPU load of your audio processing, create a CpuLoadMeter and initialize it with your block size and sample rate. Then at the beginning of the audio callback, call OnBlockStart()
, and at the end of the audio callback, call OnBlockEnd()
. You can then read out the minimum, maximum and average CPU load.
This string class is statically allocated. All of its functions can be evaluated at compile time through the power of constexpr.
Namespaces | |
namespace | daisy |
Hardware defines and helpers for daisy field platform. | |
Classes | |
class | daisy::Random |
True Random Number Generator access. More... | |
struct | DSY_SD_CardInfoTypeDef |
class | daisy::Color |
struct | FontDef |
class | daisy::RingBuffer< T, size > |
class | daisy::RingBuffer< T, 0 > |
Macros | |
#define | DMA_BUFFER_MEM_SECTION __attribute__((section(".sram1_bss"))) |
#define | DTCM_MEM_SECTION __attribute__((section(".dtcmram_bss"))) |
#define | FBIPMAX 0.999985f |
#define | FBIPMIN (-FBIPMAX) |
#define | U82F_SCALE 0.0078740f |
#define | F2U8_SCALE 127.0f |
#define | S82F_SCALE 0.0078125f |
#define | F2S8_SCALE 127.0f |
#define | S162F_SCALE 3.0517578125e-05f |
#define | F2S16_SCALE 32767.0f |
#define | F2S24_SCALE 8388608.0f |
#define | S242F_SCALE 1.192092896e-07f |
#define | S24SIGN 0x800000 |
#define | S322F_SCALE 4.6566129e-10f |
#define | F2S32_SCALE 2147483647.f |
#define | OUT_L out[0] |
#define | OUT_R out[1] |
#define | IN_L in[0] |
#define | IN_R in[1] |
#define | BSP_SD_CardInfo DSY_SD_CardInfoTypeDef |
#define | MSD_OK ((uint8_t)0x00) |
#define | MSD_ERROR ((uint8_t)0x01) |
#define | MSD_ERROR_SD_NOT_PRESENT ((uint8_t)0x02) |
#define | SD_TRANSFER_OK ((uint8_t)0x00) |
#define | SD_TRANSFER_BUSY ((uint8_t)0x01) |
#define | SD_PRESENT ((uint8_t)0x01) |
#define | SD_NOT_PRESENT ((uint8_t)0x00) |
#define | SD_DATATIMEOUT ((uint32_t)100000000) |
Functions | |
FORCE_INLINE float | cube (float x) |
FORCE_INLINE float | u82f (uint8_t x) |
FORCE_INLINE uint8_t | f2u8 (float x) |
FORCE_INLINE float | s82f (int8_t x) |
FORCE_INLINE int8_t | f2s8 (float x) |
FORCE_INLINE float | s162f (int16_t x) |
FORCE_INLINE int16_t | f2s16 (float x) |
FORCE_INLINE float | s242f (int32_t x) |
FORCE_INLINE int32_t | f2s24 (float x) |
FORCE_INLINE float | s322f (int32_t x) |
FORCE_INLINE int32_t | f2s32 (float x) |
uint8_t | BSP_SD_Init (void) |
uint8_t | BSP_SD_ITConfig (void) |
uint8_t | BSP_SD_ReadBlocks (uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks, uint32_t Timeout) |
uint8_t | BSP_SD_WriteBlocks (uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks, uint32_t Timeout) |
uint8_t | BSP_SD_ReadBlocks_DMA (uint32_t *pData, uint32_t ReadAddr, uint32_t NumOfBlocks) |
uint8_t | BSP_SD_WriteBlocks_DMA (uint32_t *pData, uint32_t WriteAddr, uint32_t NumOfBlocks) |
uint8_t | BSP_SD_Erase (uint32_t StartAddr, uint32_t EndAddr) |
uint8_t | BSP_SD_GetCardState (void) |
void | BSP_SD_GetCardInfo (DSY_SD_CardInfoTypeDef *CardInfo) |
uint8_t | BSP_SD_IsDetected (void) |
void | BSP_SD_AbortCallback (void) |
void | BSP_SD_WriteCpltCallback (void) |
void | BSP_SD_ReadCpltCallback (void) |
void | dsy_get_unique_id (uint32_t *w0, uint32_t *w1, uint32_t *w2) |
Variables | |
FontDef | Font_4x6 |
FontDef | Font_4x8 |
FontDef | Font_5x8 |
FontDef | Font_6x7 |
FontDef | Font_6x8 |
FontDef | Font_7x10 |
FontDef | Font_11x18 |
FontDef | Font_16x26 |
#define BSP_SD_CardInfo DSY_SD_CardInfoTypeDef |
&
#define DMA_BUFFER_MEM_SECTION __attribute__((section(".sram1_bss"))) |
Macro for area of memory that is configured as cacheless This should be used primarily for DMA buffers, and the like.
#define DTCM_MEM_SECTION __attribute__((section(".dtcmram_bss"))) |
THE DTCM RAM section is also non-cached. However, is not suitable for DMA transfers. Performance is on par with internal SRAM w/ cache enabled.
#define F2S16_SCALE 32767.0f |
(2 ** 15) - 1
#define F2S24_SCALE 8388608.0f |
2 ** 23
#define F2S32_SCALE 2147483647.f |
(2 ** 31) - 1
#define F2S8_SCALE 127.0f |
(2 ** 7) - 1
#define F2U8_SCALE 127.0f |
128 - 1
#define FBIPMAX 0.999985f |
close to 1.0f-LSB at 16 bit
#define FBIPMIN (-FBIPMAX) |
#define IN_L in[0] |
shorthand macro for simplifying the reading of the left channel of a non-interleaved input buffer named in
#define IN_R in[1] |
shorthand macro for simplifying the reading of the right channel of a non-interleaved input buffer named in
#define MSD_ERROR ((uint8_t)0x01) |
&
#define MSD_ERROR_SD_NOT_PRESENT ((uint8_t)0x02) |
&
#define MSD_OK ((uint8_t)0x00) |
&
#define OUT_L out[0] |
shorthand macro for simplifying the reading of the left channel of a non-interleaved output buffer named out
#define OUT_R out[1] |
shorthand macro for simplifying the reading of the right channel of a non-interleaved output buffer named out
#define S162F_SCALE 3.0517578125e-05f |
1 / (2** 15)
#define S242F_SCALE 1.192092896e-07f |
1 / (2 ** 23)
#define S24SIGN 0x800000 |
2 ** 23
#define S322F_SCALE 4.6566129e-10f |
1 / (2** 31)
#define S82F_SCALE 0.0078125f |
1 / (2**7)
#define SD_DATATIMEOUT ((uint32_t)100000000) |
&
#define SD_NOT_PRESENT ((uint8_t)0x00) |
&
#define SD_PRESENT ((uint8_t)0x01) |
&
#define SD_TRANSFER_BUSY ((uint8_t)0x01) |
&
#define SD_TRANSFER_OK ((uint8_t)0x00) |
&
#define U82F_SCALE 0.0078740f |
1 / 127
void BSP_SD_AbortCallback | ( | void | ) |
These functions can be modified in case the current settings (e.g. DMA stream) need to be changed for specific application needs /n
Abort the callback
uint8_t BSP_SD_Erase | ( | uint32_t | StartAddr, |
uint32_t | EndAddr | ||
) |
Erase a section of memory
StartAddr | Address to start erasing at |
EndAddr | Address to stop erasing at |
void BSP_SD_GetCardInfo | ( | DSY_SD_CardInfoTypeDef * | CardInfo | ) |
*CardInfo | Pointer to write card info to |
CardInfo | & |
uint8_t BSP_SD_GetCardState | ( | void | ) |
uint8_t BSP_SD_Init | ( | void | ) |
uint8_t BSP_SD_IsDetected | ( | void | ) |
uint8_t BSP_SD_ITConfig | ( | void | ) |
uint8_t BSP_SD_ReadBlocks | ( | uint32_t * | pData, |
uint32_t | ReadAddr, | ||
uint32_t | NumOfBlocks, | ||
uint32_t | Timeout | ||
) |
*pData | & |
ReadAddr | Address to read from |
NumOfBlocks | Number of blocks to be read |
Timeout | Timeout len in ms |
uint8_t BSP_SD_ReadBlocks_DMA | ( | uint32_t * | pData, |
uint32_t | ReadAddr, | ||
uint32_t | NumOfBlocks | ||
) |
No timeout
*pData | & |
ReadAddr | Address to read from |
NumOfBlocks | Number of blocks to be read |
void BSP_SD_ReadCpltCallback | ( | void | ) |
Write complete callback
uint8_t BSP_SD_WriteBlocks | ( | uint32_t * | pData, |
uint32_t | WriteAddr, | ||
uint32_t | NumOfBlocks, | ||
uint32_t | Timeout | ||
) |
*pData | & |
WriteAddr | Address to write to |
NumOfBlocks | Number of blocks to be written |
Timeout | Timeout len in ms |
uint8_t BSP_SD_WriteBlocks_DMA | ( | uint32_t * | pData, |
uint32_t | WriteAddr, | ||
uint32_t | NumOfBlocks | ||
) |
No timeout
*pData | & |
WriteAddr | Address to write to |
NumOfBlocks | Number of blocks to be read |
void BSP_SD_WriteCpltCallback | ( | void | ) |
Read complete callback
FORCE_INLINE float cube | ( | float | x | ) |
Computes cube.
x | Number to be cubed |
void dsy_get_unique_id | ( | uint32_t * | w0, |
uint32_t * | w1, | ||
uint32_t * | w2 | ||
) |
Returns 96-bit Unique ID of the MCU
*w0 | First pointer |
*w1 | Second pointer |
*w2 | Third pointer |
FORCE_INLINE int16_t f2s16 | ( | float | x | ) |
Converts float to Signed 16-bit
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< close to 1.0f-LSB at 16 bit
< (2 ** 15) - 1
FORCE_INLINE int32_t f2s24 | ( | float | x | ) |
Converts float to Signed 24-bit
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< close to 1.0f-LSB at 16 bit
< 2 ** 23
FORCE_INLINE int32_t f2s32 | ( | float | x | ) |
Converts float to Signed 24-bit
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< close to 1.0f-LSB at 16 bit
< (2 ** 31) - 1
FORCE_INLINE int8_t f2s8 | ( | float | x | ) |
Converts float to Signed 8-bit
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< close to 1.0f-LSB at 16 bit
< (2 ** 7) - 1
FORCE_INLINE uint8_t f2u8 | ( | float | x | ) |
Converts float to unsigned 8-bit
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< - (1 - LSB)
< close to 1.0f-LSB at 16 bit
< close to 1.0f-LSB at 16 bit
< 128 - 1
< 128 - 1
FORCE_INLINE float s162f | ( | int16_t | x | ) |
Converts Signed 16-bit to float
x | Number to be scaled. |
< 1 / (2** 15)
FORCE_INLINE float s242f | ( | int32_t | x | ) |
Converts Signed 24-bit to float
< 2 ** 23
< 2 ** 23
< 1 / (2 ** 23)
FORCE_INLINE float s322f | ( | int32_t | x | ) |
Converts Signed 32-bit to float
< 1 / (2** 31)
FORCE_INLINE float s82f | ( | int8_t | x | ) |
Converts Signed 8-bit to float
x | Number to be scaled. |
< 1 / (2**7)
FORCE_INLINE float u82f | ( | uint8_t | x | ) |
Converts unsigned 8-bit to float
x | Number to be scaled. |
< 1 / 127
|
extern |
&
|
extern |
&
|
extern |
These are the different sizes of fonts (width x height in pixels per character)
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
&