Network library settings

Hi all,

I have some questions and I would be grateful if you could help me. As you know, by adding a Network library, the library without open source needs good documentations. The documentation @ Keil and ARM websites is appropriate for many uses but for networks needs to be completed.

My questions:

1) In the Net_Config_ETH_0.h file, what is the OS Resource Settings?

2)In Net_Config.c, what is the OS Resource Settings? What does define its size

To change the default OS resource settings for the Network Core, use Core Thread Stack Size. The default value is 1024 bytes

3) In Net_Config.c, what is the Memory Pool Size?

The Memory Pool Size specifies the amount of RAM in bytes allocated for the memory pool. The buffers for the network packets are allocated from this memory pool. Usually, the default value of 12000 bytes is sufficient.

Does it get this memory from RTOS Global Dynamic memory?

4) How can I define the maximum data size and packet numbers per second if I use TCP or UDP protocol? I am using STM32F10x series with 72 MHz and a Phi with 50 MHz resource clock with RMII protocol.

5) How much time does a packet need to be transmitted after using netUDP_Send or netTCP_Send?

6) Is there any limitation for the Network on tick number or Kernel frequency of RTOS?

7) If I send the 30Bytes UDP packet each 100us, how the network library handle it? It sends them very fast or accumulate them in in queue form?

 

Thank you.

 

Parents
  • Let me answer your questions:

    1. The operating system resource settings define stack size and priority for the ethernet interface thread used for the RTOS. This is documented here

    2. As above, but for the Network Core thread documented here.

    3. The memory pool is statically allocated at build time. Please compile a network example and check the generated .map file.

    4. You specify the data length, the network core then sends the data in one or more packets, depending on the data length.

    5. This depends on the core frequency of the processor and the speed of the ethernet connection. With a 100 MBit connection, for example, sending 1000 bytes takes less than 100us.

    6. There is no limitation on tick number. The RTOS must provide 100ms ticks for the network core.

    7. Sending 30 UDP bytes is not optimal because the network also adds ethernet, IP and UDP protocol headers. However, the ethernet MAC also adds a preamble and a 32-bit CRC. This means at least 46 additional bytes.

Reply
  • Let me answer your questions:

    1. The operating system resource settings define stack size and priority for the ethernet interface thread used for the RTOS. This is documented here

    2. As above, but for the Network Core thread documented here.

    3. The memory pool is statically allocated at build time. Please compile a network example and check the generated .map file.

    4. You specify the data length, the network core then sends the data in one or more packets, depending on the data length.

    5. This depends on the core frequency of the processor and the speed of the ethernet connection. With a 100 MBit connection, for example, sending 1000 bytes takes less than 100us.

    6. There is no limitation on tick number. The RTOS must provide 100ms ticks for the network core.

    7. Sending 30 UDP bytes is not optimal because the network also adds ethernet, IP and UDP protocol headers. However, the ethernet MAC also adds a preamble and a 32-bit CRC. This means at least 46 additional bytes.

Children