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.

C2000 different SARAM blocks, multiple access possible?



Hello everyone,

So I have a lot of questions regarding the C2000 RAM blocks use. I hope you can help me with this, Real time control MCUs like this is pretty new to me, I basically only used ARM based MCUs until now.


I have been looking not only at the older C2000 launchpad but also the new one.
The F28027 is much simples, no DMA, no CLA, just 3 RAM blocks, M0, M1 and L0.
The F28069 has DMA, CLA, 11 SARAM blocks.

My questions are:


If I load code into block M0 and use M1 or L0 for data variables, will I have some sort of wait state? The C28x uses Harvard arquitecture so it should have no problems acessing data and code at the same time, but my question is focusing in the RAM blocks. Are the access to RAM blocks independent?

Also, in the F28069 which has DMA and CLA,
The DPSARAM can be accessed by both the memory bus and DMA/CLA bus but never at the same time, correct? So with this, for maximum optimization I should try to, if possible, "assign" the DMA and CLA to use a dedicated RAM block. So is it possible to keep the CPU from using certain RAM blocks so I can use them only for the DMA and CLA? (if possible I imagine it's in the linker, just wanted to check the info).


Now about Mx and Lx SARAMs. The difference (besides sometimes in size) is only that Lx SARAM can be secured, but some in the F28069 are not, so what is the difference betwen Mx and Lx?  So I assume that they are usually the ones used for running code.


More questions :p
I've been searching some technical files for the C2000. I found something about running application code from flash.
Made me wonder, running code from RAM is pretty standard for the C2000? Is the Flash normally used for actually storing data in long term?



I hope someone can help me with these doubts, I am very interested in this MCU architecture. 

  • Luis,

    My answers embedded below.

    - Bharathi.

     

    Luis Afonso said:
    If I load code into block M0 and use M1 or L0 for data variables, will I have some sort of wait state? The C28x uses Harvard arquitecture so it should have no problems acessing data and code at the same time, but my question is focusing in the RAM blocks. Are the access to RAM blocks independent?

    >> Yes. these are independent memory blocks and data and code accesses can happen at the same time.


    Also, in the F28069 which has DMA and CLA,
    The DPSARAM can be accessed by both the memory bus and DMA/CLA bus but never at the same time, correct? So with this, for maximum optimization I should try to, if possible, "assign" the DMA and CLA to use a dedicated RAM block. So is it possible to keep the CPU from using certain RAM blocks so I can use them only for the DMA and CLA? (if possible I imagine it's in the linker, just wanted to check the info).

    >> RAM blocks accesses by DMA and CLA are exclusive. Hence this question does not arise. CLA can access only L0-L4 and DMA can access only L5-L8 on F28069.



    Now about Mx and Lx SARAMs. The difference (besides sometimes in size) is only that Lx SARAM can be secured, but some in the F28069 are not, so what is the difference betwen Mx and Lx?  So I assume that they are usually the ones used for running code.

    >> All the SRAMs can be either code or data - no restrictions. Some of the RAM blocks can not be secured - (M0/1, L5-8).


    More questions :p
    I've been searching some technical files for the C2000. I found something about running application code from flash.
    Made me wonder, running code from RAM is pretty standard for the C2000? Is the Flash normally used for actually storing data in long term?

    >> Code execution from SRAM would give the best performance as the SRAM accesses are faster compared to Flash. But, there is no restriction if you've to execute code from Flash. Most of the applicaitons execute code from Flash and have only most critical portions of the code copied to RAM for execution.



  • how can i program in RAML5?

  • Hi Sangio,

    This thread is a couple years old. Please start a new thread and provide more details about what you are trying to accomplish and what you have tried that isn't working. If this thread contains a similar issue, feel free to link back to this thread in your new post.