Start to merge old triface project in bertos, not working actually
authorqwert <qwert@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 16 Jul 2008 15:44:32 +0000 (15:44 +0000)
committerqwert <qwert@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 16 Jul 2008 15:44:32 +0000 (15:44 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1487 38d2e660-2303-0410-9eaa-f027e97ec537

13 files changed:
Makefile
app/triface/boot/cfg/cfg_arch.h [new file with mode: 0644]
app/triface/boot/cfg/cfg_boot.h [new file with mode: 0644]
app/triface/boot/cfg/cfg_kfile.h [new file with mode: 0644]
app/triface/boot/cfg/cfg_ser.h [new file with mode: 0644]
app/triface/boot/hw/hw_cpu.h [new file with mode: 0644]
app/triface/boot/hw/hw_ser.h [new file with mode: 0644]
app/triface/boot/main.c
app/triface/cfg/cfg_arch.h [new file with mode: 0644]
app/triface/cfg/cfg_kfile.h [new file with mode: 0644]
app/triface/triface.mk
bertos/cfg/cfg_flash_avr.h [new file with mode: 0644]
bertos/cpu/avr/drv/flash_avr.c

index c899766b58e0f3e6d46c389a8176537d4739e462..ec9502e622b93e46968a635cfb728b5cd6fa7dc6 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -14,9 +14,9 @@ default: all
 include bertos/config.mk
 
 #Include subtargets
-include app/demo/demo.mk
+#include app/demo/demo.mk
 #include app/at91sam7s/at91sam7s.mk
 #include app/battfs/battfs_test.mk
-#include app/triface/triface.mk
+include app/triface/triface.mk
 
 include bertos/rules.mk
diff --git a/app/triface/boot/cfg/cfg_arch.h b/app/triface/boot/cfg/cfg_arch.h
new file mode 100644 (file)
index 0000000..2f07b9c
--- /dev/null
@@ -0,0 +1,57 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2003,2004 Develer S.r.l. (http://www.develer.com/)
+ * Copyright 2001,2002,2003 Bernardo Innocenti <bernie@codewiz.org>
+ *
+ * -->
+ *
+ * \brief Set system configuration
+ *
+ * \version $Id$
+ *
+ * \author Bernardo Innocenti <bernie@develer.com>
+ *
+ */
+
+
+#ifndef CFG_ARCH_CONFIG_H
+#define CFG_ARCH_CONFIG_H
+
+#include <cfg/macros.h>
+
+/**
+ * \name Architectures
+ * \{
+ */
+#define ARCH_TRIFACE     BV(0)
+#define ARCH_BOOT        BV(1)
+#define ARCH_EMUL        BV(2)
+/*\}*/
+
+#endif /* CFG_ARCH_CONFIG_H */
diff --git a/app/triface/boot/cfg/cfg_boot.h b/app/triface/boot/cfg/cfg_boot.h
new file mode 100644 (file)
index 0000000..72deb0c
--- /dev/null
@@ -0,0 +1,47 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2008 Develer S.r.l. (http://www.develer.com/)
+ * All Rights Reserved.
+ * -->
+ *
+ * \brief Configuration file for boot module.
+ *
+ * \version $Id$
+ *
+ * \author Manuele Fanelli <qwert@develer.com>
+ */
+
+#ifndef CFG_BOOT_H
+#define CFG_BOOT_H
+
+#define CONFIG_SER_HOSTPORT 1   ///< Triface comunication host port
+
+#define CONFIG_SER_HOSTPORTBAUDRATE 115200 ///< Serial host port baudrate
+
+#endif /* CFG_BOOT_H */
diff --git a/app/triface/boot/cfg/cfg_kfile.h b/app/triface/boot/cfg/cfg_kfile.h
new file mode 100644 (file)
index 0000000..cec293c
--- /dev/null
@@ -0,0 +1,64 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2008 Develer S.r.l. (http://www.develer.com/)
+ * All Rights Reserved.
+ * -->
+ *
+ * \brief Configuration file for KFile interface module.
+ *
+ * \version $Id$
+ *
+ * \author Daniele Basile <asterix@develer.com>
+ */
+
+#ifndef CFG_KFILE_H
+#define CFG_KFILE_H
+
+/**
+ * Logging level definition.
+ *
+ * Use 0 to log only the error messages
+ * Use 1 to log the error and warning messages
+ * Use 2 to log all messages
+ */
+#define KFILE_LOG_LEVEL        2
+
+/**
+ * Set logging verbosity.
+ *
+ * If verbosity is zero print short log messages.
+ */
+#define KFILE_LOG_VERBOSITY    0
+
+/// Enable the gets function with echo.
+#define CONFIG_KFILE_GETS      1
+
+#endif /* CFG_KFILE_H */
+
+
diff --git a/app/triface/boot/cfg/cfg_ser.h b/app/triface/boot/cfg/cfg_ser.h
new file mode 100644 (file)
index 0000000..eb11a4c
--- /dev/null
@@ -0,0 +1,118 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2008 Develer S.r.l. (http://www.develer.com/)
+ * All Rights Reserved.
+ * -->
+ *
+ * \brief Configuration file for serial module.
+ *
+ * \version $Id$
+ *
+ * \author Daniele Basile <asterix@develer.com>
+ */ 
+
+#ifndef CFG_SER_H
+#define CFG_SER_H
+
+
+/// Kdebug console on debug unit
+#define CONFIG_TRIFACE_PORT      0
+
+/// Baud-rate for the kdebug console
+#define CONFIG_TRIFACE_BAUDRATE  115200
+
+/// [bytes] Size of the outbound FIFO buffer for port 0. 
+#define CONFIG_UART0_TXBUFSIZE  32
+
+/// [bytes] Size of the inbound FIFO buffer for port 0. 
+#define CONFIG_UART0_RXBUFSIZE  64
+
+/// [bytes] Size of the outbound FIFO buffer for port 1. 
+#define CONFIG_UART1_TXBUFSIZE  32
+
+/// [bytes] Size of the inbound FIFO buffer for port 1. 
+#define CONFIG_UART1_RXBUFSIZE  64
+
+
+/// [bytes] Size of the outbound FIFO buffer for SPI port (AVR only) 
+#define CONFIG_SPI_TXBUFSIZE    32
+
+/// [bytes] Size of the inbound FIFO buffer for SPI port (AVR only) 
+#define CONFIG_SPI_RXBUFSIZE    32
+
+/// [bytes] Size of the outbound FIFO buffer for SPI port 0. 
+#define CONFIG_SPI0_TXBUFSIZE  32
+
+/// [bytes] Size of the inbound FIFO buffer for SPI port 0. 
+#define CONFIG_SPI0_RXBUFSIZE  32
+
+/// [bytes] Size of the outbound FIFO buffer for SPI port 1. 
+#define CONFIG_SPI1_TXBUFSIZE  32
+
+/// [bytes] Size of the inbound FIFO buffer for SPI port 1. 
+#define CONFIG_SPI1_RXBUFSIZE  32
+
+/// SPI data order (AVR only). 
+#define CONFIG_SPI_DATA_ORDER  SER_MSB_FIRST
+
+/// SPI clock division factor (AVR only). 
+#define CONFIG_SPI_CLOCK_DIV   16
+
+/// SPI clock polarity: 0 = normal low, 1 = normal high (AVR only). 
+#define CONFIG_SPI_CLOCK_POL   0
+
+/// SPI clock phase: 0 = sample on first edge, 1 = sample on second clock edge (AVR only). 
+#define CONFIG_SPI_CLOCK_PHASE 0
+
+/// Default transmit timeout (ms). Set to -1 to disable timeout support.
+#define CONFIG_SER_TXTIMEOUT    100
+
+/// Default receive timeout (ms). Set to -1 to disable timeout support.
+#define CONFIG_SER_RXTIMEOUT    100
+
+/// Use RTS/CTS handshake 
+#define CONFIG_SER_HWHANDSHAKE   0
+
+/// Default baud rate (set to 0 to disable).
+#define CONFIG_SER_DEFBAUDRATE   0
+
+/// Enable second serial port in emulator. 
+#define CONFIG_EMUL_UART1        0
+
+/**
+ * Transmit always something on serial port 0 TX
+ * to avoid interference when sending burst of data,
+ * using AVR multiprocessor serial mode
+ */
+#define CONFIG_SER_TXFILL        0
+
+/// For serial debug.
+#define CONFIG_SER_STROBE        0
+
+#endif /* CFG_SER_H */
diff --git a/app/triface/boot/hw/hw_cpu.h b/app/triface/boot/hw/hw_cpu.h
new file mode 100644 (file)
index 0000000..40918c0
--- /dev/null
@@ -0,0 +1,56 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2003, 2004, 2006 Develer S.r.l. (http://www.develer.com/)
+ * Copyright 2000 Bernardo Innocenti <bernie@codewiz.org>
+ *
+ * --> Rights Reserved.
+ *
+ * \brief Hardware-specific definitions
+ *
+ * \version $Id$
+ *
+ * \author Bernardo Innocenti <bernie@develer.com>
+ */
+
+#ifndef TRIFACE_HW_H
+#define TRIFACE_HW_H
+
+/// CPU Clock frequency (14.7456 MHz)
+#define CLOCK_FREQ     (14745600UL)
+
+
+/* Timer IRQ strobe */
+//#if CONFIG_TIMER_STROBE
+//     #define TIMER_STROBE_ON    ATOMIC(PORTD |= BV(PD0))
+//     #define TIMER_STROBE_OFF   ATOMIC(PORTD &= ~BV(PD0))
+//     #define TIMER_STROBE_INIT  ATOMIC(PORTD &= ~BV(PD0); DDRD |= BV(PD0))
+//#endif /* CONFIG_TIMER_STROBE */
+
+#endif /* TRIFACE_HW_H */
+
diff --git a/app/triface/boot/hw/hw_ser.h b/app/triface/boot/hw/hw_ser.h
new file mode 100644 (file)
index 0000000..21451b6
--- /dev/null
@@ -0,0 +1,45 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2006 Develer S.r.l. (http://www.develer.com/)
+ * All Rights Reserved.
+ * -->
+ *
+ * \brief Serial hardware-specific definitions
+ *
+ * \version $Id$
+ *
+ * \author Daniele Basile <asterix@develer.com>
+ */
+
+#ifndef HW_SER_H
+#define HW_SER_H
+
+
+
+#endif /* HW_SER_H */
index 093a7f91d20955d749b7eb4a64176756076b7c11..85b7c9036841161be628ea752c2288ee8dc559f0 100644 (file)
@@ -46,7 +46,7 @@
  * \author Daniele Basile <asterix@develer.com>
  */
 
-#include <mware/xmodem.h>
+#include <net/xmodem.h>
 #include <cfg/compiler.h>
 #include <cfg/debug.h>
 #include <cfg/macros.h> /* BV() */
 #include <drv/flash_avr.h>
 
 #include "hw/hw_boot.h"
+#include "cfg/cfg_boot.h"
 
 #include <string.h>
 
 int main(void)
 {
        KFile fd;
+       KFileSerial ser;
 
 
        // Set up flash programming functions.
@@ -74,13 +76,13 @@ int main(void)
 
        kdbg_init();
        timer_init();
-       kprintf("Bertuccia");
        /* Open the main communication port */
-       Serial *host_port = ser_open(CONFIG_SER_HOSTPORT);
-       ser_setbaudrate(host_port, CONFIG_SER_HOSTPORTBAUDRATE);
+       ser_init(&ser, CONFIG_SER_HOSTPORT);
+       ser_setbaudrate(&ser, CONFIG_SER_HOSTPORTBAUDRATE);
 
-       xmodem_recv(host_port, &fd);
-       fd.close(&fd);
+       xmodem_recv(&ser, &fd);
+       kfile_close(&fd);
+    kfile_close(&ser.fd);
 
        IRQ_DISABLE;
 
diff --git a/app/triface/cfg/cfg_arch.h b/app/triface/cfg/cfg_arch.h
new file mode 100644 (file)
index 0000000..2f07b9c
--- /dev/null
@@ -0,0 +1,57 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2003,2004 Develer S.r.l. (http://www.develer.com/)
+ * Copyright 2001,2002,2003 Bernardo Innocenti <bernie@codewiz.org>
+ *
+ * -->
+ *
+ * \brief Set system configuration
+ *
+ * \version $Id$
+ *
+ * \author Bernardo Innocenti <bernie@develer.com>
+ *
+ */
+
+
+#ifndef CFG_ARCH_CONFIG_H
+#define CFG_ARCH_CONFIG_H
+
+#include <cfg/macros.h>
+
+/**
+ * \name Architectures
+ * \{
+ */
+#define ARCH_TRIFACE     BV(0)
+#define ARCH_BOOT        BV(1)
+#define ARCH_EMUL        BV(2)
+/*\}*/
+
+#endif /* CFG_ARCH_CONFIG_H */
diff --git a/app/triface/cfg/cfg_kfile.h b/app/triface/cfg/cfg_kfile.h
new file mode 100644 (file)
index 0000000..cec293c
--- /dev/null
@@ -0,0 +1,64 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2008 Develer S.r.l. (http://www.develer.com/)
+ * All Rights Reserved.
+ * -->
+ *
+ * \brief Configuration file for KFile interface module.
+ *
+ * \version $Id$
+ *
+ * \author Daniele Basile <asterix@develer.com>
+ */
+
+#ifndef CFG_KFILE_H
+#define CFG_KFILE_H
+
+/**
+ * Logging level definition.
+ *
+ * Use 0 to log only the error messages
+ * Use 1 to log the error and warning messages
+ * Use 2 to log all messages
+ */
+#define KFILE_LOG_LEVEL        2
+
+/**
+ * Set logging verbosity.
+ *
+ * If verbosity is zero print short log messages.
+ */
+#define KFILE_LOG_VERBOSITY    0
+
+/// Enable the gets function with echo.
+#define CONFIG_KFILE_GETS      1
+
+#endif /* CFG_KFILE_H */
+
+
index 9e89cf6c06940bb95683b171013e209a9919a25c..a30697f89a309577045d122b3ad167bff6a66ed5 100644 (file)
@@ -67,15 +67,17 @@ TRG += boot
 boot_MCU = atmega64
 boot_CSRC = \
        app/triface/boot/main.c \
-       bertos/mware/xmodem.c \
+       bertos/net/xmodem.c \
        bertos/drv/ser.c \
        bertos/cpu/avr/drv/ser_avr.c \
        bertos/cpu/avr/drv/flash_avr.c \
        bertos/drv/timer.c \
-       bertos/algos/crc.c
-
+       bertos/algo/crc.c \
+       bertos/mware/hex.c \
+    bertos/kern/kfile.c \
+    #
 boot_CROSS = avr-
-boot_CPPFLAGS = -D'ARCH=(ARCH_TRIFACE|ARCH_BOOT)' -Iapp/boot -Ibertos/cpu/avr
+boot_CPPFLAGS = -D'ARCH=(ARCH_TRIFACE|ARCH_BOOT)' -Iapp/triface/boot -Ibertos/cpu/avr
 boot_CFLAGS = -Os -mcall-prologues
 boot_LDSCRIPT = app/triface/boot/boot.ld
 boot_LDFLAGS = -Wl,--relax
diff --git a/bertos/cfg/cfg_flash_avr.h b/bertos/cfg/cfg_flash_avr.h
new file mode 100644 (file)
index 0000000..5821e07
--- /dev/null
@@ -0,0 +1,49 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2008 Develer S.r.l. (http://www.develer.com/)
+ * All Rights Reserved.
+ * -->
+ *
+ * \brief Configuration file for flash_avr module.
+ *
+ * \version $Id$
+ *
+ * \author Manuele Fanelli <qwert@develer.com>
+ */
+
+#ifndef CFG_FLASH_AVR_H
+#define CFG_FLASH_AVR_H
+
+/**
+ * Bootloader section size.
+ * \note Remember to update this define when changing bootloader size fuses.
+ */
+#define CONFIG_FLASH_AVR_BOOTSIZE 8192
+
+#endif /* CFG_BOOT_H */
index 0b32af12ed40e412315bb144a2e921a7f20de90c..01a515f663659dae43c270fec760033866e4a04b 100644 (file)
 
 #include "flash_avr.h"
 
-#include <avr/io.h>
-#include <avr/boot.h>
-#include <avr/pgmspace.h>
-
+#include "cfg/cfg_flash_avr.h"
 #include <cfg/macros.h> // MIN()
 #include <cfg/compiler.h>
 #include <cfg/debug.h>
 
 #include <kern/kfile.h>
 
+#include <avr/io.h>
+#include <avr/boot.h>
+#include <avr/pgmspace.h>
+
 #include <string.h>
 
 #warning FIXME:This module need to be refactor to kfile interface!
-#if 0
+#if 1
 
 /**
  * Definition of type for avr flash module.
@@ -222,7 +223,7 @@ static void flash_avr_open(struct KFile *fd)
        memcpy_P(page_buf, (const char *)(curr_page * SPM_PAGESIZE), SPM_PAGESIZE);
 
        fd->seek_pos = 0;
-       fd->size = (uint16_t)(FLASHEND - CONFIG_BOOT_SIZE + 1);
+       fd->size = (uint16_t)(FLASHEND - CONFIG_FLASH_AVR_BOOTSIZE + 1);
        page_modified = false;
 
        kprintf("Flash file opened\n");