Nios® II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
12408 Discussions

Massively long download time when I have large arrays in DDR





If I create a large array in my C code that sites in external memory (DDR) that is, as far as I know, set up as data memory, when I debug, Eclipse spends forever and a day writing something to that external memory in why my array is created.

So, I have the following:


static uint8_t message_in_array[NUMBER_OF_MESSAGE_BUFFERS][MESSAGE_IN_MAX_SIZE] __attribute__((section(".DDR3_Data_RAM")));



If MESSAGE_IN_MAX_SIZE is set to the size it needs to be (100MB), then when I debug, rather than the system just downloading the small program (less than 32k) to internal memory, you can see it writing to DDR:

Here is a snippet of the console output:


Downloading 404B0000 ( 2%)
Downloading 404C0000 ( 2%)
Downloading 404D0000 ( 2%)
Downloading 404E0000 ( 2%)
Downloading 404F0000 ( 2%)
Downloading 40500000 ( 2%)
Downloading 40510000 ( 2%)
Downloading 40520000 ( 2%)
Downloading 40530000 ( 2%)
Downloading 40540000 ( 2%)
Downloading 40550000 ( 2%)
Downloading 40560000 ( 2%)
Downloading 40570000 ( 2%)



These addresses are all in section DDR3_Data_RAM, so it is clear that the debugger is loading something (although quite what I cannot fathom) into my array.

How do I stop this please?

0 Kudos
2 Replies

Have you checked your PLL is locked before writing to DDR3.


Oh, man. We dumped Altera a way back due to lack of support. But thanks for the timely reply.