reduced memory usage, removed procinit, general cleanup of initialization, enabled watchdog
This commit is contained in:
parent
a500f2dd73
commit
79cb912f7c
2 changed files with 68 additions and 62 deletions
|
@ -1,11 +1,25 @@
|
||||||
#ifndef __CONTIKI_CONF_H__
|
#ifndef __CONTIKI_CONF_H__
|
||||||
#define __CONTIKI_CONF_H__
|
#define __CONTIKI_CONF_H__
|
||||||
|
|
||||||
|
#define RIMEBUF_CONF_ATTRS_INLINE 1
|
||||||
|
#define QUEUEBUF_CONF_NUM 1
|
||||||
|
#define QUEUEBUF_CONF_REF_NUM 1
|
||||||
|
#define ROUTE_CONF_ENTRIES 4
|
||||||
|
|
||||||
|
#define SERIAL_CONF_BUFSIZE 60
|
||||||
|
|
||||||
|
#define TIMESYNCH_CONF_ENABLED 0
|
||||||
|
#define PROFILE_CONF_ON 0
|
||||||
|
#define ENERGEST_CONF_ON 1
|
||||||
|
|
||||||
#define HAVE_STDINT_H
|
#define HAVE_STDINT_H
|
||||||
#include <msp430def.h>
|
#include <msp430def.h>
|
||||||
|
|
||||||
#define QUEUEBUF_CONF_NUM 2
|
#define PROCESS_CONF_NUMEVENTS 8
|
||||||
#define ENERGEST_CONF_ON 1
|
#define PROCESS_CONF_STATS 0
|
||||||
|
|
||||||
|
/* CPU target speed in Hz */
|
||||||
|
#define F_CPU 2457600uL
|
||||||
|
|
||||||
#define IRQ_PORT1_VECTOR 1
|
#define IRQ_PORT1_VECTOR 1
|
||||||
|
|
||||||
|
@ -29,15 +43,11 @@
|
||||||
typedef unsigned short clock_time_t;
|
typedef unsigned short clock_time_t;
|
||||||
#define CLOCK_CONF_SECOND 100
|
#define CLOCK_CONF_SECOND 100
|
||||||
|
|
||||||
void clock_delay(unsigned int us2);
|
|
||||||
|
|
||||||
void clock_wait(int ms10);
|
void clock_wait(int ms10);
|
||||||
|
|
||||||
void clock_set_seconds(unsigned long s);
|
void clock_set_seconds(unsigned long s);
|
||||||
unsigned long clock_seconds(void);
|
unsigned long clock_seconds(void);
|
||||||
|
|
||||||
#include "ctk/ctk-vncarch.h"
|
|
||||||
|
|
||||||
#define LOG_CONF_ENABLED 0
|
#define LOG_CONF_ENABLED 0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* @(#)$Id: contiki-esb-main.c,v 1.13 2008/02/10 22:42:07 oliverschmidt Exp $
|
* @(#)$Id: contiki-esb-main.c,v 1.14 2008/03/07 17:54:22 nifi Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <io.h>
|
#include <io.h>
|
||||||
|
@ -36,7 +36,9 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "sys/procinit.h"
|
#include "contiki.h"
|
||||||
|
|
||||||
|
#include "dev/watchdog.h"
|
||||||
#include "sys/autostart.h"
|
#include "sys/autostart.h"
|
||||||
#include "contiki-esb.h"
|
#include "contiki-esb.h"
|
||||||
|
|
||||||
|
@ -44,13 +46,9 @@ SENSORS(&button_sensor, &sound_sensor, &vib_sensor,
|
||||||
&pir_sensor, &radio_sensor, &battery_sensor, &ctsrts_sensor,
|
&pir_sensor, &radio_sensor, &battery_sensor, &ctsrts_sensor,
|
||||||
&temperature_sensor);
|
&temperature_sensor);
|
||||||
|
|
||||||
PROCINIT(&sensors_process, /*&ir_process,*/
|
/*---------------------------------------------------------------------------*/
|
||||||
&etimer_process);
|
|
||||||
|
|
||||||
PROCESS(contiki_esb_main_init_process, "Contiki ESB init process");
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
print_processes(struct process **processes)
|
print_processes(struct process * const processes[])
|
||||||
{
|
{
|
||||||
printf("Starting");
|
printf("Starting");
|
||||||
while(*processes != NULL) {
|
while(*processes != NULL) {
|
||||||
|
@ -59,35 +57,6 @@ print_processes(struct process **processes)
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
PROCESS_THREAD(contiki_esb_main_init_process, ev, data)
|
|
||||||
{
|
|
||||||
PROCESS_BEGIN();
|
|
||||||
|
|
||||||
procinit_init();
|
|
||||||
|
|
||||||
PROCESS_PAUSE();
|
|
||||||
|
|
||||||
init_net();
|
|
||||||
|
|
||||||
PROCESS_PAUSE();
|
|
||||||
|
|
||||||
init_apps();
|
|
||||||
|
|
||||||
PROCESS_PAUSE();
|
|
||||||
|
|
||||||
print_processes((struct process **) autostart_processes);
|
|
||||||
autostart_start(autostart_processes);
|
|
||||||
|
|
||||||
beep_spinup();
|
|
||||||
leds_on(LEDS_RED);
|
|
||||||
clock_delay(100);
|
|
||||||
leds_off(LEDS_RED);
|
|
||||||
|
|
||||||
energest_init();
|
|
||||||
|
|
||||||
PROCESS_END();
|
|
||||||
}
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static void init_ports_toberemoved() {
|
static void init_ports_toberemoved() {
|
||||||
////////// Port 1 ////
|
////////// Port 1 ////
|
||||||
|
@ -144,13 +113,12 @@ main(void)
|
||||||
|
|
||||||
node_id_restore();
|
node_id_restore();
|
||||||
|
|
||||||
process_start(&contiki_esb_main_init_process, NULL);
|
process_start(&etimer_process, NULL);
|
||||||
|
process_start(&sensors_process, NULL);
|
||||||
|
|
||||||
ctimer_init();
|
ctimer_init();
|
||||||
|
|
||||||
/* watchdog_init();*/
|
init_net();
|
||||||
|
|
||||||
/* beep();*/
|
|
||||||
|
|
||||||
printf(CONTIKI_VERSION_STRING " started. ");
|
printf(CONTIKI_VERSION_STRING " started. ");
|
||||||
if(node_id > 0) {
|
if(node_id > 0) {
|
||||||
|
@ -159,13 +127,41 @@ main(void)
|
||||||
printf("Node id is not set.\n");
|
printf("Node id is not set.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
beep_spinup();
|
||||||
|
leds_on(LEDS_RED);
|
||||||
|
clock_delay(100);
|
||||||
|
leds_off(LEDS_RED);
|
||||||
|
|
||||||
|
#if PROFILE_CONF_ON
|
||||||
|
profile_init();
|
||||||
|
#endif /* PROFILE_CONF_ON */
|
||||||
|
|
||||||
|
#if ENERGEST_CONF_ON
|
||||||
|
energest_init();
|
||||||
ENERGEST_ON(ENERGEST_TYPE_CPU);
|
ENERGEST_ON(ENERGEST_TYPE_CPU);
|
||||||
|
#endif /* ENERGEST_CONF_ON */
|
||||||
|
|
||||||
|
init_apps();
|
||||||
|
print_processes(autostart_processes);
|
||||||
|
autostart_start(autostart_processes);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This is the scheduler loop.
|
||||||
|
*/
|
||||||
|
watchdog_start();
|
||||||
while (1) {
|
while (1) {
|
||||||
static unsigned long irq_energest = 0;
|
int r;
|
||||||
|
#if PROFILE_CONF_ON
|
||||||
|
profile_episode_start();
|
||||||
|
#endif /* PROFILE_CONF_ON */
|
||||||
do {
|
do {
|
||||||
/* Reset watchdog. */
|
/* Reset watchdog. */
|
||||||
} while(process_run() > 0);
|
watchdog_periodic();
|
||||||
|
r = process_run();
|
||||||
|
} while(r > 0);
|
||||||
|
#if PROFILE_CONF_ON
|
||||||
|
profile_episode_end();
|
||||||
|
#endif /* PROFILE_CONF_ON */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Idle processing.
|
* Idle processing.
|
||||||
|
@ -174,6 +170,8 @@ main(void)
|
||||||
if(process_nevents() != 0) {
|
if(process_nevents() != 0) {
|
||||||
eint();
|
eint();
|
||||||
} else {
|
} else {
|
||||||
|
#if ENERGEST_CONF_ON
|
||||||
|
static unsigned long irq_energest = 0;
|
||||||
/* Re-enable interrupts and go to sleep atomically. */
|
/* Re-enable interrupts and go to sleep atomically. */
|
||||||
ENERGEST_OFF(ENERGEST_TYPE_CPU);
|
ENERGEST_OFF(ENERGEST_TYPE_CPU);
|
||||||
ENERGEST_ON(ENERGEST_TYPE_LPM);
|
ENERGEST_ON(ENERGEST_TYPE_LPM);
|
||||||
|
@ -182,33 +180,31 @@ main(void)
|
||||||
are asleep, so we discard the processing time done when we
|
are asleep, so we discard the processing time done when we
|
||||||
were awake. */
|
were awake. */
|
||||||
energest_type_set(ENERGEST_TYPE_IRQ, irq_energest);
|
energest_type_set(ENERGEST_TYPE_IRQ, irq_energest);
|
||||||
|
#endif /* ENERGEST_CONF_ON */
|
||||||
|
|
||||||
|
watchdog_stop();
|
||||||
_BIS_SR(GIE | SCG0 | CPUOFF); /* LPM1 sleep. */
|
_BIS_SR(GIE | SCG0 | CPUOFF); /* LPM1 sleep. */
|
||||||
|
|
||||||
|
#if ENERGEST_CONF_ON
|
||||||
/* We get the current processing time for interrupts that was
|
/* We get the current processing time for interrupts that was
|
||||||
done during the LPM and store it for next time around. */
|
done during the LPM and store it for next time around. */
|
||||||
dint();
|
dint();
|
||||||
irq_energest = energest_type_time(ENERGEST_TYPE_IRQ);
|
irq_energest = energest_type_time(ENERGEST_TYPE_IRQ);
|
||||||
eint();
|
eint();
|
||||||
|
|
||||||
ENERGEST_OFF(ENERGEST_TYPE_LPM);
|
ENERGEST_OFF(ENERGEST_TYPE_LPM);
|
||||||
ENERGEST_ON(ENERGEST_TYPE_CPU);
|
ENERGEST_ON(ENERGEST_TYPE_CPU);
|
||||||
}
|
#endif /* ENERGEST_CONF_ON */
|
||||||
}
|
|
||||||
|
|
||||||
while(1) {
|
watchdog_start();
|
||||||
/* watchdog_restart();*/
|
}
|
||||||
while(process_run() > 0);
|
|
||||||
LPM_SLEEP();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
char *arg_alloc(char size) {return NULL;}
|
/* char *arg_alloc(char size) {return NULL;} */
|
||||||
void arg_init(void) {}
|
/* void arg_init(void) {} */
|
||||||
void arg_free(char *arg) {}
|
/* void arg_free(char *arg) {} */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in a new issue