From 61ca3043840ce6703cf7ab99b637c37108bd9c7b Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Thu, 24 Aug 2023 19:35:47 +0000 Subject: [PATCH] README: add notes on DMA1 --- README.rst | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index b55561d..040291b 100644 --- a/README.rst +++ b/README.rst @@ -133,7 +133,7 @@ the increment added an offset of RA0/WA0 after each bus transfer: * - mnemonic - D0 → [RAM] - - [RAM] →D0 + - [RAM] → D0 * - DMA0 - 0 bytes - 0 bytes @@ -162,6 +162,22 @@ the increment added an offset of RA0/WA0 after each bus transfer: Note that the DMA transfer length is always decremented by 1 after 4 bytes are transferred, regardless of the size of the bus transfer. +Note that selecting DMA1 on a 4-byte bus does not generate misaligned +writes; instead, the following happens: + +.. code:: c + + uint32_t src[] = { 1, 2, 3, 4, ... }; + extern uint32_t dst[]; + + dst[0] = src[0]; + dst[0] = src[1]; + dst[1] = src[2]; + dst[1] = src[3]; + ... + + // dst = { 1, 1, 3, 3, ... }; + The SCU manual (ST-97-R5-072694) contains this contradictory text: Only add numbers 0 and 1 are valid for the A-Bus and the write unit is