Is their a way in the data sheet or some way to add more program memory to due.

I wanted to program the arduino due to do some linear algebra operations. Linear Discriminant Analysis. The code blocks c++ release code is over 520k already So I wonder is their ways to compile the program smaller and will it be smaller put into the arduino due as shown in the forums? It is on my pc now.
What are ways to add more program memory???

The SAM3X chip used in the Due doesn't have an interface for additional program memory.

depending on your application maybe your better of with a raspberryPi it will give you much stronger math capabilities (speed/Programming language)

The SAM3 use in the Due can easily use external memory and AFAIK execute programs from there as well.

Unfortunately the Due team did not break out the pins to do this. This thread goes into more details and he got it working.

http://arduino.cc/forum/index.php/topic,152644.0.html


Rob

That isn't program memory, though.

Not sure but I'll believe you as I'm still learning the chip. I gather it can execute from RAM but that may not mean external memory.


Rob

I could be wrong, I just found this in an ARM doc. on the Cortex-M3:

"The Cortex-M3 design has an internal bus infrastructure optimized for this memory usage. In addition, the design allows these regions to be used differently. For example, data memory can still be put into the CODE region, and program code can be executed from an external Random Access Memory (RAM) region."

Hmm, interesting. Given the linear nature of the memory I guess you would think it's possible. It would be slower but that's better than running out of space :slight_smile:

Of course you have to get the code in there at power up but there are a few ways to do that.


Rob

If you can interface SRAM to SAM3X, then you should be able to interface a NOR Flash and run code direct from Flash (will be slower needing wait states). Other permutations are possible, for example you could read from serial/NAND Flash and copy to RAM etc. You would have to write a small amount of bootstrap code since this type of thing is not directly supported by the toolchain.

I'm not sure how flexible the memory controller on the SAM3X is, but with ARM7 and ARM9 projects I have worked on most RAM and Flash was external, the chips only had a few K of RAM on board.