Hi,
I am trying to configure EMIF to write/read to/from
external memory. Below I am including linker cmd file
and source code. I am unable to notice any changes
using oscilloscope on address pins A0-A2 and data pins
d0-d7. Also CE1 always remains high.
I would appreciate if someone might be able provide me
some comments.
MEMORY
{
MMR : o = 0x000000 l = 0x0000c0
DARAM0 : o = 0x0000C0 l = 0x001F3F
DARAM1 : o = 0x002000 l = 0x003FFF
/*
DARAM1 : o = 0x002000 l = 0x001FFF
DARAM2 : o = 0x004000 l = 0x001FFF
*/
DARAM3 : o = 0x006000 l = 0x001FFF
DARAM4 : o = 0x008000 l = 0x001FFF
DARAM5 : o = 0x00A000 l = 0x001FFF
DARAM6 : o = 0x00C000 l = 0x001FFF
DARAM7 : o = 0x00E000 l = 0x001FFF
CE0 : o = 0x010000 l = 0x3FFFFF
CE1 : o = 0x400000 l = 0x3FFFFF
CE2 : o = 0x800000 l = 0x3FFFFF
CE3 : o = 0xC00000 l = 0x3F7FFF
}
SECTIONS
{
.cinit > DARAM0
.text > DARAM1
.stack > DARAM0
.sysstack > DARAM0
.sysmem > DARAM3
.data > DARAM3
.cio > DARAM0
.bss > DARAM3
.const > DARAM0
.csldata > DARAM0
my_data1 > CE1
}
int i;
#pragma DATA_SECTION(data,"my_data1")
int data[1000],value;
#pragma DATA_ALIGN(data,4)
EMIF_Config emifConfig1 = {
0x0017, /* egcr */
0xFFFF, /* emirst */
0x1FFF, /* ce01 */
0xF107, /* ce02 */
0x0000, /* ce03 */
0x1FFF, /* ce11 */
0xF107, /* ce12 */
0x0000, /* ce13 */
0x1FFF, /* ce21 */
0xF107, /* ce22 */
0x0000, /* ce23 */
0x1FFF, /* ce31 */
0xF107, /* ce32 */
0x0000, /* ce33 */
0x07FF, /* sdc1 */
0x0FFF, /* sdper */
0x07FF, /* init */
0x03FF /* sdc2 */
};
void main()
{
CSL_init();
EMIF_config(&emifConfig1);
while(1)
{
for(i=0;i<1000;i++)
{
data[i] = 0xAAAAAAAA;
value = data[i];
}
}
}