Please tell me what is the shadow region?
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.
Please tell me what is the shadow region?
I assume that you are asking about shadow regions as relates to EDMA3, correct?
The "shadow regions" are there in order to provide a mechanism for working with the EDMA3 in multi-core devices. The intent is that each core in the device is assigned its own shadow region. Each shadow region has its own interrupt which is physically connected to the interrupt controller of the corresponding core. In other words, when TI designs the processor we decide which shadow region will connect to which core. In general for our ARM+DSP devices we connect shadow region 0 to the ARM and shadow region 1 to the DSP. For each shadow region you configure which channels will be associated with it. Typically you would only assign a channel to ONE shadow region, e.g. it will be used exclusively by the ARM or exclusively by the DSP, but not both. There's nothing to prevent you from assigning it to both, but that's generally not done.
thank u for your help! What you have said is the case in multi-core devices. I am using the single core processor dm6437, which also contained the "shadow region" conception. Can you give me further description about "shadow region" of dm6437?
regards,
kexin
kexin xing said:I am using the single core processor dm6437
Please always provide basic information like what processor you're using when positing a thread. It will save everyone time.
kexin xing said:Can you give me further description about "shadow region" of dm6437?
In newer single-core devices like the c6748 we only hook up a single shadow region interrupt. For some of the earlier single-core devices like the c6455 and dm6437 the designers hooked up the "global" interrupt as well as some of the "shadow" interrupts. Here's how you might consider using it... Normally for a given EDMA interrupt you need to use some kind of "dispatcher" code to go and read the EDMA3CC.IPR/H register to determine which interrupt fired. If for example you only have 2 EDMA interrupts in your system you could assign one of them to shadow region 0 and one of them to shadow region 1. Then you would not even need a dispatcher because you could directly launch the corresponding ISRs. Or perhaps more typically you would have more than 2 EDMA interrupts. In that case you could assign a single "fast ISR" to region 0 and assign the rest of the interrupts to region 1. Since you'd have more than 1 interrupt assigned to region 1 you would of course need some kind of dispatcher logic to determine which of the interrupts actually occurred.