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.

Extend XINTF addressable memory



The XINTF on the C28x MCU family can address a maximum of 1M x 16 for a single zone, i.e. XA[19:0] --> 2^20 --> 1M.  To be able to address 2M x 16 for a single zone, has anyone ever connected the additional address line (i.e. A20) from the external memory (SRAM or Flash) to a spare GPIO pin on the C28x MCU and manually controlled A20 knowing when the top and bottom half of the memory is to be accessed?

I am using a Flash memory in my application. Any concerns with doing this with a Flash verses an SRAM?

Thanks,

Nick

  • Nick,

    I've never tried this but I don't see why it wouldn't work. As long as your software set the GPIO pin before trying to access the high memory and waited until all those accesses were completed before clearing the GPIO to access the low memory. I think the biggest difficulty will be in your code. From the CPU/XINTF perspective the two variables have the same address. C won't allow this, so you will have to act like you are writing to the same variable regardless of whether you are writing to the high memory or low memory. This might have implications if you are reading both the high and low memory in the same function. Unless you declare the variable as volatile it may not read it the second time if the value is still in one of the CPU registers. I think you should be safe if you declare the variable as volatile. It is definately a dangerous thing from a software standpoint because your software will be totally responsible for keeping track of whether you are accessing the high variable or the low variable. You could never just read or write to it without first setting up the GPIO properly. But assuming you are willing to take that risk/difficulty I think it should work.

    Regards,
    Dave Foley