diff --git a/core/oneway_malloc.c b/core/oneway_malloc.c index 3b73dc6c35122f68fb9d38a1957ae1a27a101d76..d43bb610ae391d1077bf3c02c50d71e3a6fff1c8 100644 --- a/core/oneway_malloc.c +++ b/core/oneway_malloc.c @@ -23,7 +23,7 @@ #define ENABLE_DEBUG #include <debug.h> -//extern void *sbrk(int incr); +extern void *sbrk(int incr); void *_malloc(size_t size) { void* ptr = sbrk(size); diff --git a/cpu/makefile b/cpu/makefile index 3734b63939914bf626d36b73a3042da36539bac8..192319998746c3fe2adf366013c0f52cb26f2bc8 100644 --- a/cpu/makefile +++ b/cpu/makefile @@ -10,6 +10,10 @@ ifeq ($(CPU),cc430) DIRS = msp430 cc430 endif +ifeq ($(CPU),msp430x16x) + DIRS = msp430-common msp430x16x +endif + .PHONY: cpus .PHONY: $(DIRS) diff --git a/cpu/msp430-common/cpu.c b/cpu/msp430-common/cpu.c index 1ffd72b78a8be45cecb8242bbeff5a0eebdb5775..a297ec08d43dbaa4b5bf7996b544be210fd07f66 100644 --- a/cpu/msp430-common/cpu.c +++ b/cpu/msp430-common/cpu.c @@ -24,8 +24,8 @@ and the mailinglist (subscription via web site) scatterweb@lists.spline.inf.fu-berlin.de *******************************************************************************/ +#include <msp430x16x.h> #include "cpu.h" -#include <board.h> #include "kernel.h" #include "kernel_intern.h" #include "sched.h" @@ -87,7 +87,7 @@ void thread_yield() { // // __return_from_isr -void cpu_switch_context_exit(){ +void cpu_switch_context_exit(void){ active_thread = sched_threads[0]; sched_run(); diff --git a/cpu/msp430-common/hwtimer_cpu.c b/cpu/msp430-common/hwtimer_cpu.c index ffb07fc3241ba7d47596314b88dc43231425f716..0427e32a3f1b0e73623282fa1ff6feafe3cfc6b6 100644 --- a/cpu/msp430-common/hwtimer_cpu.c +++ b/cpu/msp430-common/hwtimer_cpu.c @@ -27,7 +27,6 @@ and the mailinglist (subscription via web site) #include <stdint.h> #include <cpu.h> -#include <board.h> #include <hwtimer.h> #include <hwtimer_arch.h> diff --git a/cpu/msp430-common/include/cpu.h b/cpu/msp430-common/include/cpu.h index e924cdff285fa543b9d2e8becd4a0f2a02f68cbf..99d49f11312051c6cc36f9e5d0c9aaab00fe8326 100644 --- a/cpu/msp430-common/include/cpu.h +++ b/cpu/msp430-common/include/cpu.h @@ -53,7 +53,7 @@ extern char __isr_stack[MSP430_ISR_STACK_SIZE]; //#define eINT() eint() //#define dINT() dint() -inline void __save_context_isr() { +inline void __save_context_isr(void) { __asm__("push r15"); __asm__("push r14"); __asm__("push r13"); @@ -70,7 +70,7 @@ inline void __save_context_isr() { __asm__("mov.w r1,%0" : "=r" (active_thread->sp)); } -inline void __restore_context_isr() { +inline void __restore_context_isr(void) { __asm__("mov.w %0,r1" : : "m" (active_thread->sp)); __asm__("pop r4"); @@ -87,45 +87,45 @@ inline void __restore_context_isr() { __asm__("pop r15"); } -inline void __enter_isr() { +inline void __enter_isr(void) { __save_context_isr(); __asm__("mov.w %0,r1" : : "i" (__isr_stack+MSP430_ISR_STACK_SIZE)); __inISR = 1; } -inline void __exit_isr() { +inline void __exit_isr(void) { __inISR = 0; if (sched_context_switch_request) sched_run(); __restore_context_isr(); __asm__("reti"); } -inline void __save_context() { +inline void __save_context(void) { __asm__("push r2"); /* save SR */ __save_context_isr(); } -inline void __restore_context() { +inline void __restore_context(void) { __restore_context_isr(); __asm__("reti"); } -inline void eINT() { +inline void eINT(void) { // puts("+"); eint(); } -inline void dINT() { +inline void dINT(void) { // puts("-"); dint(); } #define lpm_set(...) -void thread_yield(); +void thread_yield(void); -int inISR(); +int inISR(void); /** @} */ #endif // _CPU_H diff --git a/cpu/msp430-common/include/hwtimer_cpu.h b/cpu/msp430-common/include/hwtimer_cpu.h index e10ca6019182bae0adced444f3fff1fab94a807d..315153921891ac1c397cb080762f6b42ed7abb6d 100644 --- a/cpu/msp430-common/include/hwtimer_cpu.h +++ b/cpu/msp430-common/include/hwtimer_cpu.h @@ -27,8 +27,8 @@ and the mailinglist (subscription via web site) #ifndef __HWTIMER_CPU_H #define __HWTIMER_CPU_H +#include <msp430x16x.h> #include <stdint.h> -#include <board.h> #ifdef __MSP430_HAS_TA2__ #define ARCH_MAXTIMERS 2 diff --git a/cpu/msp430-common/include/msp430.h b/cpu/msp430-common/include/msp430.h index ef8f7ee0e1b441fc78da159221e918d81e3e5207..b8f432714e9ca32bcc23dbc3e2315c5f928a59e3 100644 --- a/cpu/msp430-common/include/msp430.h +++ b/cpu/msp430-common/include/msp430.h @@ -49,7 +49,6 @@ #include <stdint.h> #include <stdbool.h> - #include "board.h" #ifndef MSP430_INITIAL_CPU_SPEED @@ -88,7 +87,7 @@ void msp430_set_cpu_speed(uint32_t speed); void msp430_cpu_init(void); /* Rename to cpu_init() later! */ #define cpu_init() msp430_cpu_init() -void msp430_init_dco(); +void msp430_init_dco(void); void *sbrk(int); diff --git a/cpu/msp430-common/irq.c b/cpu/msp430-common/irq.c index 8c1d328b8ad4bfa03b24509a559714faf5ab482b..9bff92e3da58ad42d97ccba26902ab43657e178b 100644 --- a/cpu/msp430-common/irq.c +++ b/cpu/msp430-common/irq.c @@ -1,5 +1,5 @@ #include <irq.h> -#include <board.h> +#include <msp430x16x.h> #include <cpu.h> unsigned int disableIRQ() { diff --git a/cpu/msp430-common/makefile b/cpu/msp430-common/makefile index 734a4056a655e1dd6c3cb5e1bf6ab706e84f58ea..c08dbbb89ed80a2ef926be692acac789a651547d 100644 --- a/cpu/msp430-common/makefile +++ b/cpu/msp430-common/makefile @@ -1,6 +1,6 @@ MODULE =cpu -INCLUDES = -Iinclude -Idrivers/include -I../arm_common/include -I../../sys/lib -I../../sys/drivers/include -I../../core/include -I../../sys/include -I../../hal/include -I../../.. +INCLUDES = -Iinclude -I$(RIOTBASE)/core/include/ -I$(RIOTBOARD)/$(BOARD)/include DIRS = all: $(BINDIR)$(MODULE).a diff --git a/cpu/msp430-common/msp430-main.c b/cpu/msp430-common/msp430-main.c index 0a5dc880513b9df3828162452377aac3e6b82b45..c5363076f298d117729713e97cd2c7776e2f6885 100644 --- a/cpu/msp430-common/msp430-main.c +++ b/cpu/msp430-common/msp430-main.c @@ -35,7 +35,7 @@ #include <sys/unistd.h> #include "cpu.h" -#include "board.h" +#include <msp430x16x.h> #include "msp430.h" @@ -168,5 +168,5 @@ splx_(int sr) } /*---------------------------------------------------------------------------*/ -extern void board_init(); +extern void board_init(void); diff --git a/cpu/msp430-common/startup.c b/cpu/msp430-common/startup.c index 8e04b9b97d025c006d25a2dfb0e77b54b53ffebb..230a0fd8004437ae0e0eeaeb709a1f6f7b3d8955 100644 --- a/cpu/msp430-common/startup.c +++ b/cpu/msp430-common/startup.c @@ -1,10 +1,9 @@ #include <stdio.h> -#include <board.h> #include <kernel_intern.h> -extern void board_init(); +extern void board_init(void); -__attribute__ ((constructor)) static void startup() { +__attribute__ ((constructor)) static void startup(void) { /* use putchar so the linker links it in: */ putchar('\n'); diff --git a/cpu/msp430x16x/hwtimer_msp430.c b/cpu/msp430x16x/hwtimer_msp430.c index 2a39a7ec847fcaf87fe1c6bec039e3d09eb0c230..b83cdf43269d4fbe5e78a91a09f4a7299dae0d82 100644 --- a/cpu/msp430x16x/hwtimer_msp430.c +++ b/cpu/msp430x16x/hwtimer_msp430.c @@ -1,5 +1,5 @@ #include <signal.h> -#include <board.h> +#include <msp430x16x.h> #include <hwtimer.h> #include <hwtimer_arch.h> #include <cpu.h> @@ -9,7 +9,7 @@ static uint32_t ticks = 0; extern void (*int_handler)(int); extern void TA0_unset(short timer); -void timerA_init() +void timerA_init(void) { ticks = 0; // Set tick counter value to 0 TA0CTL = TASSEL_1 + TACLR; // Clear the timer counter, set ACLK diff --git a/cpu/msp430x16x/makefile b/cpu/msp430x16x/makefile new file mode 100644 index 0000000000000000000000000000000000000000..07f55710d9fe6eb1a6bc4e230ea61c5d31bb1f40 --- /dev/null +++ b/cpu/msp430x16x/makefile @@ -0,0 +1,13 @@ +MODULE =cpu + +INCLUDES = -I../include -I$(RIOTBASE)/core/include +DIRS = + +all: $(BINDIR)$(MODULE).a + @for i in $(DIRS) ; do $(MAKE) -C $$i ; done ; + +include $(RIOTBASE)/makefile.base + +clean:: + @for i in $(DIRS) ; do $(MAKE) -C $$i clean ; done ; + diff --git a/makefile b/makefile index 3ee0eb7bc0c71d187ebd9a3f0d4e6aae07df6784..372db1e69692ec82463fe5a337930eb44702f0ed 100644 --- a/makefile +++ b/makefile @@ -1,10 +1,14 @@ DIRS = cpu core drivers sys all: + mkdir -p $(BINDIR) @for i in $(DIRS) ; do $(MAKE) -C $$i ; done ; clean: @for i in $(DIRS) ; do $(MAKE) -C $$i clean ; done ; + @if [ -d $(BINDIR) ] ; \ + then rmdir $(BINDIR) ; \ + fi doc: make -BC doc/doxygen diff --git a/makefile.modules b/makefile.modules index 675cdaf24f8e97c907ab4af6620376b2120d5fee..a2df71ea86bcbfabbe9172ebf3e470b48407da7d 100644 --- a/makefile.modules +++ b/makefile.modules @@ -18,7 +18,7 @@ else #USEMODULE += cpu_drivers cpu core lib sys USEMODULE += cpu core sys endif -ED = $(USEMODULE:%=-D MODULE_%) +ED = $(USEMODULE:%=-DMODULE_%) EXTDEFINES = $(shell echo $(ED)|tr 'a-z' 'A-Z') BL=$(USEMODULE:%= $(BINDIR)%.a) # exclude hwtimer, because it is part of the kernel but the define is needed for auto_init