This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EDMA on the6446

Hi,

how do i use the EDMA? Is there a Library with the functions in it, or a headerfile, or something else?? Where do i find these and use them?

The CSL is not supportet at the DM6446. [:(]

 

Or have i write it by myself?

Are there any other examples than the ones in the SPRUE23d.pdf?

thx

  • Peter Brandstetter said:

    how do i use the EDMA? Is there a Library with the functions in it, or a headerfile, or something else?? Where do i find these and use them?

    Are you wanting to use the EDMA3 from the ARM side or DSP side of the DM6446?  There is an EDMA3 Low Level Driver available for the DSP using DSP/BIOS.  Access to this software requires a my.ti.com account.

    For the ARM side, we have EDMA3 drivers for Linux as part of the Linux PSP (Platform Support Package).  Access to this software requires a my.ti.com account as well.

     

     

  • BrandonAzbell said:

    how do i use the EDMA? Is there a Library with the functions in it, or a headerfile, or something else?? Where do i find these and use them?

    Are you wanting to use the EDMA3 from the ARM side or DSP side of the DM6446?  There is an EDMA3 Low Level Driver available for the DSP using DSP/BIOS.  Access to this software requires a my.ti.com account.

    For the ARM side, we have EDMA3 drivers for Linux as part of the Linux PSP (Platform Support Package).  Access to this software requires a my.ti.com account as well.

     

     

    [/quote]

     Hi Peter,

    I have installed the EDMA3 Low Level Driver for my DSP application. I have tried to use the CSL 2.0 dat demo project but did not work for DM6446. The following is the error returned

    ../../../csl2_legacy_include/csl_chiphal.h", line 276: fatal error: #error NO CHIP DEFINED (use -dCHIP_XXXX where XXXX is chip number, i.e. 6201)
    1 fatal error detected in the compilation of "main.c".
     

    The csl_chiphal.h  have the adding for DM6446 but no chip support implementation. Is there a way around this?

    Cheers.

    Jonners

  • You have to use the CHIP_XXXX (like CHIP_DM642) define in your CCS PJT file or any other build file and pass this include flag to the compiler. You can use CHIP_DM642 for DM6446 with respect to this code also.

  • Anuj Aggarwal said:

    You have to use the CHIP_XXXX (like CHIP_DM642) define in your CCS PJT file or any other build file and pass this include flag to the compiler. You can use CHIP_DM642 for DM6446 with respect to this code also.

     Hi Anuj,

    Thanks for your reply.  I have tried to run the demo.pjt example from  (EDMA3_LLD_01_06_00_01\examples\CSL2_DAT_DEMO\demo\build\evmDM648) on my DM6446 evm. I have changed the DM6446 build files  instead of  DM648  build files and left the the  chip_dm642 like you suggested i.e (-i"$(Proj_dir)\..\..\..\..\..\packages\ti\sdo\edma3\drv\sample\lib\ dm6446\Debug"  and -i"$(Proj_dir)\..\..\..\..\..\packages\ti\sdo\edma3\rm\lib\dm6446\Debug" ). The project is build without errors. But, when loading the demo.out, the following message appears.

     

    (Loader: One or more sections of your program falls into a memory region that is not writable.  These regions will not actually be written to the target.  Check your linker configuration and/or memory map.).

    How is this fixed?

    Jonners

  • Jonners said:
    (Loader: One or more sections of your program falls into a memory region that is not writable.  These regions will not actually be written to the target.  Check your linker configuration and/or memory map.).

    How is this fixed?

    This means that the memory map that CCS is configured with (that is typically defined by the GEL file) has locations not marked as valid memory that your new executable is trying to load to. This implies that either your memory map from the GEL file is wrong or that your project's memory layout is actually invalid. In the GEL file case you can tweak the GEL file or disable memory mapping entirely from the menu Option -> Memory Map... -> uncheck 'Enable Memory Mapping'. If your project's memory layout is invalid than you need to modify your linker settings to ensure all of your code and data sections are going into valid memory, this can be done from your linker command file in the case of a non BIOS project or from your BIOS configuration under the MEM memory section manager.

  • Bernie Thompson said:

    (Loader: One or more sections of your program falls into a memory region that is not writable.  These regions will not actually be written to the target.  Check your linker configuration and/or memory map.).

    How is this fixed?

    This means that the memory map that CCS is configured with (that is typically defined by the GEL file) has locations not marked as valid memory that your new executable is trying to load to. This implies that either your memory map from the GEL file is wrong or that your project's memory layout is actually invalid. In the GEL file case you can tweak the GEL file or disable memory mapping entirely from the menu Option -> Memory Map... -> uncheck 'Enable Memory Mapping'. If your project's memory layout is invalid than you need to modify your linker settings to ensure all of your code and data sections are going into valid memory, this can be done from your linker command file in the case of a non BIOS project or from your BIOS configuration under the MEM memory section manager.

     [/quote]

    Thanks Bernie,

    I 've changed the bios configuration  to use evmDM6446 platform  (utils.loadPlatform("ti.platforms.evmDM6446") ) and uncheck 'Enable Memory Mapping. The demo program loaded.  

     I have also noted that the project is still running even after executing the output:

    edma3init() PASSED
    DONE

    How can I stop this?

  • I am not sure what you mean by 'the project is still running', in the case of a BIOS application after all tasks exit it will just spin in the idle loop, the processor never really stops running, it just loops doing nothing when it has completed. To stop the processor you would use CCS (Debug -> Halt), or set a breakpoint after the point you want the processor to stop at.