Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
16 years ago

ethernet auto-negotiation blocked?

Hi, I'm building a data acquisition and transfer system using Ethernet. The data source is continuous and has a throughput of 160 Mbps. Since the onboard Ethernet only supports 10/100 Base-T, I'm considering to use onboard SDRAM to store a block of data and then transfer to PC over Ethernet. I use DMA to write data in SDRAM and then use UDP to transfer data. The heap and stack are located in SDRAM, so the offset of SDRAM for data register will cause some exceptions. The onboard SDRAM has the size of 32M*8-bit. For example, (1) when I write SDRAM at 0x00001000 away from the base address of SDRAM, only 16kB data can be written into SDRAM; (2) when I write SDRAM at 0x00004000 away from the base address of SDRAM, the system will be blocked at Ethernet auto-negotiation; (3) when I write SDRAM at 0x00010000, then 1MB data can be written into SDRAM. Sometimes, it will give me the error information like Ethernet exit. I don't know the reason to cause such phenomenon. Any ideas or suggestion are welcome! Thank you in advance!

Eunice

12 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Nope. Like with other systems, malloc() allocates space on (from) the heap.

    Otherwise, you'd have to set aside portions of your SDRAM using custom linker script techniques.

    Cheers,

    - slacker
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thank you very much, slacker. I fixed the problem according to your suggestion. Now my system can work well. Thank you again!

    best,

    Eunice