* [ECOS] need the correct template & packages for ppp
@ 2007-02-21 10:27 shobhit saxena
0 siblings, 0 replies; only message in thread
From: shobhit saxena @ 2007-02-21 10:27 UTC (permalink / raw)
To: ecos-discuss
hello everyone,
i am working on arm e7t board using ecos tool.I
wanna run the following program "windows_telnet".The problem is when
i take the "net template" & add "ppp support" to the ecos options,it
successfully builds.Then i tried to make this program but it shows
error " windows_telnet section .bss is not within region ram".i know
that the executable is more than the size of RAM in the board(512 kb).
CAN ANYONE SUGGEST ME A COFIGURATION ON THE ECOS TOOL SO THAT PPP
& TELNET BOTH WORK WITHOUT THE ABOVE ERROR.
#include <pkgconf/system.h>
#include <pkgconf/net_lwip.h>
#include <network.h>
#include <cyg/ppp/ppp.h>
#define SOMAXCONN 3
static char *windows_script[] =
{
"TIMEOUT", "2",
"", "CLIENTCLIENT\\c",
"CLIENTSERVER", "\\c",
0
};
void telnet(void)
{
struct sockaddr_in sin;
struct sockaddr_in pin;
/* get an internet domain socket */
int sd;
if ((sd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
return;
}
/* complete the socket structure */
memset(&sin, 0, sizeof(sin));
sin.sin_len = sizeof(sin);
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_port = htons(23);
unsigned int opt = 1;
if (setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) == -1)
{
goto out;
}
/* bind the socket to the port number */
if (bind(sd, (struct sockaddr *) &sin, sizeof(sin)) == -1)
{
goto out;
}
/* show that we are willing to listen */
if (listen(sd, SOMAXCONN) == -1)
{
goto out;
}
int sd_current;
/* wait for a client to talk to us */
socklen_t addrlen = sizeof(pin);
if ((sd_current = accept(sd, (struct sockaddr *) &pin, &addrlen)) == -1)
{
goto out;
}
for (;;)
{
char *prompt="eCos>";
int promptlen = strlen(prompt);
if (write(sd_current, prompt, promptlen) != promptlen)
{
goto AbortSession;
}
/* get a message from the client */
char dir[256];
int len;
size_t i;
for (i=0; i<sizeof(dir)-1; i++)
{
// returns when a full line has been collected
len=read(sd_current, dir+i, 1);
if (len != 1)
{
goto AbortSession;
}
if (write(sd_current, dir+i, 1)!=1)
{
goto AbortSession;
}
// ignore CR
if (dir[i]=='\r')
{
i--;
}
// Break out on a new line
if (dir[i]=='\n')
{
break;
}
dir[i]=0;
}
}
AbortSession:
/* close up both sockets */
close(sd_current);
out:
close(sd);
}
int main(int argc, char **argv)
{
// Bring up the TCP/IP network
init_all_network_interfaces();
for (;;)
{
cyg_ppp_options_t options;
cyg_ppp_handle_t ppp_handle;
// Initialize the options
cyg_ppp_options_init( &options );
options.script=windows_script;
options.baud = CYGNUM_SERIAL_BAUD_9600;
options.flowctl = CYG_PPP_FLOWCTL_NONE;
options.idle_time_limit = 0; // never shut down.
// Start up PPP
ppp_handle = cyg_ppp_up( "/dev/ser0", &options );
// Wait for it to get running
if( cyg_ppp_wait_up( ppp_handle ) == 0 )
{
// Make use of PPP
for (;;)
{
telnet();
}
// never reached, but for illustration:
// Bring PPP link down
cyg_ppp_down( ppp_handle );
// Wait for connection to go down.
cyg_ppp_wait_down( ppp_handle );
}
}
}
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-02-21 10:27 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-21 10:27 [ECOS] need the correct template & packages for ppp shobhit saxena
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).