nuttx/arch/arm/include
Gregory Nutt 8ed4b1acfa Defines a second interface for the dma2d controller. Controlling both LTDC and DMA2D was unpractical from the programmers view because both controllers are to different. LTDC only controls the display visibility but the DMA2D controller changes the content of the frame buffer (buffer of the layer).
The main features are:

1. DMA2D interface
   Supports the nuttx pixel formats:
   - FB_FMT_RGB8
   - FB_FMT_RGB24
   - FB_FMT_RGB16_565
   Dynamic layer allocation during runtime for the supported formats
   - The number of allocatable layer can be configured.
   Supported dma2d operation:
   - blit (Copy content from source to destination layer) also works with
     selectable area.
   - blend (Blend two layer and copy the result to a destination layer wich can
     be a third layer or one of the source layer) also works with selectable
     area.
   - fillarea (Fill a defined area of the whole layer with a specific color)

As a result of that the dma2d controller can't transfer data from the core coupled memory, CCM is disabled but usable by the ccm allocator. Currently the ccm allocator is used for allocating the layer structurei only. For the dma memory (layers frame buffer) memory is allocated from heap 2 and 3.

2. LTDC interface

   I have changed the api for the currently non implemented operations:
   - blit (Copy content from a dma2d layer to an ltdc layer) also works with
     selectable area.
   - blend (Blend two dma2d layer and copy the result to a destination ltdc
     layer) also  works with selectable area.

     Note! ltdc layer is a layer referenced by the ltdc interface. dma2d layer
     is a layer referenced by the dma2d interface.

     One of the most important questions for me was, How can i flexible use an
     ltdc layer with the dma2d interface, e.g. as source layer for dma2d
     operations?
     Get the layer id of the related dma2d layer by a special flag when using
     getlid() function of the ltdc interface and use the layer id to reference
     the specific dma2d layer by the dma2d interface.

     The ltdc coupled dma2d layers are predefined and can't be dynamically
     allocated of freed. They use the same frame buffer memory and the same
     color lookup table.

   Changes:
   - layer internal format of the clut table
   - interrupt handling for register reload (vertical vblank) instead using
     waiting loop
   - small fixes and refactoring

From Marco Krahl.
2015-04-16 09:11:52 -06:00
..
a1x Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
arm Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
armv6-m Rename CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED; Partially integrate new CONFIG_BUILD_KERNEL 2014-08-29 14:47:22 -06:00
armv7-a Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
armv7-m Update COPYING file with special license requirements for PPPD 2015-03-11 09:14:15 -06:00
c5471 Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
calypso Change all variadic macros to C99 style 2014-05-22 09:01:51 -06:00
dm320 Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
efm32 STM32GG Starter Kit: Add basic NSH configuration 2014-11-03 16:58:22 -06:00
imx Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
kinetis Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
kl Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
lpc17xx Fix an error introduced in the last commit 2014-04-19 07:54:52 -06:00
lpc31xx Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
lpc43xx More trailing whilespace removal 2014-04-13 16:22:22 -06:00
lpc214x Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
lpc2378 Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
nuc1xx Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
sam34 Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
sama5 Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
samd Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
samv7 SAMV6 USB updates 2015-03-26 09:49:01 -06:00
stm32 Defines a second interface for the dma2d controller. Controlling both LTDC and DMA2D was unpractical from the programmers view because both controllers are to different. LTDC only controls the display visibility but the DMA2D controller changes the content of the frame buffer (buffer of the layer). 2015-04-16 09:11:52 -06:00
str71x Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
tiva Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
.gitignore Move LPC17xx IOCON register definitions from lpc17_gpio.h to lpc17_iocon.h; fix a few more .gitignore files 2013-04-04 18:12:44 -06:00
arch.h Add logic necessary to handler remapping of shared memory on contex switches 2014-09-23 13:19:30 -06:00
elf.h More trailing whilespace removal 2014-04-13 16:22:22 -06:00
irq.h Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
limits.h Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
serial.h Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
stdarg.h Add a generic GCC stdarg.h header file 2012-07-08 14:50:43 +00:00
syscall.h Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
types.h Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00
watchdog.h Make some file section headers more consistent with standard 2015-04-08 08:04:12 -06:00