Soe we're finally back at reducing the memory footprint be avoiding to pull in large C-library enitities.

This commit is contained in:
oliverschmidt 2007-12-16 13:08:09 +00:00
parent c7a24bf6cf
commit 8644822a34
5 changed files with 45 additions and 32 deletions

View file

@ -30,19 +30,34 @@
*
* Author: Oliver Schmidt <ol.sc@web.de>
*
* $Id: config.c,v 1.2 2007/12/08 21:48:49 oliverschmidt Exp $
* $Id: config.c,v 1.3 2007/12/16 13:10:14 oliverschmidt Exp $
*/
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include "contiki-net.h"
#include "sys/log.h"
#include "lib/error.h"
#include "net/ethernet-drv.h"
/*-----------------------------------------------------------------------------------*/
static char *
ipaddrtoa(uip_ipaddr_t *ipaddr, char *buffer)
{
char *ptr = buffer;
u8_t i;
for(i = 0; i < 4; ++i) {
*ptr = '.';
utoa(ipaddr->u8[i], ++ptr, 10);
ptr += strlen(ptr);
}
return buffer + 1;
}
/*-----------------------------------------------------------------------------------*/
struct ethernet_config *
config_read(char *filename)
@ -58,25 +73,25 @@ config_read(char *filename)
file = open(filename, O_RDONLY);
if(file < 0) {
fprintf(stderr, "%s: %s\n", filename, strerror(errno));
log_message(filename, ": File not found");
error_exit();
}
if(read(file, &config, sizeof(config)) < sizeof(config)
- sizeof(config.ethernetcfg.name)) {
fprintf(stderr, "%s: %s\n", filename, "No Config File");
log_message(filename, ": No config file");
error_exit();
}
close(file);
fprintf(stderr, "IP Address: %d.%d.%d.%d\n", uip_ipaddr_to_quad(&config.hostaddr));
fprintf(stderr, "Subnet Mask: %d.%d.%d.%d\n", uip_ipaddr_to_quad(&config.netmask));
fprintf(stderr, "Def. Router: %d.%d.%d.%d\n", uip_ipaddr_to_quad(&config.draddr));
//fprintf(stderr, "DNS Server: %d.%d.%d.%d\n", uip_ipaddr_to_quad(&config.resolvaddr));
log_message("IP Address: ", ipaddrtoa(&config.hostaddr, uip_buf));
log_message("Subnet Mask: ", ipaddrtoa(&config.netmask, uip_buf));
log_message("Def. Router: ", ipaddrtoa(&config.draddr, uip_buf));
//log_message("DNS Server: ", ipaddrtoa(&config.resolvaddr, uip_buf));
fprintf(stderr, "Eth. Driver: %s at $%X\n", config.ethernetcfg.name,
config.ethernetcfg.addr);
log_message("Eth. Driver: ", config.ethernetcfg.name);
log_message("Driver Port: $", utoa(config.ethernetcfg.addr, uip_buf, 16));
uip_sethostaddr(&config.hostaddr);
uip_setnetmask(&config.netmask);

View file

@ -30,10 +30,11 @@
*
* Author: Oliver Schmidt <ol.sc@web.de>
*
* $Id: log.c,v 1.3 2007/12/08 22:34:59 oliverschmidt Exp $
* $Id: log.c,v 1.4 2007/12/16 13:11:01 oliverschmidt Exp $
*/
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include "net/uip.h"
#include "sys/log.h"
@ -43,7 +44,8 @@
void
uip_log(char *message)
{
fprintf(stderr, "%s\n", message);
write(STDERR_FILENO, message, strlen(message));
write(STDERR_FILENO, "\n", 1);
}
#endif /* UIP_LOGGING */
/*-----------------------------------------------------------------------------------*/
@ -51,7 +53,9 @@ uip_log(char *message)
void
log_message(const char *part1, const char *part2)
{
fprintf(stderr, "%s%s\n", part1, part2);
write(STDERR_FILENO, part1, strlen(part1));
write(STDERR_FILENO, part2, strlen(part2));
write(STDERR_FILENO, "\n", 1);
}
#endif /* LOG_CONF_ENABLED */
/*-----------------------------------------------------------------------------------*/

View file

@ -30,12 +30,11 @@
*
* Author: Oliver Schmidt <ol.sc@web.de>
*
* $Id: contiki-main.c,v 1.11 2007/11/27 21:50:19 oliverschmidt Exp $
* $Id: contiki-main.c,v 1.12 2007/12/16 13:08:09 oliverschmidt Exp $
*/
#include <stdio.h>
#include "contiki-net.h"
#include "sys/log.h"
#include "lib/config.h"
#include "net/ethernet-drv.h"
@ -72,29 +71,24 @@ main(void)
uip_ipaddr_t addr;
uip_ipaddr(&addr, 192,168,0,128);
fprintf(stderr, "IP Address: %d.%d.%d.%d\n", uip_ipaddr_to_quad(&addr));
uip_sethostaddr(&addr);
uip_ipaddr(&addr, 255,255,255,0);
fprintf(stderr, "Subnet Mask: %d.%d.%d.%d\n", uip_ipaddr_to_quad(&addr));
uip_setnetmask(&addr);
uip_ipaddr(&addr, 192,168,0,1);
fprintf(stderr, "Def. Router: %d.%d.%d.%d\n", uip_ipaddr_to_quad(&addr));
uip_setdraddr(&addr);
uip_ipaddr(&addr, 192,168,0,1);
fprintf(stderr, "DNS Server: %d.%d.%d.%d\n", uip_ipaddr_to_quad(&addr));
resolv_conf(&addr);
fprintf(stderr, "Eth. Driver: %s at $%X\n", config.name, config.addr);
ethernet_config = &config;
}
#endif
process_start((struct process *)&ethernet_process, (char *)ethernet_config);
fprintf(stderr, "Contiki up and running ...\n");
log_message("Contiki up and running ...", "");
while(1) {

View file

@ -30,21 +30,21 @@
*
* Author: Oliver Schmidt <ol.sc@web.de>
*
* $Id: error.c,v 1.1 2007/12/08 22:16:57 oliverschmidt Exp $
* $Id: error.c,v 1.2 2007/12/16 13:12:49 oliverschmidt Exp $
*/
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include "sys/log.h"
#include "lib/error.h"
/*-----------------------------------------------------------------------------------*/
void
error_exit(void)
{
fprintf(stderr, "Press any key to continue ...\n");
cgetc();
log_message("Press any key to continue ...", "");
ctk_arch_getkey();
exit(EXIT_FAILURE);
}
/*-----------------------------------------------------------------------------------*/

View file

@ -30,13 +30,13 @@
*
* Author: Oliver Schmidt <ol.sc@web.de>
*
* $Id: clock.c,v 1.1 2007/12/15 11:04:11 oliverschmidt Exp $
* $Id: clock.c,v 1.2 2007/12/16 13:11:46 oliverschmidt Exp $
*/
#include <stdio.h>
#include <apple2.h>
#include "contiki.h"
#include "sys/log.h"
/* The enhanced Apple//e doesn't have a hardware clock whatsoever. Therefore the
* cc65 C-library for this target doesn't include an implementation of clock().
@ -53,7 +53,7 @@ clock_init(void)
if(*(signed char *)0xC036 < 0) {
/* 5 / 14 = 1.0MHz / 2.8MHz */
tick = 5;
fprintf(stderr, "Assuming 2.8 MHz ...\n");
log_message("Assuming 2.8 MHz ...", "");
}
}
}