Problems connecting two embedded boards running RTEMS

A.Jallad at surrey.ac.uk A.Jallad at surrey.ac.uk
Thu Jul 27 18:31:34 UTC 2006


The networkconfig.h files sets the struct rtems_bsdnet_ifconfig's ip_address field to different ip addresses (from the programs below 192.168.1.15 for the server and 192.168.1.66 for the client. So that should be ok.

Regards,
Abdul

-----Original Message-----
From: Joel Sherrill [mailto:joel.sherrill at oarcorp.com]
Sent: 27 July 2006 19:24
To: Jallad AHM Mr (PG/R - Surrey Space Centre)
Cc: rtems-users at rtems.com
Subject: Re: Problems connecting two embedded boards running RTEMS


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