diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/avr/ao_arch.h | 36 | ||||
| -rw-r--r-- | src/cc1111/ao_arch.h | 32 | ||||
| -rw-r--r-- | src/core/ao.h | 2 | ||||
| -rw-r--r-- | src/core/ao_cmd.c | 13 | 
4 files changed, 72 insertions, 11 deletions
| diff --git a/src/avr/ao_arch.h b/src/avr/ao_arch.h new file mode 100644 index 00000000..2b566814 --- /dev/null +++ b/src/avr/ao_arch.h @@ -0,0 +1,36 @@ +/* + * Copyright © 2011 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +#ifndef _AO_ARCH_H_ +#define _AO_ARCH_H_ + +#include "avr.h" + + +/* + * AVR definitions and code fragments for AltOS + */ + +#define AO_STACK_SIZE	128 + +/* Various definitions to make GCC look more like SDCC */ + +#define __naked __attribute__((naked)) + +#define ao_arch_reboot()	/* XXX */ + +#endif /* _AO_ARCH_H_ */ diff --git a/src/cc1111/ao_arch.h b/src/cc1111/ao_arch.h new file mode 100644 index 00000000..585fffe5 --- /dev/null +++ b/src/cc1111/ao_arch.h @@ -0,0 +1,32 @@ +/* + * Copyright © 2011 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +/* + * CC1111 definitions and code fragments for AltOS + */ + +#ifndef _AO_ARCH_H_ +#define _AO_ARCH_H_ + +#include "cc1111.h" + +#define ao_arch_reboot() do {					\ +	WDCTL = WDCTL_EN | WDCTL_MODE_WATCHDOG | WDCTL_INT_64;	\ +	ao_delay(AO_SEC_TO_TICKS(2));				\ +	} while (0) +	 +#endif /* _AO_ARCH_H_ */ diff --git a/src/core/ao.h b/src/core/ao.h index 8ac9ac3d..0f1a24ad 100644 --- a/src/core/ao.h +++ b/src/core/ao.h @@ -22,7 +22,7 @@  #include <stdio.h>  #include <string.h>  #include <stddef.h> -#include "cc1111.h" +#include <ao_arch.h>  #include "ao_pins.h"  #define TRUE 1 diff --git a/src/core/ao_cmd.c b/src/core/ao_cmd.c index 1442ebea..7663d875 100644 --- a/src/core/ao_cmd.c +++ b/src/core/ao_cmd.c @@ -32,7 +32,7 @@ static void  put_string(__code char *s)  {  	char	c; -	while (c = *s++) +	while ((c = *s++))  		putchar(c);  } @@ -188,13 +188,6 @@ ao_match_word(__code char *word)  }  static void -eol(void) -{ -	while (ao_cmd_lex_c != '\n') -		ao_cmd_lex(); -} - -static void  echo(void)  {  	ao_cmd_hex(); @@ -208,8 +201,7 @@ ao_reboot(void)  	ao_cmd_white();  	if (!ao_match_word("eboot"))  		return; -	WDCTL = WDCTL_EN | WDCTL_MODE_WATCHDOG | WDCTL_INT_64; -	ao_delay(AO_SEC_TO_TICKS(2)); +	ao_arch_reboot();  	ao_panic(AO_PANIC_REBOOT);  } @@ -254,6 +246,7 @@ report(void)  	case ao_cmd_syntax_error:  		puts("Syntax error");  		ao_cmd_status = 0; +	default:  		break;  	}  } | 
