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.

need help to get EMIF to work

Other Parts Discussed in Thread: HALCOGEN

I use HALCoGen 04.05.02 and Code Composer Studio 6.1.2 for my custom RM48L950ZWT board. I need to use EMIF interface to connect to IDT Asynchronous Dual-Port RAM.

I cannot see any signal come from RM48 CPU to my RAM right now.

 I try to follow all thing I can find from TI community. It is what I did in my project:

Enable EMIF driver under Driver Enable,

Enable EMIF ASYNC1 under EMIF general, use default setting for EMIF ASYNC1.

ENABLE EMIF UNDER Pin Muxing.  

For R4-MPU-PMU, There are 12 default region. I cannot find document explain of it. So my question will like: how do I set it up for my external RAM? Which region I should use? What is base address I should use? Should I keep all these 12 region enable or only enable my external RAM one?

 

 

 

My sys_link.cmd looks like this:

/*----------------------------------------------------------------------------*/

/* Memory Map                                                                 */

 

MEMORY

{

    VECTORS (X)  : origin=0x00000000 length=0x00000020

    FLASH0  (RX) : origin=0x00000020 length=0x0017FFE0

    FLASH1  (RX) : origin=0x00180000 length=0x00180000

    STACKS  (RW) : origin=0x08000000 length=0x00001500

    RAM     (RW) : origin=0x08001500 length=0x0003eb00

 

/* USER CODE BEGIN (2) */

/* USER CODE END */

}

 

*----------------------------------------------------------------------------*/

/* Section Configuration                                                      */

 

SECTIONS

{

    .intvecs : {} > VECTORS

    .text    : {} > FLASH0 | FLASH1

    .const   : {} > FLASH0 | FLASH1

    .cinit   : {} > FLASH0 | FLASH1

    .pinit   : {} > FLASH0 | FLASH1

    .bss     : {} > RAM

    .data    : {} > RAM

                .sysmem  : {} > RAM

               

 

/* USER CODE BEGIN (4) */

/* USER CODE END */

}

 

 

 

 

 

 

I write this code in sys_main.c for testing:

 

 

 

volatile int *p = (volatile int*)0x08001500;

 

*p =0xffffffff;

 

*p =0;

 

 

The debugger show the correct value, but it is not from my external RAM. From memory map, it looks like from internal RAM

 

 

Which step is wrong or I still missing something?

 

Thanks,

Yi Cui