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.

external memory problem

Hi,

I had come to a strange problem. 

I had a project that worked ok up to yesterday and yesterday it began working strangely. 

The Board is eZspF28335.

After several hours I added these few lines to somewhere in my code:

1: long s2=sizeof(MyProcess);           // 1116852 goes to s2;

2: uint16_t  *gg=(uint16_t  *)&MyProcess;    // 0x002000c0  goes to gg; // it is in external RAM

3: gg[0]=34;

4: gg[1024]=56;

5: gg[3]=78;

6: gg[1027]=99;

Now when line 3 executes, both gg[0] and gg[1024] would be 34,

         when line 4 executes, both gg[0] and gg[1024] would be 56,

         when line 5 executes, both gg[3] and gg[1027] would be 78,

and  when line 7 executes, both gg[3] and gg[1027] would be 99,

MyProcess is in external RAM

#pragma DATA_SECTION("ZONE7DATA");

CProcess MyProcess;

Do I have a problem in my hardware , or there might be some other kind of problem?

Thanks a lot,

    Behzad

  • Hi Behzad,

    No, I don't think there's any problem with the hardware. Interfacing with external RAM is not an issue right?

    Regards,

    Gautam

  • Hi,

    Thanks a lot for  a fast response.

    good news that it is not a hardware problem. But do u have any idea what is the source of this problem? It was working yesterday. Is there a possibility that code composer or emulator are somehow functioning not correctly?

    what kind of problem causes gg[0] and gg[1024] change both together?

    Again thanks,

       Behzad

  • I've not met with such an issue so don't know the source. So if you feel that CCS might be creating this issue, why dont you create a new workspace -> import your project there and check?

    Emulator.... Nah doesn't seem like the one creating the issue.

    Regards,

    Gautam

  • Hi,

    I tested on two computers and no success. But I ran on of TI samples, "dma_xintf_to_ram". A few lines of this sample should fill external RAM with 0,1,2, ....1023.

    My RAM as expression panel shows, fills as below:

    both DMABuf2[0:63] and DMABuf2[64:127] :           64:127
    both DMABuf2[128:191] and DMABuf2[192:255]:  192:255
    both DMABuf2[256:319] and DMABuf2[320:383]:  320:383
    both DMABuf2[384:447] and DMABuf2[448:511]:   448:511

    So maybe bit 7 of adress bus is not functioning correctly , (is always high or always low),  It seems somehow to be a hardware fault to me, or some code may lead to this?

    Thanks,

       Behzad

  • So maybe bit 7 of adress bus is not functioning correctly , (is always high or always low),  It seems somehow to be a hardware fault to me, or some code may lead to this?

    Indeed bit 7 seems to be the issue... yup both your conclusions seem to be valid. Any doubts on external memory itself? Any configuration to activate the 7th line?

    Regards,

    Gautam

  • Hi,

    yes, let me ask 3 question as another chance

    1- Can I manually set the number of wait states for the external RAM, if yes how?

    2- Is it possible that I have changed some set up file accidentally in software?

    3- Is there any possibility that writing to an invalid address on the dsp board , somehow change board functionality ?

    Is there something like factory default ?

    Thanks a lot,

       Behzadf

  • Behzad, I'm forwarding your query to one of my TI buddy. I hope you get detailed answers for your queries.

    Goodluck & Regards,

    Gautam