This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

socket functions

Trying to create a simple server, using the 'socket' type functions, but i get the errors:

.\obj\workspace.axf: Error: L6218E: Undefined symbol bsd_NumSocks (referred from at_bsd.o).
.\obj\workspace.axf: Error: L6218E: Undefined symbol bsd_RcvTout (referred from at_bsd.o).
.\obj\workspace.axf: Error: L6218E: Undefined symbol bsd_T200ms (referred from at_bsd.o).
.\obj\workspace.axf: Error: L6218E: Undefined symbol bsd_socket (referred from at_bsd.o).

I have the TCP_CM3.lib included. The docs on Keil's website calls for the "RL-TCPnet library", which i assume is 'TCP_CM3.lib' (or is it?).

Any ideas?

PS. i've tried using the tcp_get_socket function and it works, but i'd like to use the 'socket' class of functions instead.

  • Putting "RL-TCPnet library" into the 'Search' box at top-right of the page gave:

    http://www.keil.com/support/man/docs/rlarm/rlarm_lib_files.htm

    You might try it with "bsd_NumSocks"...

  • Neil, i appreciate the reply, however smug and latently trolly it might be. However, i had looked at these pages before and defining BSD_ENABLE (or using the other options) to 1 does not have an effect on my project, unfortunately. The library page you linked also doesn't really give me any pointers. unless i'm missing something.

    Again, i appreciate the attempt to help. Have you been able to use socket type library functions? if so, what libraries did you use?

  • Do you have the EMAC driver included in the project?

  • I've not (yet) used the BSD functionality, but have looked into it a little.

    Those four symbols are given in the file Net_lib.C:

    #if (BSD_ENABLE)
     BSD_INFO  bsd_socket[BSD_NUMSOCKS + BSD_SRVSOCKS];
     U8  const bsd_NumSocks  = BSD_NUMSOCKS + BSD_SRVSOCKS;
     U8  const bsd_T200ms    = TICK_RATE / 5;
     U16 const bsd_RcvTout   = BSD_RCVTOUT * TICK_RATE;
     #ifdef __RTX
     OS_MUT    bsd_mutex;
     #endif
    #endif
    

    The file Net_lib.c is in:

    \ARM\RV31\INC

    Net_lib.c is included at the bottom of the file:

    Net_Config.c

    which would normally be included in your project and is where you select (amongst other things) the BSD functionality.

    At the risk of appearing daft, I wonder whether you've enabled it in that file?