Other Parts Discussed in Thread: OMAPL138, SYSBIOS
Tool/software: TI-RTOS
Hi,
I'm currently using a custom board with the OMAP-L138.
I have wrote code for our own custom codecs so that EDMA carries information to/from the McASP buffers.
My issue is that if I use DDR for my memory locations aka config.bld file, then it doesn't work properly, only the Output buffer to the speaker
will send information, but not get any input from the Microphones.
/* * ======== config.bld ======== * */ var Build = xdc.useModule('xdc.bld.BuildEnvironment'); var Pkg = xdc.useModule('xdc.bld.PackageContents'); /* when constructing a release, release everything */ Pkg.attrs.exportAll = true; /* Uncomment this to build the app with debug support */ Pkg.attrs.profile = "debug"; /* bin/ is a generated directory that 'xdc clean' should remove */ Pkg.generatedFiles.$add("bin/"); Build.platformTable["ti.platforms.evmOMAPL138:dsp"] = { externalMemoryMap: [ [ "DDR", { name: "DDR", space: "code/data", access: "RWX", base: 0xC3100000, len: 0x800000, comment: "DSP Program Memory (8 MB)" }] ], codeMemory: "IRAM", dataMemory: "IRAM", stackMemory: "IRAM", l1DMode: "32k", l1PMode: "32k", l2Mode: "0k" }; /* * ======== ti.targets.elf.C674 ======== */ var C674 = xdc.useModule('ti.targets.elf.C674'); C674.ccOpts.suffix += " -mi10 -mo ";
If I change the code to L2RAM/IRAM then it works properly.
I do not use the EDMA LLD for my EDMA, I just configure the registers myself using CSL.
If I enable the cache on the L2 (32k) and use the DDR then nothing works, nethier input nor output.
If I disable L2 and set it to 0k then only partial functionality works with the DDR.
Is there some caching stuff that I need to be aware when using DDR for the buffers with EDMA/McASP?
XDCtools: 3.50.7.20
SYS/BIOS: 6.52.0.12
omapl138 PDK: 1.0.5