4.8. DMA¶
4.8.1. About This Document¶
Document Title |
User Guide of MCAL DMA Driver |
Release Version |
MCAL_AM263_09.00.00 |
Document Version |
Version 1.1 |
Company |
Texas Instruments |
Document Name |
DMA User Guide |
4.8.2. Document Revision History¶
Version |
Date |
Revision History |
Status |
---|---|---|---|
Version 1.0 |
07 Feb 2023 |
Initial Version |
Approved |
Version 1.1 |
24 Jul 2023 |
Updated as per HTML format. |
Approved |
4.8.3. Table of contents¶
4.8.4. Acronyms and Definitions¶
Acronyms and Definitions used are presented in below table.
Acronyms |
Descriptions |
---|---|
BSW |
Basic Software |
DET |
Default Error Tracer |
DMA |
Direct Memory Access |
MCU |
Micro Controller Unit |
OS |
Operating System |
API |
Application Programming Interface |
HW |
Hardware |
SW |
Software |
ISR |
Interrupt Service Routine |
INT |
Interrupt |
4.8.5. Functional Overview¶
4.8.5.1. Brief Overview¶
This document describes the functionality, API and configuration of the CDD DMA module.
Supported AUTOSAR Release |
4.3.1 |
Supported Configuration Variants |
Pre-Compile |
Vendor ID |
DMA_VENDOR_ID (44) |
Module ID |
DMA_MODULE_ID (123) |
Supported Platform |
AM263x |
The DMA module initiates data transfer within peripheral, based on DMA channel configured.
4.8.5.1.1. DMA Driver¶
The DMA Driver initializes the EDMA module of the microcontroller and the primary purpose of the EDMA controller is to service data transfers programmed between two memory-mapped slave endpoints on the device.
The DMA driver works in interrupt mode only and serves the purpose to transfer the data from one memory to other memory through the external trigger to the EDMA module. The DMA module has 64 DMA channels, which serves the purpose of drives the EDMA modules and transfer the data.
Note
The DMA module is validated only for peripheral only.
This is not the official release for DMA module.
4.8.5.1.2. Initialization¶
Cdd_Dma_Init() has to be called to initialize the EDMA driver.
4.8.5.1.3. States¶
None
4.8.5.2. Features Supported and Not Supported¶
Will be added in next Release
4.8.5.3. Assumptions¶
None
4.8.5.4. Limitations¶
None
4.8.5.5. Design overview (Link to the Architecture document and Design Document)¶
Will be added in next Release
4.8.5.6. File Structure¶
Description of static files is provided below:
Static source and header files |
Description |
---|---|
CDD_Dma.c |
Contains the API’s of the DMA driver to be used by upper layers. |
CDD_Dma.h |
Contains the implementation of the API’s for DMA driver. |
Cdd_Dma_cslr_tpcc.h Cdd_Dma_cslr_tptc.h Cdd_Dma_edma.h & Cdd_Dma_edma_lld.h |
Contains device specific a function definition, data types and definitions. |
Cdd_edma_dmaxbar.h Cdd_edma_trig_xbar.h Cdd_edma_xbar.h |
Contains DMA cross bar interrupt information. These files are applicable for DMA module only. |
Description of generated files is provided below:
Plugin Files |
Descriptions |
---|---|
CDD_Dma_Cfg.h |
Contains the Precompile switches. |
CDD_Dma_Cfg.c |
contains the configuration parameters. |
4.8.6. Deviations to requirements(Requirement Traceability)¶
4.8.6.1. Module Requirements¶
Will be updated in future release
4.8.6.2. Deviation of requirements against AUTOSAR specification requirements¶
Will be updated in future release
4.8.7. Integration Details¶
4.8.7.1. Dependency on Other Software Modules¶
4.8.7.1.1. The DMA Driver dependent modules¶
None
4.8.7.1.2. Error Handling module¶
4.8.7.1.2.1. DET¶
DET errors are not reported
4.8.7.1.2.2. DEM¶
DEM errors are not reported
4.8.7.1.2.3. Callback Functions¶
None
4.8.7.1.2.4. Callback Notification¶
None
4.8.7.2. Hardware - Software - ISR API name mapping¶
None
4.8.7.3. Scheduling Strategy¶
4.8.7.3.1. SchM (Optional)¶
Beside the OS the BSW Scheduler provides functions that module DMA calls at begin and end of critical sections.
4.8.7.3.2. Critical Sections¶
There is only one kind of critical sections in this driver. Within these sections all read /modify / write accesses to internal DMA driver data structures must be protected. Therefore, switching to tasks that also access DMA has to be avoided and all DMA interrupts have to be suspended. This is handled internally by DMA Driver.
4.8.8. API Description¶
4.8.8.1. Description of the API’s(Can be referred to Api Guide spec)¶
Will be updated in future release
4.8.8.2. API’s with Service ID¶
Will be updated in future release
4.8.8.3. Description on Non Standard API’s¶
Will be updated in future release
4.8.9. Configuration Description¶
4.8.9.1. Configuration Variants¶
The DMA can be configured as Pre-Compile variant, using EB tresos tool.
Variants |
Generated Files |
---|---|
Pre-Compile |
Cdd_Dma_Cfg.c , Cdd_Dma_Cfg.h |
4.8.9.2. Parameter Description¶
The below parameters are provided in DMA configuration required to driver DMA module:
Parameter “CddDmaInterrupt” should be configured “TRUE”.
The Trigger source should be configured for the DMA channels through container “CddDmaChannelTriggerConfiguration”.
Each instance in the container represents the DMA channels and its respective trigger from external module to the container.
Parameter “CddDmaDmaChannelModule” represents the DMA channel of EDMA module i.e., from 0 to 63.
Parameter “CddDmaChannelTriggerSource” represents the DMA trigger source from external module (such as UART, SPI , Cross Bar etc)
Below parameters are applicable for AM263x device only
Parameter “CddDmaDmaChannelXbar” represents the cross bar triggers that are represented in Parameter “CddDmaChannelTriggerSource” ( from “DMA_TRIG_XBAR_DMA_XBAR_OUT_0” to “DMA_TRIG_XBAR_DMA_XBAR_OUT_15”).
Parameter “CddDmaDmaChannelXbarMap” represents the trigger source, where cross bar triggers are mapped to particular interrupt trigger source from external modules (such as ADC, EPWM, FSI etc.., ) from the
4.8.9.3. Symbolic Names deviations¶
None.
4.8.9.4. Configuration rules and constraints to enable plausibility checks¶
None.
4.8.10. Memory Mapping¶
Memory Mapping Sections |
DMA_CODE |
DMA_CODE_ISR |
DMA_PBCFG |
---|---|---|---|
CDD_DMA_START_SEC_VAR_INIT_UNSPECIFIED(.bss) |
|||
CDD_DMA_STOP_SEC_VAR_INIT_UNSPECIFIED |
|||
CDD_DMA_START_SEC_CONFIG_DATA (.const) |
x |
||
CDD_DMA_STOP_SEC_CONFIG_DATA |
x |
||
CDD_DMA_START_SEC_CODE(.text) |
x |
||
CDD_DMA_STOP_SEC_CODE |
x |
4.8.11. Memory footprint¶
Please refer Memory Footprint for more details.
4.8.12. Performance¶
Not Applicable
4.8.12.1. ISR latency / ISR processing time¶
Not Applicable
4.8.12.2. API level profiling¶
Not Applicable
4.8.13. Example Usage¶
Not Applicable
4.8.14. FAQ’s¶
None
4.8.15. Test Report (Link to test report)¶
Not Applicable
4.8.16. References¶
4.8.17. Disclaimer¶
Will be updated in future release.