Hallo,

ich habe es nun zum Laufen bekommen. Für die Nachwelt möchte ich die Lösung hier festhalten:

Mit der Suche nach AN2790 bekommt mann neben einer PDF eine Bibliothek welche entsprechende Funktionen bereit stellt.
Außerdem ist dort das Timing für das LCD genau beschrieben (bzw. genaue Werte für mein Display).
Lediglich bei den Adressen der FSMC-Schnittstelle ist in dieser Bibliothek eine Einschränkung da der Ausgang A0 verwendet wird.
Wird der Ausgang A16 verwendet muss für die Bank1 0x60000000 das 16. Bit (A16) eingeschoben werden:
0x60000000 | (0x00000001<16) -> 0x60020000

Die Bänke sehen dann so aus:
Bank1 (NE1) 0x60000000
Bank2 (NE2) 0x64000000
Bank3 (NE3) 0x68000000
Bank4 (NE4) 0x6C000000

Das hießt für mich, dass ich auf die Struktur LCD verzichte und

LCD_REG16 und LCD_DATA16 manuell setze:
#define LCD_REG16 (*((volatile uint16_t*)0x60000000))
#define LCD_DAT16 (*((volatile uint16_t*)0x60020000))

Die RAM-Addresse für den DMA geht ohne Pointer:
#define LCD_RAM_ADDR ((uint32_t)(0x60020000))


Jetzt konnte ich das ganze so machen wie es angedacht war. Per DMA benötigt ein "LCD_Clear" knapp 15 ms @ 72 MHz OHNE Prozessorlast.
Das entspricht ca. 66,7 FPS für das Füllen des kompletten Displays. (Vorher 31,25 FPS mit 100% Prozessorlast)
Für meine Anwendung sollte das auf jeden Fall reichen, da ich das Display nur partiell neu füllen möchte. (Graph für einen Datenlogger)

Gruß Erik