cancel
Showing results for 
Search instead for 
Did you mean: 

emi

dmerchez9
Associate II
Posted on October 05, 2005 at 16:22

emi

6 REPLIES 6
dmerchez9
Associate II
Posted on June 08, 2005 at 05:59

Hello,

We have a STR710F-Eval Board and we want to use the EMI dialog with the SRAM. To do this, we use the Bank1.

To write a byte in 0x62000000 adress, what do i have to do?

I have force the /CS0 to 0, but nothing appear on this pin.

Are the Rdn, Wen.0 and Wen.1 bits managed automaticly?

Could you help me?

Damien

hichem2
Associate II
Posted on June 08, 2005 at 06:30

Hello Damien,

You can refer to the STR71x software library, an emi example performed on the MB393 demo board which help you to write a data in 0x62000000 adress with detailed descreption in the readme file.

I hope that this can help you.

Cheers,

Hich ;)

dmerchez9
Associate II
Posted on June 08, 2005 at 06:50

Hello

Thanks for your quick answers:

I don't well understand the signification of the line in the scat.scf file:

RAM_MODE 0x20000000 0x10000

{

RAM 0x20000000

{

71x_vect.o (Vect, +First)

71x_init.o(Init)

* (+RO)

* (+RW)

* (+ZI)

}

External_SRAM 0x62000000

{

main.o (+RO)

}

}

It copies the main object file in the external SRAM and execute from it?

What does the lines in the RAM ''block'' signify?

Damien

hichem2
Associate II
Posted on June 08, 2005 at 07:41

Hi Dam,

This example demonstrate how to copy a part of the code

fromRAM to SRAM and execute from it.

For instance, all the entire image is loaded in RAM, then ''main.o'' will be copied in external SRAM and executed from it.

The scatter file is used to copy and execute an object file from RAM to SRAM.

RAM block lines sens:

RAM 0x20000000

{

71x_vect.o (Vect, +First) ---> vector table at 0x0

71x_init.o(Init) ---> remap & reset code

* (+RO) ---> all other RO areas

* (+RW) ---> program variables

* (+ZI) ---> program variables

}

Regards,

Hich :o

dmerchez9
Associate II
Posted on June 08, 2005 at 07:51

Hello

To give you an example of what i've done, i join you the code i wrote! (I use Winidea environment and IAR compilator)

//Configure /CSx and A2x pins in Alternate Function

IOPORT2_Config(0x00FF,GPIO_AF_PP);

BCON1 |= 0x8015;

BCON2 &= 0x7FFF;

BCON3 &= 0x7FFF;

BCON0 &= 0x7FFF;

asm(''MOV R1,#0x62000000'');

asm(''MOV R0,#0x55'');

asm(''STR R0, [R1]'');

asm(''LDR R0, [R1]'');

Logically, this sould write 0x55 in 0x62000000 adress!

But when LDR is executed, i don't get back the good data.

Are there any errors???

Regards

Damien

ezanen9
Associate II
Posted on October 05, 2005 at 16:22

Hi all,

I also want to write to the external memory. I followed your discussion and I have question about it.

If I try to set the BCON0 register like:

BCON0 = 0x803D

I defined the register like:

#define EMI_BASE 0x6C000000

#define EMI_BCON0 (*(REG32 EMI_BASE))

I am using the KEIL IDE+compiler. If I run a program with above code in it, the JTAG communiction to my eval board stops and both the program on my STR710 en PC are crashing.

If I run this code the JTAG communication stop with the error:

JTAG Communication Failure

*** error 122: AGDI: memory read failed (0x60000000)

JTAG Communication Failure

JTAG Communication Failure

JTAG Communication Failure

Someone an idea about what is going wrong? If I use the memory view in my IDE on the adresses 0x60000000-0x600FFFFFF the programs on my STR710 and PC are also crashing.

Bad JTAG device?