Minor changes

This commit is contained in:
Andrea Zoppi 2015-06-27 18:34:33 +02:00
parent 0229440fba
commit b872d9409c
5 changed files with 253 additions and 244 deletions

View File

@ -92,7 +92,7 @@ static const ltdc_window_t ltdc_fullscreen_wincfg = {
0,
240 - 1,
0,
320 - 1
320 - 1,
};
static const ltdc_frame_t ltdc_view_frmcfg1 = {
@ -100,7 +100,7 @@ static const ltdc_frame_t ltdc_view_frmcfg1 = {
240,
320,
240 * sizeof(uint8_t),
LTDC_FMT_L8
LTDC_FMT_L8,
};
static const ltdc_laycfg_t ltdc_view_laycfg1 = {
@ -112,7 +112,7 @@ static const ltdc_laycfg_t ltdc_view_laycfg1 = {
wolf3d_palette,
256,
LTDC_BLEND_FIX1_FIX2,
LTDC_LEF_ENABLE | LTDC_LEF_PALETTE
(LTDC_LEF_ENABLE | LTDC_LEF_PALETTE),
};
static const ltdc_frame_t ltdc_screen_frmcfg1 = {
@ -120,7 +120,7 @@ static const ltdc_frame_t ltdc_screen_frmcfg1 = {
240,
320,
240 * 3,
LTDC_FMT_RGB888
LTDC_FMT_RGB888,
};
static const ltdc_laycfg_t ltdc_screen_laycfg1 = {
@ -132,7 +132,7 @@ static const ltdc_laycfg_t ltdc_screen_laycfg1 = {
NULL,
0,
LTDC_BLEND_FIX1_FIX2,
LTDC_LEF_ENABLE
LTDC_LEF_ENABLE,
};
static const LTDCConfig ltdc_cfg = {
@ -156,7 +156,7 @@ static const LTDCConfig ltdc_cfg = {
/* Color and layer settings.*/
LTDC_COLOR_TEAL,
&ltdc_view_laycfg1,
NULL
NULL,
};
extern LTDCDriver LTDCD1;
@ -165,7 +165,7 @@ const SPIConfig spi_cfg5 = {
NULL,
GPIOC,
GPIOC_SPI5_LCD_CS,
((1 << 3) & SPI_CR1_BR) | SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_MSTR
(((1 << 3) & SPI_CR1_BR) | SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_MSTR),
};
extern SPIDriver SPID5;
@ -444,7 +444,7 @@ static void cmd_write(BaseSequentialStream *chp, int argc, char *argv[]) {
/* Write data value to all SDRAM memory */
for (counter = 0; counter < IS42S16400J_SIZE; counter++)
{
*(__IO uint8_t*) (SDRAM_BANK_ADDR + counter) = (uint8_t)(ubWritedata_8b + counter);
*(volatile uint8_t*) (SDRAM_BANK_ADDR + counter) = (uint8_t)(ubWritedata_8b + counter);
}
chTMStopMeasurementX(&tm);
@ -476,7 +476,7 @@ static void cmd_erase(BaseSequentialStream *chp, int argc, char *argv[]) {
/* Erase SDRAM memory */
for (counter = 0; counter < IS42S16400J_SIZE; counter++)
{
*(__IO uint8_t*) (SDRAM_BANK_ADDR + counter) = (uint8_t)0x0;
*(volatile uint8_t*) (SDRAM_BANK_ADDR + counter) = (uint8_t)0x0;
}
//XXX chTMStopMeasurement(&tm);
@ -574,7 +574,7 @@ static void cmd_check(BaseSequentialStream *chp, int argc, char *argv[]) {
uwReadwritestatus = 0;
while ((counter < IS42S16400J_SIZE) && (uwReadwritestatus == 0))
{
ubReaddata_8b = *(__IO uint8_t*)(SDRAM_BANK_ADDR + counter);
ubReaddata_8b = *(volatile uint8_t*)(SDRAM_BANK_ADDR + counter);
if ( ubReaddata_8b != (uint8_t)(ubWritedata_8b + counter))
{
uwReadwritestatus = 1;
@ -613,13 +613,13 @@ static void cmd_sdram(BaseSequentialStream *chp, int argc, char *argv[]) {
// /* Erase SDRAM memory */
// for (counter = 0; counter < IS42S16400J_SIZE; counter++)
// {
// *(__IO uint8_t*) (SDRAM_BANK_ADDR + counter) = (uint8_t)0x0;
// *(volatile uint8_t*) (SDRAM_BANK_ADDR + counter) = (uint8_t)0x0;
// }
/* Write data value to all SDRAM memory */
for (counter = 0; counter < IS42S16400J_SIZE; counter++)
{
*(__IO uint8_t*) (SDRAM_BANK_ADDR + counter) = (uint8_t)(ubWritedata_8b + counter);
*(volatile uint8_t*) (SDRAM_BANK_ADDR + counter) = (uint8_t)(ubWritedata_8b + counter);
}
chTMStopMeasurementX(&tm);
@ -631,7 +631,7 @@ static void cmd_sdram(BaseSequentialStream *chp, int argc, char *argv[]) {
counter = 0;
while ((counter < IS42S16400J_SIZE))
{
ubReaddata_8b = *(__IO uint8_t*)(SDRAM_BANK_ADDR + counter);
ubReaddata_8b = *(volatile uint8_t*)(SDRAM_BANK_ADDR + counter);
counter++;
}
@ -643,7 +643,7 @@ static void cmd_sdram(BaseSequentialStream *chp, int argc, char *argv[]) {
uwReadwritestatus = 0;
while ((counter < IS42S16400J_SIZE) && (uwReadwritestatus == 0))
{
ubReaddata_8b = *(__IO uint8_t*)(SDRAM_BANK_ADDR + counter);
ubReaddata_8b = *(volatile uint8_t*)(SDRAM_BANK_ADDR + counter);
if ( ubReaddata_8b != (uint8_t)(ubWritedata_8b + counter))
{
uwReadwritestatus = 1;
@ -730,7 +730,8 @@ int main(void) {
#endif /* HAL_USE_SERIAL_USB */
/*
* Initialise SDRAM, board.h has already configured GPIO correctly (except that ST example uses 50MHz not 100MHz?)
* Initialise SDRAM, board.h has already configured GPIO correctly
* (except that ST example uses 50MHz not 100MHz?)
*/
SDRAM_Init();
sdram_bulk_erase();
@ -739,13 +740,16 @@ int main(void) {
* Activates the LCD-related drivers.
*/
spiStart(&SPID5, &spi_cfg5);
ili9341ObjectInit(&ILI9341D1);
ili9341Start(&ILI9341D1, &ili9341_cfg);
initialize_lcd();
ltdcInit();
ltdcStart(&LTDCD1, &ltdc_cfg);
/*
* Activates the DMA2D-related drivers.
*/
dma2dInit();
dma2dStart(&DMA2DD1, &dma2d_cfg);
dma2d_test();

View File

@ -274,8 +274,8 @@ void dma2dStart(DMA2DDriver *dma2dp, const DMA2DConfig *configp) {
/* Enable interrupts, except Line Watermark.*/
nvicEnableVector(STM32_DMA2D_NUMBER, STM32_DMA2D_IRQ_PRIORITY);
DMA2D->CR = DMA2D_CR_CEIE | DMA2D_CR_CTCIE | DMA2D_CR_CAEIE |
DMA2D_CR_TCIE | DMA2D_CR_TEIE;
DMA2D->CR = (DMA2D_CR_CEIE | DMA2D_CR_CTCIE | DMA2D_CR_CAEIE |
DMA2D_CR_TCIE | DMA2D_CR_TEIE);
dma2dp->state = DMA2D_READY;
chSysUnlock();
@ -453,8 +453,8 @@ void dma2dSetWatermarkPosI(DMA2DDriver *dma2dp, uint16_t line) {
osalDbgAssert(dma2dp->state == DMA2D_READY, "not ready");
(void)dma2dp;
DMA2D->LWR = (DMA2D->LWR & ~DMA2D_LWR_LW) |
((uint32_t)line & DMA2D_LWR_LW);
DMA2D->LWR = ((DMA2D->LWR & ~DMA2D_LWR_LW) |
((uint32_t)line & DMA2D_LWR_LW));
}
/**
@ -637,8 +637,8 @@ void dma2dSetDeadTimeI(DMA2DDriver *dma2dp, uint32_t cycles) {
osalDbgAssert(cycles <= DMA2D_MAX_DEADTIME_CYCLES, "bounds");
(void)dma2dp;
DMA2D->AMTCR = (DMA2D->AMTCR & ~DMA2D_AMTCR_DT) |
((cycles << 8) & DMA2D_AMTCR_DT);
DMA2D->AMTCR = ((DMA2D->AMTCR & ~DMA2D_AMTCR_DT) |
((cycles << 8) & DMA2D_AMTCR_DT));
}
/**
@ -823,7 +823,8 @@ void dma2dJobSetModeI(DMA2DDriver *dma2dp, dma2d_jobmode_t mode) {
osalDbgAssert((mode & ~DMA2D_CR_MODE) == 0, "bounds");
(void)dma2dp;
DMA2D->CR = (DMA2D->CR & ~DMA2D_CR_MODE) | ((uint32_t)mode & DMA2D_CR_MODE);
DMA2D->CR = ((DMA2D->CR & ~DMA2D_CR_MODE) |
((uint32_t)mode & DMA2D_CR_MODE));
}
/**
@ -907,8 +908,8 @@ void dma2dJobSetSizeI(DMA2DDriver *dma2dp, uint16_t width, uint16_t height) {
osalDbgAssert(height <= DMA2D_MAX_HEIGHT, "bounds");
(void)dma2dp;
DMA2D->NLR = (((uint32_t)width << 16) & DMA2D_NLR_PL) |
(((uint32_t)height << 0) & DMA2D_NLR_NL);
DMA2D->NLR = ((((uint32_t)width << 16) & DMA2D_NLR_PL) |
(((uint32_t)height << 0) & DMA2D_NLR_NL));
}
/**
@ -1290,8 +1291,8 @@ void dma2dBgSetWrapOffsetI(DMA2DDriver *dma2dp, size_t offset) {
osalDbgAssert(offset <= DMA2D_MAX_OFFSET, "bounds");
(void)dma2dp;
DMA2D->BGOR = (DMA2D->BGOR & ~DMA2D_BGOR_LO) |
((uint32_t)offset & DMA2D_BGOR_LO);
DMA2D->BGOR = ((DMA2D->BGOR & ~DMA2D_BGOR_LO) |
((uint32_t)offset & DMA2D_BGOR_LO));
}
/**
@ -1366,8 +1367,8 @@ void dma2dBgSetConstantAlphaI(DMA2DDriver *dma2dp, uint8_t a) {
osalDbgAssert(dma2dp->state == DMA2D_READY, "not ready");
(void)dma2dp;
DMA2D->BGPFCCR = (DMA2D->BGPFCCR & ~DMA2D_BGPFCCR_ALPHA) |
(((uint32_t)a << 24) & DMA2D_BGPFCCR_ALPHA);
DMA2D->BGPFCCR = ((DMA2D->BGPFCCR & ~DMA2D_BGPFCCR_ALPHA) |
(((uint32_t)a << 24) & DMA2D_BGPFCCR_ALPHA));
}
/**
@ -1444,8 +1445,8 @@ void dma2dBgSetAlphaModeI(DMA2DDriver *dma2dp, dma2d_amode_t mode) {
osalDbgAssert((mode & DMA2D_BGPFCCR_AM) != DMA2D_BGPFCCR_AM, "bounds");
(void)dma2dp;
DMA2D->BGPFCCR = (DMA2D->BGPFCCR & ~DMA2D_BGPFCCR_AM) |
((uint32_t)mode & DMA2D_BGPFCCR_AM);
DMA2D->BGPFCCR = ((DMA2D->BGPFCCR & ~DMA2D_BGPFCCR_AM) |
((uint32_t)mode & DMA2D_BGPFCCR_AM));
}
/**
@ -1521,8 +1522,8 @@ void dma2dBgSetPixelFormatI(DMA2DDriver *dma2dp, dma2d_pixfmt_t fmt) {
osalDbgAssert(fmt <= DMA2D_MAX_PIXFMT_ID, "bounds");
(void)dma2dp;
DMA2D->BGPFCCR = (DMA2D->BGPFCCR & ~DMA2D_BGPFCCR_CM) |
((uint32_t)fmt & DMA2D_BGPFCCR_CM);
DMA2D->BGPFCCR = ((DMA2D->BGPFCCR & ~DMA2D_BGPFCCR_CM) |
((uint32_t)fmt & DMA2D_BGPFCCR_CM));
}
/**
@ -1687,9 +1688,11 @@ void dma2dBgSetPaletteS(DMA2DDriver *dma2dp, const dma2d_palcfg_t *palettep) {
(palettep->fmt == DMA2D_FMT_RGB888)), "invalid format");
DMA2D->BGCMAR = (uint32_t)palettep->colorsp;
DMA2D->BGPFCCR = (DMA2D->BGPFCCR & ~(DMA2D_BGPFCCR_CS | DMA2D_BGPFCCR_CCM)) |
((((uint32_t)palettep->length - 1) << 8) & DMA2D_BGPFCCR_CS)
| ((uint32_t)palettep->fmt << 4);
DMA2D->BGPFCCR = (
(DMA2D->BGPFCCR & ~(DMA2D_BGPFCCR_CS | DMA2D_BGPFCCR_CCM)) |
((((uint32_t)palettep->length - 1) << 8) & DMA2D_BGPFCCR_CS) |
((uint32_t)palettep->fmt << 4)
);
dma2dp->state = DMA2D_ACTIVE;
DMA2D->BGPFCCR |= DMA2D_BGPFCCR_START;
@ -1953,8 +1956,8 @@ void dma2dFgSetWrapOffsetI(DMA2DDriver *dma2dp, size_t offset) {
osalDbgAssert(offset <= DMA2D_MAX_OFFSET, "bounds");
(void)dma2dp;
DMA2D->FGOR = (DMA2D->FGOR & ~DMA2D_FGOR_LO) |
((uint32_t)offset & DMA2D_FGOR_LO);
DMA2D->FGOR = ((DMA2D->FGOR & ~DMA2D_FGOR_LO) |
((uint32_t)offset & DMA2D_FGOR_LO));
}
/**
@ -2029,8 +2032,8 @@ void dma2dFgSetConstantAlphaI(DMA2DDriver *dma2dp, uint8_t a) {
osalDbgAssert(dma2dp->state == DMA2D_READY, "not ready");
(void)dma2dp;
DMA2D->FGPFCCR = (DMA2D->FGPFCCR & ~DMA2D_FGPFCCR_ALPHA) |
(((uint32_t)a << 24) & DMA2D_FGPFCCR_ALPHA);
DMA2D->FGPFCCR = ((DMA2D->FGPFCCR & ~DMA2D_FGPFCCR_ALPHA) |
(((uint32_t)a << 24) & DMA2D_FGPFCCR_ALPHA));
}
/**
@ -2107,8 +2110,8 @@ void dma2dFgSetAlphaModeI(DMA2DDriver *dma2dp, dma2d_amode_t mode) {
osalDbgAssert((mode & DMA2D_FGPFCCR_AM) != DMA2D_FGPFCCR_AM, "bounds");
(void)dma2dp;
DMA2D->FGPFCCR = (DMA2D->FGPFCCR & ~DMA2D_FGPFCCR_AM) |
((uint32_t)mode & DMA2D_FGPFCCR_AM);
DMA2D->FGPFCCR = ((DMA2D->FGPFCCR & ~DMA2D_FGPFCCR_AM) |
((uint32_t)mode & DMA2D_FGPFCCR_AM));
}
/**
@ -2184,8 +2187,8 @@ void dma2dFgSetPixelFormatI(DMA2DDriver *dma2dp, dma2d_pixfmt_t fmt) {
osalDbgAssert(fmt <= DMA2D_MAX_PIXFMT_ID, "bounds");
(void)dma2dp;
DMA2D->FGPFCCR = (DMA2D->FGPFCCR & ~DMA2D_FGPFCCR_CM) |
((uint32_t)fmt & DMA2D_FGPFCCR_CM);
DMA2D->FGPFCCR = ((DMA2D->FGPFCCR & ~DMA2D_FGPFCCR_CM) |
((uint32_t)fmt & DMA2D_FGPFCCR_CM));
}
/**
@ -2350,9 +2353,11 @@ void dma2dFgSetPaletteS(DMA2DDriver *dma2dp, const dma2d_palcfg_t *palettep) {
(palettep->fmt == DMA2D_FMT_RGB888)), "invalid format");
DMA2D->FGCMAR = (uint32_t)palettep->colorsp;
DMA2D->FGPFCCR = (DMA2D->FGPFCCR & ~(DMA2D_FGPFCCR_CS | DMA2D_FGPFCCR_CCM)) |
((((uint32_t)palettep->length - 1) << 8) & DMA2D_FGPFCCR_CS)
| ((uint32_t)palettep->fmt << 4);
DMA2D->FGPFCCR = (
(DMA2D->FGPFCCR & ~(DMA2D_FGPFCCR_CS | DMA2D_FGPFCCR_CCM)) |
((((uint32_t)palettep->length - 1) << 8) & DMA2D_FGPFCCR_CS) |
((uint32_t)palettep->fmt << 4)
);
dma2dp->state = DMA2D_ACTIVE;
DMA2D->FGPFCCR |= DMA2D_FGPFCCR_START;
@ -2616,8 +2621,8 @@ void dma2dOutSetWrapOffsetI(DMA2DDriver *dma2dp, size_t offset) {
osalDbgAssert(offset <= DMA2D_MAX_OFFSET, "bounds");
(void)dma2dp;
DMA2D->OOR = (DMA2D->OOR & ~DMA2D_OOR_LO) |
((uint32_t)offset & DMA2D_OOR_LO);
DMA2D->OOR = ((DMA2D->OOR & ~DMA2D_OOR_LO) |
((uint32_t)offset & DMA2D_OOR_LO));
}
/**
@ -2693,8 +2698,8 @@ void dma2dOutSetPixelFormatI(DMA2DDriver *dma2dp, dma2d_pixfmt_t fmt) {
osalDbgAssert(fmt <= DMA2D_MAX_OUTPIXFMT_ID, "bounds");
(void)dma2dp;
DMA2D->OPFCCR = (DMA2D->OPFCCR & ~DMA2D_OPFCCR_CM) |
((uint32_t)fmt & DMA2D_OPFCCR_CM);
DMA2D->OPFCCR = ((DMA2D->OPFCCR & ~DMA2D_OPFCCR_CM) |
((uint32_t)fmt & DMA2D_OPFCCR_CM));
}
/**
@ -2999,44 +3004,44 @@ dma2d_color_t dma2dFromARGB8888(dma2d_color_t c, dma2d_pixfmt_t fmt) {
return c;
}
case DMA2D_FMT_RGB888: {
return c & 0x00FFFFFF;
return (c & 0x00FFFFFF);
}
case DMA2D_FMT_RGB565: {
return ((c & 0x000000F8) >> ( 8 - 5)) |
((c & 0x0000FC00) >> (16 - 11)) |
((c & 0x00F80000) >> (24 - 16));
return (((c & 0x000000F8) >> ( 8 - 5)) |
((c & 0x0000FC00) >> (16 - 11)) |
((c & 0x00F80000) >> (24 - 16)));
}
case DMA2D_FMT_ARGB1555: {
return ((c & 0x000000F8) >> ( 8 - 5)) |
((c & 0x0000F800) >> (16 - 10)) |
((c & 0x00F80000) >> (24 - 15)) |
((c & 0x80000000) >> (32 - 16));
return (((c & 0x000000F8) >> ( 8 - 5)) |
((c & 0x0000F800) >> (16 - 10)) |
((c & 0x00F80000) >> (24 - 15)) |
((c & 0x80000000) >> (32 - 16)));
}
case DMA2D_FMT_ARGB4444: {
return ((c & 0x000000F0) >> ( 8 - 4)) |
((c & 0x0000F000) >> (16 - 8)) |
((c & 0x00F00000) >> (24 - 12)) |
((c & 0xF0000000) >> (32 - 16));
return (((c & 0x000000F0) >> ( 8 - 4)) |
((c & 0x0000F000) >> (16 - 8)) |
((c & 0x00F00000) >> (24 - 12)) |
((c & 0xF0000000) >> (32 - 16)));
}
case DMA2D_FMT_L8: {
return c & 0x000000FF;
return (c & 0x000000FF);
}
case DMA2D_FMT_AL44: {
return ((c & 0x000000F0) >> ( 8 - 4)) |
((c & 0xF0000000) >> (32 - 8));
return (((c & 0x000000F0) >> ( 8 - 4)) |
((c & 0xF0000000) >> (32 - 8)));
}
case DMA2D_FMT_AL88: {
return ((c & 0x000000FF) >> ( 8 - 8)) |
((c & 0xFF000000) >> (32 - 16));
return (((c & 0x000000FF) >> ( 8 - 8)) |
((c & 0xFF000000) >> (32 - 16)));
}
case DMA2D_FMT_L4: {
return c & 0x0000000F;
return (c & 0x0000000F);
}
case DMA2D_FMT_A8: {
return (c & 0xFF000000) >> (32 - 8);
return ((c & 0xFF000000) >> (32 - 8));
}
case DMA2D_FMT_A4: {
return (c & 0xF0000000) >> (32 - 4);
return ((c & 0xF0000000) >> (32 - 4));
}
default:
osalDbgAssert(false, "invalid format");
@ -3063,29 +3068,29 @@ dma2d_color_t dma2dToARGB8888(dma2d_color_t c, dma2d_pixfmt_t fmt) {
return c;
}
case DMA2D_FMT_RGB888: {
return (c & 0x00FFFFFF) | 0xFF000000;
return ((c & 0x00FFFFFF) | 0xFF000000);
}
case DMA2D_FMT_RGB565: {
register dma2d_color_t output = 0xFF000000;
if (c & 0x001F) output |= ((c & 0x001F) << ( 8 - 5)) | 0x00000007;
if (c & 0x07E0) output |= ((c & 0x07E0) << (16 - 11)) | 0x00000300;
if (c & 0xF800) output |= ((c & 0xF800) << (24 - 16)) | 0x00070000;
if (c & 0x001F) output |= (((c & 0x001F) << ( 8 - 5)) | 0x00000007);
if (c & 0x07E0) output |= (((c & 0x07E0) << (16 - 11)) | 0x00000300);
if (c & 0xF800) output |= (((c & 0xF800) << (24 - 16)) | 0x00070000);
return output;
}
case DMA2D_FMT_ARGB1555: {
register dma2d_color_t output = 0x00000000;
if (c & 0x001F) output |= ((c & 0x001F) << ( 8 - 5)) | 0x00000007;
if (c & 0x03E0) output |= ((c & 0x03E0) << (16 - 10)) | 0x00000700;
if (c & 0x7C00) output |= ((c & 0x7C00) << (24 - 15)) | 0x00070000;
if (c & 0x001F) output |= (((c & 0x001F) << ( 8 - 5)) | 0x00000007);
if (c & 0x03E0) output |= (((c & 0x03E0) << (16 - 10)) | 0x00000700);
if (c & 0x7C00) output |= (((c & 0x7C00) << (24 - 15)) | 0x00070000);
if (c & 0x8000) output |= 0xFF000000;
return output;
}
case DMA2D_FMT_ARGB4444: {
register dma2d_color_t output = 0x00000000;
if (c & 0x000F) output |= ((c & 0x000F) << ( 8 - 4)) | 0x0000000F;
if (c & 0x00F0) output |= ((c & 0x00F0) << (16 - 8)) | 0x00000F00;
if (c & 0x0F00) output |= ((c & 0x0F00) << (24 - 12)) | 0x000F0000;
if (c & 0xF000) output |= ((c & 0xF000) << (32 - 16)) | 0x0F000000;
if (c & 0x000F) output |= (((c & 0x000F) << ( 8 - 4)) | 0x0000000F);
if (c & 0x00F0) output |= (((c & 0x00F0) << (16 - 8)) | 0x00000F00);
if (c & 0x0F00) output |= (((c & 0x0F00) << (24 - 12)) | 0x000F0000);
if (c & 0xF000) output |= (((c & 0xF000) << (32 - 16)) | 0x0F000000);
return output;
}
case DMA2D_FMT_L8: {
@ -3093,22 +3098,22 @@ dma2d_color_t dma2dToARGB8888(dma2d_color_t c, dma2d_pixfmt_t fmt) {
}
case DMA2D_FMT_AL44: {
register dma2d_color_t output = 0x00000000;
if (c & 0x0F) output |= ((c & 0x0F) << ( 8 - 4)) | 0x0000000F;
if (c & 0xF0) output |= ((c & 0xF0) << (32 - 8)) | 0x0F000000;
if (c & 0x0F) output |= (((c & 0x0F) << ( 8 - 4)) | 0x0000000F);
if (c & 0xF0) output |= (((c & 0xF0) << (32 - 8)) | 0x0F000000);
return output;
}
case DMA2D_FMT_AL88: {
return ((c & 0x00FF) << ( 8 - 8)) |
((c & 0xFF00) << (32 - 16));
return (((c & 0x00FF) << ( 8 - 8)) |
((c & 0xFF00) << (32 - 16)));
}
case DMA2D_FMT_L4: {
return (c & 0x0F) | 0xFF000000;
return ((c & 0x0F) | 0xFF000000);
}
case DMA2D_FMT_A8: {
return (c & 0xFF) << (32 - 8);
return ((c & 0xFF) << (32 - 8));
}
case DMA2D_FMT_A4: {
return (c & 0x0F) << (32 - 4);
return ((c & 0x0F) << (32 - 4));
}
default:
osalDbgAssert(false, "invalid format");

View File

@ -29,7 +29,7 @@
* @brief Using the DMA2D driver.
*/
#if !defined(STM32_DMA2D_USE_DMA2D) || defined(__DOXYGEN__)
#define STM32_DMA2D_USE_DMA2D FALSE
#define STM32_DMA2D_USE_DMA2D (FALSE)
#endif
#if (TRUE == STM32_DMA2D_USE_DMA2D) || defined(__DOXYGEN__)
@ -261,7 +261,7 @@ typedef uint32_t dma2d_color_t;
/**
* @brief DMA2D color aliases.
* @detail Mapped with ARGB-8888, except for luminance (L mapped onto B).
* Padding fields prefixed with <tt>'x'</tt>, which should be clear
* Padding fields are prefixed with <tt>'x'</tt>, and should be clear
* (all 0) before compression and set (all 1) after expansion.
*/
typedef union dma2d_coloralias_t {

View File

@ -337,8 +337,8 @@ void ltdcStart(LTDCDriver *ltdcp, const LTDCConfig *configp) {
hacc = configp->hsync_width - 1;
vacc = configp->vsync_height - 1;
LTDC->SSCR = ((hacc << 16) & LTDC_SSCR_HSW) |
((vacc << 0) & LTDC_SSCR_VSH);
LTDC->SSCR = (((hacc << 16) & LTDC_SSCR_HSW) |
((vacc << 0) & LTDC_SSCR_VSH));
/* Set accumulated back porch params.*/
osalDbgAssert(configp->hbp_width >= LTDC_MIN_HBP_WIDTH, "bounds");
@ -354,8 +354,8 @@ void ltdcStart(LTDCDriver *ltdcp, const LTDCConfig *configp) {
osalDbgAssert(vacc + 1 >= LTDC_MIN_ACC_VBP_HEIGHT, "bounds");
osalDbgAssert(vacc + 1 <= LTDC_MAX_ACC_VBP_HEIGHT, "bounds");
LTDC->BPCR = ((hacc << 16) & LTDC_BPCR_AHBP) |
((vacc << 0) & LTDC_BPCR_AVBP);
LTDC->BPCR = (((hacc << 16) & LTDC_BPCR_AHBP) |
((vacc << 0) & LTDC_BPCR_AVBP));
ltdcp->active_window.hstart = hacc + 1;
ltdcp->active_window.vstart = vacc + 1;
@ -374,8 +374,8 @@ void ltdcStart(LTDCDriver *ltdcp, const LTDCConfig *configp) {
osalDbgAssert(vacc + 1 >= LTDC_MIN_ACC_ACTIVE_HEIGHT, "bounds");
osalDbgAssert(vacc + 1 <= LTDC_MAX_ACC_ACTIVE_HEIGHT, "bounds");
LTDC->AWCR = ((hacc << 16) & LTDC_AWCR_AAW) |
((vacc << 0) & LTDC_AWCR_AAH);
LTDC->AWCR = (((hacc << 16) & LTDC_AWCR_AAW) |
((vacc << 0) & LTDC_AWCR_AAH));
ltdcp->active_window.hstop = hacc;
ltdcp->active_window.vstop = vacc;
@ -394,8 +394,8 @@ void ltdcStart(LTDCDriver *ltdcp, const LTDCConfig *configp) {
osalDbgAssert(vacc + 1 >= LTDC_MIN_ACC_TOTAL_HEIGHT, "bounds");
osalDbgAssert(vacc + 1 <= LTDC_MAX_ACC_TOTAL_HEIGHT, "bounds");
LTDC->TWCR = ((hacc << 16) & LTDC_TWCR_TOTALW) |
((vacc << 0) & LTDC_TWCR_TOTALH);
LTDC->TWCR = (((hacc << 16) & LTDC_TWCR_TOTALW) |
((vacc << 0) & LTDC_TWCR_TOTALH));
/* Set signal polarities and other flags.*/
ltdcSetEnableFlagsI(ltdcp, configp->flags & ~LTDC_EF_ENABLE);
@ -980,8 +980,8 @@ void ltdcSetLineInterruptPosI(LTDCDriver *ltdcp, uint16_t line) {
osalDbgCheck(ltdcp == &LTDCD1);
(void)ltdcp;
LTDC->LIPCR = (LTDC->LIPCR & ~LTDC_LIPCR_LIPOS) |
((uint32_t)line & LTDC_LIPCR_LIPOS);
LTDC->LIPCR = ((LTDC->LIPCR & ~LTDC_LIPCR_LIPOS) |
((uint32_t)line & LTDC_LIPCR_LIPOS));
}
/**
@ -1203,8 +1203,8 @@ void ltdcBgSetEnableFlagsI(LTDCDriver *ltdcp, ltdc_flags_t flags) {
osalDbgCheck(ltdcp == &LTDCD1);
(void)ltdcp;
LTDC_Layer1->CR = (LTDC_Layer1->CR & ~LTDC_LEF_MASK) |
((uint32_t)flags & LTDC_LEF_MASK);
LTDC_Layer1->CR = ((LTDC_Layer1->CR & ~LTDC_LEF_MASK) |
((uint32_t)flags & LTDC_LEF_MASK));
}
/**
@ -1453,7 +1453,7 @@ void ltdcBgSetPaletteColorI(LTDCDriver *ltdcp, uint8_t slot, ltdc_color_t c) {
osalDbgAssert(!ltdcBgIsEnabledI(ltdcp), "invalid state");
(void)ltdcp;
LTDC_Layer1->CLUTWR = ((uint32_t)slot << 24) | (c & 0x00FFFFFF);
LTDC_Layer1->CLUTWR = (((uint32_t)slot << 24) | (c & 0x00FFFFFF));
}
/**
@ -1499,7 +1499,7 @@ void ltdcBgSetPaletteI(LTDCDriver *ltdcp, const ltdc_color_t colors[],
(void)ltdcp;
for (i = 0; i < length; ++i)
LTDC_Layer1->CLUTWR = ((uint32_t)i << 24) | (colors[i] & 0x00FFFFFF);
LTDC_Layer1->CLUTWR = (((uint32_t)i << 24) | (colors[i] & 0x00FFFFFF));
}
/**
@ -1576,8 +1576,8 @@ void ltdcBgSetPixelFormatI(LTDCDriver *ltdcp, ltdc_pixfmt_t fmt) {
osalDbgAssert(fmt <= LTDC_MAX_PIXFMT_ID, "bounds");
(void)ltdcp;
LTDC_Layer1->PFCR = (LTDC_Layer1->PFCR & ~LTDC_LxPFCR_PF) |
((uint32_t)fmt & LTDC_LxPFCR_PF);
LTDC_Layer1->PFCR = ((LTDC_Layer1->PFCR & ~LTDC_LxPFCR_PF) |
((uint32_t)fmt & LTDC_LxPFCR_PF));
}
/**
@ -1755,8 +1755,8 @@ void ltdcBgSetKeyingColorI(LTDCDriver *ltdcp, ltdc_color_t c) {
osalDbgCheck(ltdcp == &LTDCD1);
(void)ltdcp;
LTDC_Layer1->CKCR = (LTDC_Layer1->CKCR & ~0x00FFFFFF) |
((uint32_t)c & 0x00FFFFFF);
LTDC_Layer1->CKCR = ((LTDC_Layer1->CKCR & ~0x00FFFFFF) |
((uint32_t)c & 0x00FFFFFF));
}
/**
@ -1828,8 +1828,8 @@ void ltdcBgSetConstantAlphaI(LTDCDriver *ltdcp, uint8_t a) {
osalDbgCheck(ltdcp == &LTDCD1);
(void)ltdcp;
LTDC_Layer1->CACR = (LTDC_Layer1->CACR & ~LTDC_LxCACR_CONSTA) |
((uint32_t)a & LTDC_LxCACR_CONSTA);
LTDC_Layer1->CACR = ((LTDC_Layer1->CACR & ~LTDC_LxCACR_CONSTA) |
((uint32_t)a & LTDC_LxCACR_CONSTA));
}
/**
@ -1973,8 +1973,8 @@ void ltdcBgSetBlendingFactorsI(LTDCDriver *ltdcp, ltdc_blendf_t bf) {
osalDbgCheck(ltdcp == &LTDCD1);
(void)ltdcp;
LTDC_Layer1->BFCR = (LTDC_Layer1->BFCR & ~LTDC_LxBFCR_BF) |
((uint32_t)bf & LTDC_LxBFCR_BF);
LTDC_Layer1->BFCR = ((LTDC_Layer1->BFCR & ~LTDC_LxBFCR_BF) |
((uint32_t)bf & LTDC_LxBFCR_BF));
}
/**
@ -2063,8 +2063,8 @@ void ltdcBgSetWindowI(LTDCDriver *ltdcp, const ltdc_window_t *windowp) {
osalDbgAssert(start >= ltdcp->active_window.hstart, "bounds");
osalDbgAssert(stop <= ltdcp->active_window.hstop, "bounds");
LTDC_Layer1->WHPCR = ((start << 0) & LTDC_LxWHPCR_WHSTPOS) |
((stop << 16) & LTDC_LxWHPCR_WHSPPOS);
LTDC_Layer1->WHPCR = (((start << 0) & LTDC_LxWHPCR_WHSTPOS) |
((stop << 16) & LTDC_LxWHPCR_WHSPPOS));
/* Vertical boundaries.*/
start = (uint32_t)windowp->vstart + ltdcp->active_window.vstart;
@ -2073,8 +2073,8 @@ void ltdcBgSetWindowI(LTDCDriver *ltdcp, const ltdc_window_t *windowp) {
osalDbgAssert(start >= ltdcp->active_window.vstart, "bounds");
osalDbgAssert(stop <= ltdcp->active_window.vstop, "bounds");
LTDC_Layer1->WVPCR = ((start << 0) & LTDC_LxWVPCR_WVSTPOS) |
((stop << 16) & LTDC_LxWVPCR_WVSPPOS);
LTDC_Layer1->WVPCR = (((start << 0) & LTDC_LxWVPCR_WVSTPOS) |
((stop << 16) & LTDC_LxWVPCR_WVSPPOS));
}
/**
@ -2199,7 +2199,7 @@ void ltdcBgSetFrameI(LTDCDriver *ltdcp, const ltdc_frame_t *framep) {
LTDC_Layer1->CFBAR = (uint32_t)framep->bufferp & LTDC_LxCFBAR_CFBADD;
LTDC_Layer1->CFBLR = ((((uint32_t)framep->pitch << 16) & LTDC_LxCFBLR_CFBP) |
((linesize + 3) & LTDC_LxCFBLR_CFBLL));
((linesize + 3) & LTDC_LxCFBLR_CFBLL));
LTDC_Layer1->CFBLNR = (uint32_t)framep->height & LTDC_LxCFBLNR_CFBLNBR;
}
@ -2453,8 +2453,8 @@ void ltdcFgSetEnableFlagsI(LTDCDriver *ltdcp, ltdc_flags_t flags) {
osalDbgCheck(ltdcp == &LTDCD1);
(void)ltdcp;
LTDC_Layer2->CR = (LTDC_Layer2->CR & ~LTDC_LEF_MASK) |
((uint32_t)flags & LTDC_LEF_MASK);
LTDC_Layer2->CR = ((LTDC_Layer2->CR & ~LTDC_LEF_MASK) |
((uint32_t)flags & LTDC_LEF_MASK));
}
/**
@ -2703,7 +2703,7 @@ void ltdcFgSetPaletteColorI(LTDCDriver *ltdcp, uint8_t slot, ltdc_color_t c) {
osalDbgAssert(!ltdcFgIsEnabledI(ltdcp), "invalid state");
(void)ltdcp;
LTDC_Layer2->CLUTWR = ((uint32_t)slot << 24) | (c & 0x00FFFFFF);
LTDC_Layer2->CLUTWR = (((uint32_t)slot << 24) | (c & 0x00FFFFFF));
}
/**
@ -2749,7 +2749,7 @@ void ltdcFgSetPaletteI(LTDCDriver *ltdcp, const ltdc_color_t colors[],
(void)ltdcp;
for (i = 0; i < length; ++i)
LTDC_Layer2->CLUTWR = ((uint32_t)i << 24) | (colors[i] & 0x00FFFFFF);
LTDC_Layer2->CLUTWR = (((uint32_t)i << 24) | (colors[i] & 0x00FFFFFF));
}
/**
@ -2826,8 +2826,8 @@ void ltdcFgSetPixelFormatI(LTDCDriver *ltdcp, ltdc_pixfmt_t fmt) {
osalDbgAssert(fmt <= LTDC_MAX_PIXFMT_ID, "bounds");
(void)ltdcp;
LTDC_Layer2->PFCR = (LTDC_Layer2->PFCR & ~LTDC_LxPFCR_PF) |
((uint32_t)fmt & LTDC_LxPFCR_PF);
LTDC_Layer2->PFCR = ((LTDC_Layer2->PFCR & ~LTDC_LxPFCR_PF) |
((uint32_t)fmt & LTDC_LxPFCR_PF));
}
/**
@ -3005,8 +3005,8 @@ void ltdcFgSetKeyingColorI(LTDCDriver *ltdcp, ltdc_color_t c) {
osalDbgCheck(ltdcp == &LTDCD1);
(void)ltdcp;
LTDC_Layer2->CKCR = (LTDC_Layer2->CKCR & ~0x00FFFFFF) |
((uint32_t)c & 0x00FFFFFF);
LTDC_Layer2->CKCR = ((LTDC_Layer2->CKCR & ~0x00FFFFFF) |
((uint32_t)c & 0x00FFFFFF));
}
/**
@ -3078,8 +3078,8 @@ void ltdcFgSetConstantAlphaI(LTDCDriver *ltdcp, uint8_t a) {
osalDbgCheck(ltdcp == &LTDCD1);
(void)ltdcp;
LTDC_Layer2->CACR = (LTDC_Layer2->CACR & ~LTDC_LxCACR_CONSTA) |
((uint32_t)a & LTDC_LxCACR_CONSTA);
LTDC_Layer2->CACR = ((LTDC_Layer2->CACR & ~LTDC_LxCACR_CONSTA) |
((uint32_t)a & LTDC_LxCACR_CONSTA));
}
/**
@ -3223,8 +3223,8 @@ void ltdcFgSetBlendingFactorsI(LTDCDriver *ltdcp, ltdc_blendf_t bf) {
osalDbgCheck(ltdcp == &LTDCD1);
(void)ltdcp;
LTDC_Layer2->BFCR = (LTDC_Layer2->BFCR & ~LTDC_LxBFCR_BF) |
((uint32_t)bf & LTDC_LxBFCR_BF);
LTDC_Layer2->BFCR = ((LTDC_Layer2->BFCR & ~LTDC_LxBFCR_BF) |
((uint32_t)bf & LTDC_LxBFCR_BF));
}
/**
@ -3313,8 +3313,8 @@ void ltdcFgSetWindowI(LTDCDriver *ltdcp, const ltdc_window_t *windowp) {
osalDbgAssert(start >= ltdcp->active_window.hstart, "bounds");
osalDbgAssert(stop <= ltdcp->active_window.hstop, "bounds");
LTDC_Layer2->WHPCR = ((start << 0) & LTDC_LxWHPCR_WHSTPOS) |
((stop << 16) & LTDC_LxWHPCR_WHSPPOS);
LTDC_Layer2->WHPCR = (((start << 0) & LTDC_LxWHPCR_WHSTPOS) |
((stop << 16) & LTDC_LxWHPCR_WHSPPOS));
/* Vertical boundaries.*/
start = (uint32_t)windowp->vstart + ltdcp->active_window.vstart;
@ -3323,8 +3323,8 @@ void ltdcFgSetWindowI(LTDCDriver *ltdcp, const ltdc_window_t *windowp) {
osalDbgAssert(start >= ltdcp->active_window.vstart, "bounds");
osalDbgAssert(stop <= ltdcp->active_window.vstop, "bounds");
LTDC_Layer2->WVPCR = ((start << 0) & LTDC_LxWVPCR_WVSTPOS) |
((stop << 16) & LTDC_LxWVPCR_WVSPPOS);
LTDC_Layer2->WVPCR = (((start << 0) & LTDC_LxWVPCR_WVSTPOS) |
((stop << 16) & LTDC_LxWVPCR_WVSPPOS));
}
/**
@ -3449,7 +3449,7 @@ void ltdcFgSetFrameI(LTDCDriver *ltdcp, const ltdc_frame_t *framep) {
LTDC_Layer2->CFBAR = (uint32_t)framep->bufferp & LTDC_LxCFBAR_CFBADD;
LTDC_Layer2->CFBLR = ((((uint32_t)framep->pitch << 16) & LTDC_LxCFBLR_CFBP) |
((linesize + 3) & LTDC_LxCFBLR_CFBLL));
((linesize + 3) & LTDC_LxCFBLR_CFBLL));
LTDC_Layer2->CFBLNR = (uint32_t)framep->height & LTDC_LxCFBLNR_CFBLNBR;
}
@ -3684,35 +3684,35 @@ ltdc_color_t ltdcFromARGB8888(ltdc_color_t c, ltdc_pixfmt_t fmt) {
return c;
}
case LTDC_FMT_RGB888: {
return c & 0x00FFFFFF;
return (c & 0x00FFFFFF);
}
case LTDC_FMT_RGB565: {
return ((c & 0x000000F8) >> ( 8 - 5)) |
((c & 0x0000FC00) >> (16 - 11)) |
((c & 0x00F80000) >> (24 - 16));
return (((c & 0x000000F8) >> ( 8 - 5)) |
((c & 0x0000FC00) >> (16 - 11)) |
((c & 0x00F80000) >> (24 - 16)));
}
case LTDC_FMT_ARGB1555: {
return ((c & 0x000000F8) >> ( 8 - 5)) |
((c & 0x0000F800) >> (16 - 10)) |
((c & 0x00F80000) >> (24 - 15)) |
((c & 0x80000000) >> (32 - 16));
return (((c & 0x000000F8) >> ( 8 - 5)) |
((c & 0x0000F800) >> (16 - 10)) |
((c & 0x00F80000) >> (24 - 15)) |
((c & 0x80000000) >> (32 - 16)));
}
case LTDC_FMT_ARGB4444: {
return ((c & 0x000000F0) >> ( 8 - 4)) |
((c & 0x0000F000) >> (16 - 8)) |
((c & 0x00F00000) >> (24 - 12)) |
((c & 0xF0000000) >> (32 - 16));
return (((c & 0x000000F0) >> ( 8 - 4)) |
((c & 0x0000F000) >> (16 - 8)) |
((c & 0x00F00000) >> (24 - 12)) |
((c & 0xF0000000) >> (32 - 16)));
}
case LTDC_FMT_L8: {
return c & 0x000000FF;
return (c & 0x000000FF);
}
case LTDC_FMT_AL44: {
return ((c & 0x000000F0) >> ( 8 - 4)) |
((c & 0xF0000000) >> (32 - 8));
return (((c & 0x000000F0) >> ( 8 - 4)) |
((c & 0xF0000000) >> (32 - 8)));
}
case LTDC_FMT_AL88: {
return ((c & 0x000000FF) >> ( 8 - 8)) |
((c & 0xFF000000) >> (32 - 16));
return (((c & 0x000000FF) >> ( 8 - 8)) |
((c & 0xFF000000) >> (32 - 16)));
}
default:
osalDbgAssert(false, "invalid format");
@ -3739,43 +3739,43 @@ ltdc_color_t ltdcToARGB8888(ltdc_color_t c, ltdc_pixfmt_t fmt) {
return c;
}
case LTDC_FMT_RGB888: {
return (c & 0x00FFFFFF) | 0xFF000000;
return ((c & 0x00FFFFFF) | 0xFF000000);
}
case LTDC_FMT_RGB565: {
register ltdc_color_t output = 0xFF000000;
if (c & 0x001F) output |= ((c & 0x001F) << ( 8 - 5)) | 0x00000007;
if (c & 0x07E0) output |= ((c & 0x07E0) << (16 - 11)) | 0x00000300;
if (c & 0xF800) output |= ((c & 0xF800) << (24 - 16)) | 0x00070000;
if (c & 0x001F) output |= (((c & 0x001F) << ( 8 - 5)) | 0x00000007);
if (c & 0x07E0) output |= (((c & 0x07E0) << (16 - 11)) | 0x00000300);
if (c & 0xF800) output |= (((c & 0xF800) << (24 - 16)) | 0x00070000);
return output;
}
case LTDC_FMT_ARGB1555: {
register ltdc_color_t output = 0x00000000;
if (c & 0x001F) output |= ((c & 0x001F) << ( 8 - 5)) | 0x00000007;
if (c & 0x03E0) output |= ((c & 0x03E0) << (16 - 10)) | 0x00000700;
if (c & 0x7C00) output |= ((c & 0x7C00) << (24 - 15)) | 0x00070000;
if (c & 0x001F) output |= (((c & 0x001F) << ( 8 - 5)) | 0x00000007);
if (c & 0x03E0) output |= (((c & 0x03E0) << (16 - 10)) | 0x00000700);
if (c & 0x7C00) output |= (((c & 0x7C00) << (24 - 15)) | 0x00070000);
if (c & 0x8000) output |= 0xFF000000;
return output;
}
case LTDC_FMT_ARGB4444: {
register ltdc_color_t output = 0x00000000;
if (c & 0x000F) output |= ((c & 0x000F) << ( 8 - 4)) | 0x0000000F;
if (c & 0x00F0) output |= ((c & 0x00F0) << (16 - 8)) | 0x00000F00;
if (c & 0x0F00) output |= ((c & 0x0F00) << (24 - 12)) | 0x000F0000;
if (c & 0xF000) output |= ((c & 0xF000) << (32 - 16)) | 0x0F000000;
if (c & 0x000F) output |= (((c & 0x000F) << ( 8 - 4)) | 0x0000000F);
if (c & 0x00F0) output |= (((c & 0x00F0) << (16 - 8)) | 0x00000F00);
if (c & 0x0F00) output |= (((c & 0x0F00) << (24 - 12)) | 0x000F0000);
if (c & 0xF000) output |= (((c & 0xF000) << (32 - 16)) | 0x0F000000);
return output;
}
case LTDC_FMT_L8: {
return (c & 0xFF) | 0xFF000000;
return ((c & 0xFF) | 0xFF000000);
}
case LTDC_FMT_AL44: {
register ltdc_color_t output = 0x00000000;
if (c & 0x0F) output |= ((c & 0x0F) << ( 8 - 4)) | 0x0000000F;
if (c & 0xF0) output |= ((c & 0xF0) << (32 - 8)) | 0x0F000000;
if (c & 0x0F) output |= (((c & 0x0F) << ( 8 - 4)) | 0x0000000F);
if (c & 0xF0) output |= (((c & 0xF0) << (32 - 8)) | 0x0F000000);
return output;
}
case LTDC_FMT_AL88: {
return ((c & 0x00FF) << ( 8 - 8)) |
((c & 0xFF00) << (32 - 16));
return (((c & 0x00FF) << ( 8 - 8)) |
((c & 0xFF00) << (32 - 16)));
}
default:
osalDbgAssert(false, "invalid format");

View File

@ -29,7 +29,7 @@
* @brief Using the LTDC driver.
*/
#if !defined(STM32_LTDC_USE_LTDC) || defined(__DOXYGEN__)
#define STM32_LTDC_USE_LTDC FALSE
#define STM32_LTDC_USE_LTDC (FALSE)
#endif
#if (TRUE == STM32_LTDC_USE_LTDC) || defined(__DOXYGEN__)
@ -70,38 +70,38 @@
* @name LTDC pixel formats
* @{
*/
#define LTDC_FMT_ARGB8888 0 /**< ARGB-8888 format.*/
#define LTDC_FMT_RGB888 1 /**< RGB-888 format.*/
#define LTDC_FMT_RGB565 2 /**< RGB-565 format.*/
#define LTDC_FMT_ARGB1555 3 /**< ARGB-1555 format.*/
#define LTDC_FMT_ARGB4444 4 /**< ARGB-4444 format.*/
#define LTDC_FMT_L8 5 /**< L-8 format.*/
#define LTDC_FMT_AL44 6 /**< AL-44 format.*/
#define LTDC_FMT_AL88 7 /**< AL-88 format.*/
#define LTDC_FMT_ARGB8888 (0) /**< ARGB-8888 format.*/
#define LTDC_FMT_RGB888 (1) /**< RGB-888 format.*/
#define LTDC_FMT_RGB565 (2) /**< RGB-565 format.*/
#define LTDC_FMT_ARGB1555 (3) /**< ARGB-1555 format.*/
#define LTDC_FMT_ARGB4444 (4) /**< ARGB-4444 format.*/
#define LTDC_FMT_L8 (5) /**< L-8 format.*/
#define LTDC_FMT_AL44 (6) /**< AL-44 format.*/
#define LTDC_FMT_AL88 (7) /**< AL-88 format.*/
/** @} */
/**
* @name LTDC pixel format aliased raw masks
* @{
*/
#define LTDC_XMASK_ARGB8888 0xFFFFFFFF /**< ARGB-8888 aliased mask.*/
#define LTDC_XMASK_RGB888 0x00FFFFFF /**< RGB-888 aliased mask.*/
#define LTDC_XMASK_RGB565 0x00F8FCF8 /**< RGB-565 aliased mask.*/
#define LTDC_XMASK_ARGB1555 0x80F8F8F8 /**< ARGB-1555 aliased mask.*/
#define LTDC_XMASK_ARGB4444 0xF0F0F0F0 /**< ARGB-4444 aliased mask.*/
#define LTDC_XMASK_L8 0x000000FF /**< L-8 aliased mask.*/
#define LTDC_XMASK_AL44 0xF00000F0 /**< AL-44 aliased mask.*/
#define LTDC_XMASK_AL88 0xFF0000FF /**< AL-88 aliased mask.*/
#define LTDC_XMASK_ARGB8888 (0xFFFFFFFF) /**< ARGB-8888 aliased mask.*/
#define LTDC_XMASK_RGB888 (0x00FFFFFF) /**< RGB-888 aliased mask.*/
#define LTDC_XMASK_RGB565 (0x00F8FCF8) /**< RGB-565 aliased mask.*/
#define LTDC_XMASK_ARGB1555 (0x80F8F8F8) /**< ARGB-1555 aliased mask.*/
#define LTDC_XMASK_ARGB4444 (0xF0F0F0F0) /**< ARGB-4444 aliased mask.*/
#define LTDC_XMASK_L8 (0x000000FF) /**< L-8 aliased mask.*/
#define LTDC_XMASK_AL44 (0xF00000F0) /**< AL-44 aliased mask.*/
#define LTDC_XMASK_AL88 (0xFF0000FF) /**< AL-88 aliased mask.*/
/** @} */
/**
* @name LTDC blending factors
* @{
*/
#define LTDC_BLEND_FIX1_FIX2 0x0405 /**< cnst1; 1 - cnst2 */
#define LTDC_BLEND_FIX1_MOD2 0x0407 /**< cnst1; 1 - a2 * cnst2 */
#define LTDC_BLEND_MOD1_FIX2 0x0605 /**< a1 * cnst1; 1 - cnst2 */
#define LTDC_BLEND_MOD1_MOD2 0x0607 /**< a1 * cnst1; 1 - a2 * cnst2 */
#define LTDC_BLEND_FIX1_FIX2 (0x0405) /**< cnst1; 1 - cnst2 */
#define LTDC_BLEND_FIX1_MOD2 (0x0407) /**< cnst1; 1 - a2 * cnst2 */
#define LTDC_BLEND_MOD1_FIX2 (0x0605) /**< a1 * cnst1; 1 - cnst2 */
#define LTDC_BLEND_MOD1_MOD2 (0x0607) /**< a1 * cnst1; 1 - a2 * cnst2 */
/** @} */
/**
@ -109,70 +109,70 @@
* @{
*/
#define LTDC_MIN_SCREEN_WIDTH 1
#define LTDC_MIN_SCREEN_HEIGHT 1
#define LTDC_MAX_SCREEN_WIDTH 800
#define LTDC_MAX_SCREEN_HEIGHT 600
#define LTDC_MIN_SCREEN_WIDTH (1)
#define LTDC_MIN_SCREEN_HEIGHT (1)
#define LTDC_MAX_SCREEN_WIDTH (800)
#define LTDC_MAX_SCREEN_HEIGHT (600)
#define LTDC_MIN_HSYNC_WIDTH 1
#define LTDC_MIN_VSYNC_HEIGHT 1
#define LTDC_MIN_HSYNC_WIDTH (1)
#define LTDC_MIN_VSYNC_HEIGHT (1)
#define LTDC_MAX_HSYNC_WIDTH (1 << 12)
#define LTDC_MAX_VSYNC_HEIGHT (1 << 11)
#define LTDC_MIN_HBP_WIDTH 0
#define LTDC_MIN_VBP_HEIGHT 0
#define LTDC_MIN_HBP_WIDTH (0)
#define LTDC_MIN_VBP_HEIGHT (0)
#define LTDC_MAX_HBP_WIDTH (1 << 12)
#define LTDC_MAX_VBP_HEIGHT (1 << 11)
#define LTDC_MIN_ACC_HBP_WIDTH 1
#define LTDC_MIN_ACC_VBP_HEIGHT 1
#define LTDC_MIN_ACC_HBP_WIDTH (1)
#define LTDC_MIN_ACC_VBP_HEIGHT (1)
#define LTDC_MAX_ACC_HBP_WIDTH (1 << 12)
#define LTDC_MAX_ACC_VBP_HEIGHT (1 << 11)
#define LTDC_MIN_HFP_WIDTH 0
#define LTDC_MIN_VFP_HEIGHT 0
#define LTDC_MIN_HFP_WIDTH (0)
#define LTDC_MIN_VFP_HEIGHT (0)
#define LTDC_MAX_HFP_WIDTH (1 << 12)
#define LTDC_MAX_VFP_HEIGHT (1 << 11)
#define LTDC_MIN_ACTIVE_WIDTH 0
#define LTDC_MIN_ACTIVE_HEIGHT 0
#define LTDC_MIN_ACTIVE_WIDTH (0)
#define LTDC_MIN_ACTIVE_HEIGHT (0)
#define LTDC_MAX_ACTIVE_WIDTH (1 << 12)
#define LTDC_MAX_ACTIVE_HEIGHT (1 << 11)
#define LTDC_MIN_ACC_ACTIVE_WIDTH 1
#define LTDC_MIN_ACC_ACTIVE_HEIGHT 1
#define LTDC_MIN_ACC_ACTIVE_WIDTH (1)
#define LTDC_MIN_ACC_ACTIVE_HEIGHT (1)
#define LTDC_MAX_ACC_ACTIVE_WIDTH (1 << 12)
#define LTDC_MAX_ACC_ACTIVE_HEIGHT (1 << 11)
#define LTDC_MIN_ACC_TOTAL_WIDTH 1
#define LTDC_MIN_ACC_TOTAL_HEIGHT 1
#define LTDC_MIN_ACC_TOTAL_WIDTH (1)
#define LTDC_MIN_ACC_TOTAL_HEIGHT (1)
#define LTDC_MAX_ACC_TOTAL_WIDTH (1 << 12)
#define LTDC_MAX_ACC_TOTAL_HEIGHT (1 << 11)
#define LTDC_MIN_LINE_INTERRUPT_POS 0
#define LTDC_MIN_LINE_INTERRUPT_POS (0)
#define LTDC_MAX_LINE_INTERRUPT_POS ((1 << 11) - 1)
#define LTDC_MIN_WINDOW_HSTART 0
#define LTDC_MIN_WINDOW_HSTART 0
#define LTDC_MIN_WINDOW_HSTART (0)
#define LTDC_MIN_WINDOW_HSTART (0)
#define LTDC_MAX_WINDOW_HSTOP ((1 << 12) - 1)
#define LTDC_MAX_WINDOW_HSTOP ((1 << 12) - 1)
#define LTDC_MIN_WINDOW_VSTART 0
#define LTDC_MIN_WINDOW_VSTART 0
#define LTDC_MIN_WINDOW_VSTART (0)
#define LTDC_MIN_WINDOW_VSTART (0)
#define LTDC_MAX_WINDOW_VSTOP ((1 << 11) - 1)
#define LTDC_MAX_WINDOW_VSTOP ((1 << 11) - 1)
#define LTDC_MIN_FRAME_WIDTH_BYTES 0
#define LTDC_MIN_FRAME_HEIGHT_LINES 0
#define LTDC_MIN_FRAME_PITCH_BYTES 0
#define LTDC_MIN_FRAME_WIDTH_BYTES (0)
#define LTDC_MIN_FRAME_HEIGHT_LINES (0)
#define LTDC_MIN_FRAME_PITCH_BYTES (0)
#define LTDC_MAX_FRAME_WIDTH_BYTES ((1 << 13) - 1 - 3)
#define LTDC_MAX_FRAME_HEIGHT_LINES ((1 << 11) - 1)
#define LTDC_MAX_FRAME_PITCH_BYTES ((1 << 13) - 1)
#define LTDC_MIN_PIXFMT_ID 0
#define LTDC_MAX_PIXFMT_ID 7
#define LTDC_MIN_PIXFMT_ID (0)
#define LTDC_MAX_PIXFMT_ID (7)
#define LTDC_MAX_PALETTE_LENGTH 256
#define LTDC_MAX_PALETTE_LENGTH (256)
/** @} */
@ -181,22 +181,22 @@
* @{
*/
/* Microsoft Windows default 16-color palette.*/
#define LTDC_COLOR_BLACK 0xFF000000
#define LTDC_COLOR_MAROON 0xFF800000
#define LTDC_COLOR_GREEN 0xFF008000
#define LTDC_COLOR_OLIVE 0xFF808000
#define LTDC_COLOR_NAVY 0xFF000080
#define LTDC_COLOR_PURPLE 0xFF800080
#define LTDC_COLOR_TEAL 0xFF008080
#define LTDC_COLOR_SILVER 0xFFC0C0C0
#define LTDC_COLOR_GRAY 0xFF808080
#define LTDC_COLOR_RED 0xFFFF0000
#define LTDC_COLOR_LIME 0xFF00FF00
#define LTDC_COLOR_YELLOW 0xFFFFFF00
#define LTDC_COLOR_BLUE 0xFF0000FF
#define LTDC_COLOR_FUCHSIA 0xFFFF00FF
#define LTDC_COLOR_AQUA 0xFF00FFFF
#define LTDC_COLOR_WHITE 0xFFFFFFFF
#define LTDC_COLOR_BLACK (0xFF000000)
#define LTDC_COLOR_MAROON (0xFF800000)
#define LTDC_COLOR_GREEN (0xFF008000)
#define LTDC_COLOR_OLIVE (0xFF808000)
#define LTDC_COLOR_NAVY (0xFF000080)
#define LTDC_COLOR_PURPLE (0xFF800080)
#define LTDC_COLOR_TEAL (0xFF008080)
#define LTDC_COLOR_SILVER (0xFFC0C0C0)
#define LTDC_COLOR_GRAY (0xFF808080)
#define LTDC_COLOR_RED (0xFFFF0000)
#define LTDC_COLOR_LIME (0xFF00FF00)
#define LTDC_COLOR_YELLOW (0xFFFFFF00)
#define LTDC_COLOR_BLUE (0xFF0000FF)
#define LTDC_COLOR_FUCHSIA (0xFFFF00FF)
#define LTDC_COLOR_AQUA (0xFF00FFFF)
#define LTDC_COLOR_WHITE (0xFFFFFFFF)
/** @} */
/*===========================================================================*/
@ -212,14 +212,14 @@
* @brief LTDC event interrupt priority level setting.
*/
#if !defined(STM32_LTDC_EV_IRQ_PRIORITY) || defined(__DOXYGEN__)
#define STM32_LTDC_EV_IRQ_PRIORITY 11
#define STM32_LTDC_EV_IRQ_PRIORITY (11)
#endif
/**
* @brief LTDC error interrupt priority level setting.
*/
#if !defined(STM32_LTDC_ER_IRQ_PRIORITY) || defined(__DOXYGEN__)
#define STM32_LTDC_ER_IRQ_PRIORITY 11
#define STM32_LTDC_ER_IRQ_PRIORITY (11)
#endif
/**
@ -227,7 +227,7 @@
* @note Disabling this option saves both code and data space.
*/
#if !defined(LTDC_USE_WAIT) || defined(__DOXYGEN__)
#define LTDC_USE_WAIT TRUE
#define LTDC_USE_WAIT (TRUE)
#endif
/**
@ -235,7 +235,7 @@
* @note Disabling this option saves both code and data space.
*/
#if !defined(LTDC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define LTDC_USE_MUTUAL_EXCLUSION TRUE
#define LTDC_USE_MUTUAL_EXCLUSION (TRUE)
#endif
/**
@ -243,7 +243,7 @@
* @note Disabling this option saves both code and data space.
*/
#if !defined(LTDC_USE_SOFTWARE_CONVERSIONS) || defined(__DOXYGEN__)
#define LTDC_USE_SOFTWARE_CONVERSIONS TRUE
#define LTDC_USE_SOFTWARE_CONVERSIONS (TRUE)
#endif
/**
@ -252,7 +252,7 @@
* @note Disabling checks by ChibiOS will automatically disable LTDC checks.
*/
#if !defined(LTDC_USE_CHECKS) || defined(__DOXYGEN__)
#define LTDC_USE_CHECKS TRUE
#define LTDC_USE_CHECKS (TRUE)
#endif
/** @} */
@ -301,7 +301,7 @@ typedef uint32_t ltdc_color_t;
/**
* @brief LTDC color aliases.
* @detail Mapped with ARGB-8888, except for luminance (L mapped onto B).
* Padding fields prefixed with <tt>'x'</tt>, which should be clear
* Padding fields are prefixed with <tt>'x'</tt>, and should be clear
* (all 0) before compression and set (all 1) after expansion.
*/
typedef union ltdc_coloralias_t {
@ -458,10 +458,10 @@ typedef struct LTDCConfig {
* @brief LTDC driver state.
*/
typedef enum ltdc_state_t {
LTDC_UNINIT = 0, /**< Not initialized.*/
LTDC_STOP = 1, /**< Stopped.*/
LTDC_READY = 2, /**< Ready.*/
LTDC_ACTIVE = 3, /**< Executing commands.*/
LTDC_UNINIT = (0), /**< Not initialized.*/
LTDC_STOP = (1), /**< Stopped.*/
LTDC_READY = (2), /**< Ready.*/
LTDC_ACTIVE = (3), /**< Executing commands.*/
} ltdc_state_t;
/**