Copyright © Siemens AG 2016. All rights reserved
110
ERTEC 200P-2 Manual
Technical data subject to change
Version 1.0
DMA Transfer List Base Address (GDMA_LIST_ADDR) - Points to the first
address of the transfer list of the DMA RAM.
GDMA Main Control register (GDMA_MAIN_CTRL) consists of five fields:
1. Total Number of Transfers in Transfer List (LIST_SIZE) - Defines the
address space of the transfer list. Address space of transfer list in
DMA RAM is defined by its base address and by the total number of
transfers in the transfer list.
2. Software reset (SW_RESET) - The started jobs can be reset and the
running or interrupted jobs cancelled when SW_RESET bit in the
GDMA Main Control register is set.
3. DMA Global Enable (DMA_EN) - Enables transfer activity of the
GDMA controller. When DMA_EN bit is reset while a DMA job is in
progress, this job is interrupted and no other started job can begin to
run. When subsequently DMA_EN bit is set again, the interrupted job
will continue.
4. Reset Job Counter (JC_RESET) resets the GDMA_JOB_COUNT
status register. See the description of the GDMA Status registers
below.
5. Error Interrupt Enable (ERR_INT_EN) - This bit enables generation
of GDMA interrupt request (DMA_IRQ), when an error occurs in the
GDMA controller. Four types of errors are defined (see below).
Enable Job Counter for the Job (GDMA_JC_EN) is a 32-bit register, which
selects the jobs whose time of activity shall be measured via the
GDMA_JOB_COUNT status register. See the description of the GDMA
status registers below.
2.3.4.1.3.7 Job control by SW or by HW
SW control of the job:
Start of job by SW:
The job is started by SW when bit SW_JOB_START is set in the Job Con-
trol register. Start of DMA job is disabled, when bit SW_RESET in the
GDMA Main Control register is set to “1” or when bit
HW_JOB_START_EN in the Job Control register is set to “1”.
Make a job running:
When one or more jobs are started, the started job with the highest priority
begins to run (becomes active). The running job can be interrupted in three
ways:
1. When a job is running and a job with higher priority is started, the
running job is interrupted and the job with higher priority begins to
run. After the job with the higher priority is finished, the interrupted
job will continue.