Problems connecting two embedded boards running RTEMS
Joel Sherrill
joel.sherrill at oarcorp.com
Thu Jul 27 18:23:57 UTC 2006
A.Jallad at surrey.ac.uk wrote:
> Hi,
>
> I am trying to make a simple ethernet connection between two embedded boards with a LEON processor running on each. I am trying to make a connection between the two boards running RTEMS. The server starts listening but the client fails to connect.
>
> What irritates me most is that the connection works fine between a Linux machine and each of the two boards individually in any configuration (linux machine serving as server and RTEMS board as client and vice-versa).
>
>
Stupid question.. is it possible that both RTEMS boards are configured
to use the same IP address?
--joel
> The configuration for the client is:
>
> #define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER
> #define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER
> #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> #define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 20
> #define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
>
> #define CONFIGURE_EXECUTIVE_RAM_SIZE (512*1024)
> #define CONFIGURE_MAXIMUM_SEMAPHORES 20
> #define CONFIGURE_MAXIMUM_TASKS 20
>
> #define CONFIGURE_MICROSECONDS_PER_TICK 10000
>
> #define CONFIGURE_INIT_TASK_STACK_SIZE (10*1024)
> #define CONFIGURE_INIT_TASK_PRIORITY 120
> #define CONFIGURE_INIT_TASK_INITIAL_MODES (RTEMS_PREEMPT | \
> RTEMS_NO_TIMESLICE | \
> RTEMS_NO_ASR | \
> RTEMS_INTERRUPT_LEVEL(0))
>
> #define CONFIGURE_INIT
>
> The network configuration file for the client is shown below:
>
> //This is the client network config
> /*
> * Network configuration
> *
> ************************************************************
> * EDIT THIS FILE TO REFLECT YOUR NETWORK CONFIGURATION *
> * BEFORE RUNNING ANY RTEMS PROGRAMS WHICH USE THE NETWORK! *
> ************************************************************
> *
> * networkconfig.h,v 1.8 2001/08/31 18:11:43 joel Exp
> */
>
> #ifndef _RTEMS_NETWORKCONFIG_H_
> #define _RTEMS_NETWORKCONFIG_H_
>
> /*
> * The following will normally be set by the BSP if it supports
> * a single network device driver. In the event, it supports
> * multiple network device drivers, then the user's default
> * network device driver will have to be selected by a BSP
> * specific mechanism.
> */
>
> #ifndef RTEMS_BSP_NETWORK_DRIVER_NAME
> #warning "RTEMS_BSP_NETWORK_DRIVER_NAME is not defined"
> #define RTEMS_BSP_NETWORK_DRIVER_NAME "no_network1"
> #endif
>
> #ifndef RTEMS_BSP_NETWORK_DRIVER_ATTACH
> #warning "RTEMS_BSP_NETWORK_DRIVER_ATTACH is not defined"
> #define RTEMS_BSP_NETWORK_DRIVER_ATTACH 0
> #endif
>
> /* #define RTEMS_USE_BOOTP */
>
> #include <bsp.h>
>
> /*
> * Define RTEMS_SET_ETHERNET_ADDRESS if you want to specify the
> * Ethernet address here. If RTEMS_SET_ETHERNET_ADDRESS is not
> * defined the driver will choose an address.
> */
> #define RTEMS_SET_ETHERNET_ADDRESS
> #if (defined (RTEMS_SET_ETHERNET_ADDRESS))
> /* static char ethernet_address[6] = { 0x08, 0x00, 0x3e, 0x12, 0x28, 0xb1 }; */
> static char ethernet_address[6] = { 0x00, 0x80, 0x7F, 0x22, 0x61, 0x77 };
>
> #endif
>
> #ifdef RTEMS_USE_LOOPBACK
> /*
> * Loopback interface
> */
> extern void rtems_bsdnet_loopattach();
> static struct rtems_bsdnet_ifconfig loopback_config = {
> "lo0", /* name */
> rtems_bsdnet_loopattach, /* attach function */
>
> NULL, /* link to next interface */
>
> "127.0.0.1", /* IP address */
> "255.0.0.0", /* IP net mask */
> };
> #endif
>
> /*
> * Default network interface
> */
> static struct rtems_bsdnet_ifconfig netdriver_config = {
> RTEMS_BSP_NETWORK_DRIVER_NAME, /* name */
> RTEMS_BSP_NETWORK_DRIVER_ATTACH, /* attach function */
>
> #ifdef RTEMS_USE_LOOPBACK
> &loopback_config, /* link to next interface */
> #else
> NULL, /* No more interfaces */
> #endif
>
> #if (defined (RTEMS_USE_BOOTP))
> NULL, /* BOOTP supplies IP address */
> NULL, /* BOOTP supplies IP net mask */
> #else
> "192.168.1.66", /* IP address */
> "255.255.255.0", /* IP net mask */
> #endif /* !RTEMS_USE_BOOTP */
>
> #if (defined (RTEMS_SET_ETHERNET_ADDRESS))
> ethernet_address, /* Ethernet hardware address */
> #else
> NULL, /* Driver supplies hardware address */
> #endif
> 0 /* Use default driver parameters */
> };
>
> /*
> * Network configuration
> */
> struct rtems_bsdnet_config rtems_bsdnet_config = {
> &netdriver_config,
>
> #if (defined (RTEMS_USE_BOOTP))
> rtems_bsdnet_do_bootp,
> #else
> NULL,
> #endif
>
> 100, /* Default network task priority */
> 128*1024, /* Default mbuf capacity */
> 256*1024, /* Default mbuf cluster capacity */
>
> #if (!defined (RTEMS_USE_BOOTP))
> "rtems_client", /* Host name */
> "localnet", /* Domain name */
> "192.168.1.15", /* Gateway */
> "192.168.1.15" , /* Log host */
> {"192.168.1.15" }, /* Name server(s) */
> {"192.168.1.15" }, /* NTP server(s) */
>
> #endif /* !RTEMS_USE_BOOTP */
>
> };
>
> /*
> * For TFTP test application
> */
> #if (defined (RTEMS_USE_BOOTP))
> #define RTEMS_TFTP_TEST_HOST_NAME "BOOTP_HOST"
> #define RTEMS_TFTP_TEST_FILE_NAME "BOOTP_FILE"
> #else
> #define RTEMS_TFTP_TEST_HOST_NAME "XXX.YYY.ZZZ.XYZ"
> #define RTEMS_TFTP_TEST_FILE_NAME "tftptest"
> #endif
>
> #endif /* _RTEMS_NETWORKCONFIG_H_ */
>
>
> /////////////////////////////////////////////////////////////////////////////////////////////
> //////////////////////////////////////////////////////////////////////////////////////////////////
> The server configuration is
>
> #define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER
> #define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER
> #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> #define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 20
> #define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
>
> #define CONFIGURE_EXECUTIVE_RAM_SIZE (512*1024)
> #define CONFIGURE_MAXIMUM_SEMAPHORES 20
> #define CONFIGURE_MAXIMUM_TASKS 20
>
> #define CONFIGURE_MICROSECONDS_PER_TICK 10000
>
> #define CONFIGURE_INIT_TASK_STACK_SIZE (10*1024)
> #define CONFIGURE_INIT_TASK_PRIORITY 120
> #define CONFIGURE_INIT_TASK_INITIAL_MODES (RTEMS_PREEMPT | \
> RTEMS_NO_TIMESLICE | \
> RTEMS_NO_ASR | \
> RTEMS_INTERRUPT_LEVEL(0))
>
> ///////////////////////////////////////////////////////////////
> The networkconfig.h for the server is shown below:
>
> //This is the server network config
> /*
> * Network configuration
> *
> ************************************************************
> * EDIT THIS FILE TO REFLECT YOUR NETWORK CONFIGURATION *
> * BEFORE RUNNING ANY RTEMS PROGRAMS WHICH USE THE NETWORK! *
> ************************************************************
> *
> * networkconfig.h,v 1.8 2001/08/31 18:11:43 joel Exp
> */
>
> #ifndef _RTEMS_NETWORKCONFIG_H_
> #define _RTEMS_NETWORKCONFIG_H_
>
> /*
> * The following will normally be set by the BSP if it supports
> * a single network device driver. In the event, it supports
> * multiple network device drivers, then the user's default
> * network device driver will have to be selected by a BSP
> * specific mechanism.
> */
>
> #ifndef RTEMS_BSP_NETWORK_DRIVER_NAME
> #warning "RTEMS_BSP_NETWORK_DRIVER_NAME is not defined"
> #define RTEMS_BSP_NETWORK_DRIVER_NAME "no_network1"
> #endif
>
> #ifndef RTEMS_BSP_NETWORK_DRIVER_ATTACH
> #warning "RTEMS_BSP_NETWORK_DRIVER_ATTACH is not defined"
> #define RTEMS_BSP_NETWORK_DRIVER_ATTACH 0
> #endif
>
> /* #define RTEMS_USE_BOOTP */
>
> #include <bsp.h>
>
> /*
> * Define RTEMS_SET_ETHERNET_ADDRESS if you want to specify the
> * Ethernet address here. If RTEMS_SET_ETHERNET_ADDRESS is not
> * defined the driver will choose an address.
> */
> #define RTEMS_SET_ETHERNET_ADDRESS
> #if (defined (RTEMS_SET_ETHERNET_ADDRESS))
> /* static char ethernet_address[6] = { 0x08, 0x00, 0x3e, 0x12, 0x28, 0xb1 }; */
> static char ethernet_address[6] = { 0x00, 0x80, 0x7F, 0x22, 0x61, 0x77 };
>
> #endif
>
> #ifdef RTEMS_USE_LOOPBACK
> /*
> * Loopback interface
> */
> extern void rtems_bsdnet_loopattach();
> static struct rtems_bsdnet_ifconfig loopback_config = {
> "lo0", /* name */
> rtems_bsdnet_loopattach, /* attach function */
>
> NULL, /* link to next interface */
>
> "127.0.0.1", /* IP address */
> "255.0.0.0", /* IP net mask */
> };
> #endif
>
> /*
> * Default network interface
> */
> static struct rtems_bsdnet_ifconfig netdriver_config = {
> RTEMS_BSP_NETWORK_DRIVER_NAME, /* name */
> RTEMS_BSP_NETWORK_DRIVER_ATTACH, /* attach function */
>
> #ifdef RTEMS_USE_LOOPBACK
> &loopback_config, /* link to next interface */
> #else
> NULL, /* No more interfaces */
> #endif
>
> #if (defined (RTEMS_USE_BOOTP))
> NULL, /* BOOTP supplies IP address */
> NULL, /* BOOTP supplies IP net mask */
> #else
> "192.168.1.15", /* IP address */
> "255.255.255.0", /* IP net mask */
> #endif /* !RTEMS_USE_BOOTP */
>
> #if (defined (RTEMS_SET_ETHERNET_ADDRESS))
> ethernet_address, /* Ethernet hardware address */
> #else
> NULL, /* Driver supplies hardware address */
> #endif
> 0 /* Use default driver parameters */
> };
>
> /*
> * Network configuration
> */
> struct rtems_bsdnet_config rtems_bsdnet_config = {
> &netdriver_config,
>
> #if (defined (RTEMS_USE_BOOTP))
> rtems_bsdnet_do_bootp,
> #else
> NULL,
> #endif
>
> 100, /* Default network task priority */
> 128*1024, /* Default mbuf capacity */
> 256*1024, /* Default mbuf cluster capacity */
>
> #if (!defined (RTEMS_USE_BOOTP))
> "rtems_server", /* Host name */
> "localnet", /* Domain name */
> "", /* Gateway */
> "" , /* Log host */
> {"" }, /* Name server(s) */
> {"" }, /* NTP server(s) */
>
> #endif /* !RTEMS_USE_BOOTP */
>
> };
>
> /*
> * For TFTP test application
> */
> #if (defined (RTEMS_USE_BOOTP))
> #define RTEMS_TFTP_TEST_HOST_NAME "BOOTP_HOST"
> #define RTEMS_TFTP_TEST_FILE_NAME "BOOTP_FILE"
> #else
> #define RTEMS_TFTP_TEST_HOST_NAME "XXX.YYY.ZZZ.XYZ"
> #define RTEMS_TFTP_TEST_FILE_NAME "tftptest"
> #endif
>
> #endif /* _RTEMS_NETWORKCONFIG_H_ */
>
> //////////////////////////////////////////////////////////////////////////////////
> Any help appreciated,
>
> Regards,
> Abdul
>
> Abdul-Halim Jallad
> Surrey Space Centre
>
More information about the users
mailing list