From: qwert Date: Wed, 16 Jul 2008 15:44:32 +0000 (+0000) Subject: Start to merge old triface project in bertos, not working actually X-Git-Tag: 2.0.0~447 X-Git-Url: https://codewiz.org/gitweb?a=commitdiff_plain;h=d22dfaec1fff3dfb5d216b0317f6e2845313f688;p=bertos.git Start to merge old triface project in bertos, not working actually git-svn-id: https://src.develer.com/svnoss/bertos/trunk@1487 38d2e660-2303-0410-9eaa-f027e97ec537 --- diff --git a/Makefile b/Makefile index c899766b..ec9502e6 100644 --- 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 index 00000000..2f07b9ce --- /dev/null +++ b/app/triface/boot/cfg/cfg_arch.h @@ -0,0 +1,57 @@ +/** + * \file + * + * + * \brief Set system configuration + * + * \version $Id$ + * + * \author Bernardo Innocenti + * + */ + + +#ifndef CFG_ARCH_CONFIG_H +#define CFG_ARCH_CONFIG_H + +#include + +/** + * \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 index 00000000..72deb0c7 --- /dev/null +++ b/app/triface/boot/cfg/cfg_boot.h @@ -0,0 +1,47 @@ +/** + * \file + * + * + * \brief Configuration file for boot module. + * + * \version $Id$ + * + * \author Manuele Fanelli + */ + +#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 index 00000000..cec293c8 --- /dev/null +++ b/app/triface/boot/cfg/cfg_kfile.h @@ -0,0 +1,64 @@ +/** + * \file + * + * + * \brief Configuration file for KFile interface module. + * + * \version $Id$ + * + * \author Daniele Basile + */ + +#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 index 00000000..eb11a4cb --- /dev/null +++ b/app/triface/boot/cfg/cfg_ser.h @@ -0,0 +1,118 @@ +/** + * \file + * + * + * \brief Configuration file for serial module. + * + * \version $Id$ + * + * \author Daniele Basile + */ + +#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 index 00000000..40918c00 --- /dev/null +++ b/app/triface/boot/hw/hw_cpu.h @@ -0,0 +1,56 @@ +/** + * \file + * Rights Reserved. + * + * \brief Hardware-specific definitions + * + * \version $Id$ + * + * \author Bernardo Innocenti + */ + +#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 index 00000000..21451b6c --- /dev/null +++ b/app/triface/boot/hw/hw_ser.h @@ -0,0 +1,45 @@ +/** + * \file + * + * + * \brief Serial hardware-specific definitions + * + * \version $Id$ + * + * \author Daniele Basile + */ + +#ifndef HW_SER_H +#define HW_SER_H + + + +#endif /* HW_SER_H */ diff --git a/app/triface/boot/main.c b/app/triface/boot/main.c index 093a7f91..85b7c903 100644 --- a/app/triface/boot/main.c +++ b/app/triface/boot/main.c @@ -46,7 +46,7 @@ * \author Daniele Basile */ -#include +#include #include #include #include /* BV() */ @@ -57,12 +57,14 @@ #include #include "hw/hw_boot.h" +#include "cfg/cfg_boot.h" #include 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 index 00000000..2f07b9ce --- /dev/null +++ b/app/triface/cfg/cfg_arch.h @@ -0,0 +1,57 @@ +/** + * \file + * + * + * \brief Set system configuration + * + * \version $Id$ + * + * \author Bernardo Innocenti + * + */ + + +#ifndef CFG_ARCH_CONFIG_H +#define CFG_ARCH_CONFIG_H + +#include + +/** + * \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 index 00000000..cec293c8 --- /dev/null +++ b/app/triface/cfg/cfg_kfile.h @@ -0,0 +1,64 @@ +/** + * \file + * + * + * \brief Configuration file for KFile interface module. + * + * \version $Id$ + * + * \author Daniele Basile + */ + +#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/triface.mk b/app/triface/triface.mk index 9e89cf6c..a30697f8 100644 --- a/app/triface/triface.mk +++ b/app/triface/triface.mk @@ -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 index 00000000..5821e07f --- /dev/null +++ b/bertos/cfg/cfg_flash_avr.h @@ -0,0 +1,49 @@ +/** + * \file + * + * + * \brief Configuration file for flash_avr module. + * + * \version $Id$ + * + * \author Manuele Fanelli + */ + +#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 */ diff --git a/bertos/cpu/avr/drv/flash_avr.c b/bertos/cpu/avr/drv/flash_avr.c index 0b32af12..01a515f6 100644 --- a/bertos/cpu/avr/drv/flash_avr.c +++ b/bertos/cpu/avr/drv/flash_avr.c @@ -44,10 +44,7 @@ #include "flash_avr.h" -#include -#include -#include - +#include "cfg/cfg_flash_avr.h" #include // MIN() #include #include @@ -57,10 +54,14 @@ #include +#include +#include +#include + #include #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");