From f82cc53fff791feed316ad538e52d2f6f37a6889 Mon Sep 17 00:00:00 2001 From: Nélio Laranjeiro Date: Tue, 9 Jun 2009 23:40:41 +0200 Subject: *digital/avr/modules/trace: * Remove the test_target and test_host to be merged only in the test directory. --- digital/avr/modules/trace/test/Makefile | 16 ++ digital/avr/modules/trace/test/avrconfig.h | 100 +++++++++++++ digital/avr/modules/trace/test/events.h | 36 +++++ digital/avr/modules/trace/test/flood.c | 141 +++++++++++++++++ digital/avr/modules/trace/test/test-trace.c | 166 +++++++++++++++++++++ digital/avr/modules/trace/test/test_host/Makefile | 14 -- digital/avr/modules/trace/test/test_host/events.h | 36 ----- .../avr/modules/trace/test/test_host/test-trace.c | 164 -------------------- .../avr/modules/trace/test/test_target/Makefile | 15 -- .../avr/modules/trace/test/test_target/avrconfig.h | 100 ------------- .../avr/modules/trace/test/test_target/events.h | 36 ----- digital/avr/modules/trace/test/test_target/flood.c | 141 ----------------- .../modules/trace/test/test_target/test-trace.c | 166 --------------------- 13 files changed, 459 insertions(+), 672 deletions(-) create mode 100644 digital/avr/modules/trace/test/Makefile create mode 100644 digital/avr/modules/trace/test/avrconfig.h create mode 100644 digital/avr/modules/trace/test/events.h create mode 100644 digital/avr/modules/trace/test/flood.c create mode 100644 digital/avr/modules/trace/test/test-trace.c delete mode 100644 digital/avr/modules/trace/test/test_host/Makefile delete mode 100644 digital/avr/modules/trace/test/test_host/events.h delete mode 100644 digital/avr/modules/trace/test/test_host/test-trace.c delete mode 100644 digital/avr/modules/trace/test/test_target/Makefile delete mode 100644 digital/avr/modules/trace/test/test_target/avrconfig.h delete mode 100644 digital/avr/modules/trace/test/test_target/events.h delete mode 100644 digital/avr/modules/trace/test/test_target/flood.c delete mode 100644 digital/avr/modules/trace/test/test_target/test-trace.c (limited to 'digital') diff --git a/digital/avr/modules/trace/test/Makefile b/digital/avr/modules/trace/test/Makefile new file mode 100644 index 00000000..c3ea960e --- /dev/null +++ b/digital/avr/modules/trace/test/Makefile @@ -0,0 +1,16 @@ +BASE = ../../.. +AVR_PROGS = test_trace flood +HOST_PROGS = test_trace flood + +test_trace_SOURCES = test-trace.c +flood_SOURCES = flood.c + +MODULES = utils spi flash proto uart trace +CONFIGFILE = avrconfig.h +# atmega8, atmega8535, atmega128... +AVR_MCU = atmega128 +# -O2 : speed +# -Os : size +OPTIMIZE = -O2 + +include $(BASE)/make/Makefile.gen diff --git a/digital/avr/modules/trace/test/avrconfig.h b/digital/avr/modules/trace/test/avrconfig.h new file mode 100644 index 00000000..277c6386 --- /dev/null +++ b/digital/avr/modules/trace/test/avrconfig.h @@ -0,0 +1,100 @@ +#ifndef avrconfig_h +#define avrconfig_h +/* avrconfig.h */ +/* avr.spi - SPI AVR module. {{{ + * + * Copyright (C) 2008 Nélio Laranjeiro + * + * APBTeam: + * Web: http://apbteam.org/ + * Email: team AT apbteam DOT org + * + * 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; 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * }}} */ + +/* global */ +/** AVR Frequency : 1000000, 1843200, 2000000, 3686400, 4000000, 7372800, + * 8000000, 11059200, 14745600, 16000000, 18432000, 20000000. */ +#define AC_FREQ 14745600 + +/* uart - UART module. */ +/** Select hardware uart for primary uart: 0, 1 or -1 to disable. */ +#define AC_UART0_PORT 1 +/** Baudrate: 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 76800, + * 115200, 230400, 250000, 500000, 1000000. */ +#define AC_UART0_BAUDRATE 38400 +/** Send mode: + * - POLLING: no interrupts. + * - RING: interrupts, ring buffer. */ +#define AC_UART0_SEND_MODE POLLING +/** Recv mode, same as send mode. */ +#define AC_UART0_RECV_MODE POLLING +/** Character size: 5, 6, 7, 8, 9 (only 8 implemented). */ +#define AC_UART0_CHAR_SIZE 8 +/** Parity : ODD, EVEN, NONE. */ +#define AC_UART0_PARITY EVEN +/** Stop bits : 1, 2. */ +#define AC_UART0_STOP_BITS 1 +/** Send buffer size, should be power of 2 for RING mode. */ +#define AC_UART0_SEND_BUFFER_SIZE 32 +/** Recv buffer size, should be power of 2 for RING mode. */ +#define AC_UART0_RECV_BUFFER_SIZE 32 +/** If the send buffer is full when putc: + * - DROP: drop the new byte. + * - WAIT: wait until there is room in the send buffer. */ +#define AC_UART0_SEND_BUFFER_FULL WAIT +/** In HOST compilation: + * - STDIO: use stdin/out. + * - PTS: use pseudo terminal. */ +#define AC_UART0_HOST_DRIVER STDIO +/** Same thing for secondary port. */ +#define AC_UART1_PORT -1 +#define AC_UART1_BAUDRATE 115200 +#define AC_UART1_SEND_MODE RING +#define AC_UART1_RECV_MODE RING +#define AC_UART1_CHAR_SIZE 8 +#define AC_UART1_PARITY EVEN +#define AC_UART1_STOP_BITS 1 +#define AC_UART1_SEND_BUFFER_SIZE 32 +#define AC_UART1_RECV_BUFFER_SIZE 32 +#define AC_UART1_SEND_BUFFER_FULL WAIT +#define AC_UART1_HOST_DRIVER PTS + +/* proto - Protocol module. */ +/** Maximum argument size. */ +#define AC_PROTO_ARGS_MAX_SIZE 8 +/** Callback function name. */ +#define AC_PROTO_CALLBACK proto_callback +/** Putchar function name. */ +#define AC_PROTO_PUTC uart0_putc +/** Support for quote parameter. */ +#define AC_PROTO_QUOTE 1 + +/* spi - SPI module. */ +/** Select driver: HARD, SOFT, or NONE. */ +#define AC_SPI0_DRIVER HARD +/** Same thing for an optionnal second SPI driver. */ +#define AC_SPI1_DRIVER NONE + +/* flash - Flash SPI AVR module. */ +/** Flash PORT used. */ +#define AC_FLASH_PORT PORTD +/** Flash DDR used. */ +#define AC_FLASH_DDR DDRD +/** Flash SS pin. */ +#define AC_FLASH_BIT_SS 5 + +#endif /* avrconfig_h */ diff --git a/digital/avr/modules/trace/test/events.h b/digital/avr/modules/trace/test/events.h new file mode 100644 index 00000000..d5a972a1 --- /dev/null +++ b/digital/avr/modules/trace/test/events.h @@ -0,0 +1,36 @@ +#ifndef events_h +#define events_h +/* events_h */ +/* {{{ + * + * Copyright (C) 2008 APBTeam + * + * APBTeam: + * Web: http://apbteam.org/ + * Email: team AT apbteam DOT org + * + * 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; 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * }}} */ + +enum events_t +{ + TRACE_ASSERV__RIGHT_MOTOR, + TRACE_ASSERV__LEFT_MOTOR, + TRACE_IA__IA_CMD, + TRACE_NB +}; + +#endif /* events_h */ diff --git a/digital/avr/modules/trace/test/flood.c b/digital/avr/modules/trace/test/flood.c new file mode 100644 index 00000000..b919d0a6 --- /dev/null +++ b/digital/avr/modules/trace/test/flood.c @@ -0,0 +1,141 @@ +/* flood.c */ +/* {{{ + * + * Copyright (C) 2008 Nélio Laranjeiro + * + * APBTeam: + * Web: http://apbteam.org/ + * Email: team AT apbteam DOT org + * + * 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; 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * }}} */ +#include "common.h" +#include "io.h" +#include "modules/flash/flash.h" +#include "modules/trace/trace.h" +#include "modules/proto/proto.h" +#include "modules/utils/utils.h" +#include "modules/utils/byte.h" +#include "modules/uart/uart.h" + +#include "events.h" + +void +flood (void) +{ + uint32_t addr; + uint32_t count; + + uint32_t speed; + uint32_t position; + uint16_t acc; + uint16_t arg1; + uint16_t arg2; + uint32_t arg3; + + /* Initialise the trace module. */ + trace_init (); + + /* Get the start page address of the trace module. */ + addr = trace_addr_current (); + proto_send3b ('a', addr >> 16, addr >> 8, addr); + + /* Flood the flash memory with traces. */ + /* A little more than 3 memory sectors, a sector is 4 kbytes. */ + for (count = 0; count < 2000; count ++) + { + /* Right motor. */ + speed = 1; + position = 2; + acc = 3; + arg1 = 1; + arg2 = 2; + arg3 = 3; + TRACE (TRACE_ASSERV__RIGHT_MOTOR, speed, position, acc); + TRACE (TRACE_ASSERV__LEFT_MOTOR, speed, position, acc); + TRACE (TRACE_IA__IA_CMD, arg1, arg2, arg3); + } + + /* Print the end of the address. */ + addr = trace_addr_current (); + proto_send3b ('a', addr >> 16, addr >> 8, addr); +} + +void +proto_callback (uint8_t cmd, uint8_t size, uint8_t *args) +{ + /* May be unused. */ + uint32_t addr = v8_to_v32 (0, args[0], args[1], args[2]); + uint8_t buf[16]; +#define c(cmd, size) (cmd << 8 | size) + switch (c (cmd, size)) + { + case c ('z', 0): + /* Reset */ + utils_reset (); + break; + case c ('e', 0): + /* Erase full */ + flash_erase (FLASH_ERASE_FULL, 0); + break; + case c ('e', 3): + /* Erase 4k: + * - 3b: address. */ + flash_erase (FLASH_ERASE_4K, addr); + break; + case c ('r', 3): + /* Read one byte: + * - 3b: address. */ + proto_send1b ('r', flash_read (addr)); + break; + case c ('r', 4): + /* Read several bytes: + * - 3b: address. + * - 1b: number of bytes. */ + if (args[3] > sizeof (buf)) + { + proto_send0 ('?'); + return; + } + else + { + flash_read_array (addr, buf, args[3]); + proto_send ('r', args[3], buf); + } + break; + case c ('f', 0): + /* Flood the memory with 3 sectors. + */ + flood (); + break; + default: + /* Error */ + proto_send0 ('?'); + return; + } + /* Acknowledge what has been done */ + proto_send (cmd, size, args); +} + +int +main (void) +{ + uart0_init (); + proto_send0 ('z'); + + while (1) + proto_accept (uart0_getc ()); +} diff --git a/digital/avr/modules/trace/test/test-trace.c b/digital/avr/modules/trace/test/test-trace.c new file mode 100644 index 00000000..7938103b --- /dev/null +++ b/digital/avr/modules/trace/test/test-trace.c @@ -0,0 +1,166 @@ +/* test-erase.c */ +/* avr.trace - AVR trace use. {{{ + * + * Copyright (C) 2008 Nélio Laranjeiro + * + * APBTeam: + * Web: http://apbteam.org/ + * Email: team AT apbteam DOT org + * + * 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; 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * }}} */ +#define BUFFER_SIZE 128 + +#include "common.h" +#include "io.h" +#include "modules/flash/flash.h" +#include "modules/trace/trace.h" +#include "modules/proto/proto.h" +#include "modules/utils/utils.h" +#include "modules/utils/byte.h" +#include "modules/uart/uart.h" + + +#include "events.h" + +void +flood (void) +{ + uint32_t addr; + uint32_t count; + + uint32_t speed; + uint32_t position; + uint16_t acc; + uint16_t arg1; + uint16_t arg2; + uint32_t arg3; + + /* Initialise the trace module. */ + trace_init (); + + /* Get the start page address of the trace module. */ + addr = trace_addr_current (); + proto_send3b ('a', addr >> 16, addr >> 8, addr); + + /* Flood the flash memory with traces. */ + /* A little more than 3 memory sectors, a sector is 4 kbytes. */ + for (count = 0; count < 2000; count ++) + { + /* Right motor. */ + speed = 1; + position = 2; + acc = 3; + arg1 = 1; + arg2 = 2; + arg3 = 3; + TRACE (TRACE_ASSERV__RIGHT_MOTOR, speed, position, acc); + TRACE (TRACE_ASSERV__LEFT_MOTOR, speed, position, acc); + TRACE (TRACE_IA__IA_CMD, arg1, arg2, arg3); + } + + /* Print the end of the address. */ + addr = trace_addr_current (); + proto_send3b ('a', addr >> 16, addr >> 8, addr); +} + +void +proto_callback (uint8_t cmd, uint8_t size, uint8_t *args) +{ + /* May be unused. */ + uint32_t addr = v8_to_v32 (0, args[0], args[1], args[2]); + uint8_t buf[16]; + uint8_t error = 0; +#define c(cmd, size) (cmd << 8 | size) + switch (c (cmd, size)) + { + case c ('z', 0): + /* Reset */ + utils_reset (); + break; + case c ('e', 0): + /* Erase full */ + flash_erase (FLASH_ERASE_FULL, 0); + break; + case c ('e', 4): + /* Erase the flash from the address addr and with the hexa code to + * erase.*/ + flash_erase (args[3], addr); + break; + case c ('i', 0): + /* Initialise the trace module. */ + trace_init (); + proto_send1b ('i', trace_status ()); + addr = trace_addr_current (); + proto_send3b ('a', addr >> 16, addr >> 8, addr); + break; + case c ('t', 2): + /* Trace data: + * - 1b: id. + * - 1b: first data. */ + TRACE (args[0], args[1]); + break; + case c ('r', 3): + /* Read one byte: + * - 3b: address. */ + proto_send1b ('r', flash_read (addr)); + break; + case c ('r', 4): + /* Read several bytes: + * - 3b: address. + * - 1b: number of bytes. */ + if (args[3] > sizeof (buf)) + { + proto_send0 ('?'); + return; + } + else + { + flash_read_array (addr, buf, args[3]); + proto_send ('r', args[3], buf); + } + break; + case c ('f', 0): + /* Flood the memory with 3 sectors. + */ + flood (); + break; + default: + if (cmd == 'l') + { + error = flash_log (size, args); + } + else if (error || (cmd != 'l')) + { + /* Error */ + proto_send0 ('?'); + return; + } + } + /* Acknowledge what has been done */ + proto_send (cmd, size, args); +} + +int +main (void) +{ + uart0_init (); + proto_send0 ('z'); + + while (1) + proto_accept (uart0_getc ()); +} + diff --git a/digital/avr/modules/trace/test/test_host/Makefile b/digital/avr/modules/trace/test/test_host/Makefile deleted file mode 100644 index 71ec0899..00000000 --- a/digital/avr/modules/trace/test/test_host/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -BASE = ../../../.. - -HOST_PROGS = test-trace - -test-trace_SOURCES = test-trace.c - -MODULES = trace flash/stub -#OPTIMIZE = -O2 -OPTIMIZE = - -include $(BASE)/make/Makefile.gen - -all: - touch flash.apb diff --git a/digital/avr/modules/trace/test/test_host/events.h b/digital/avr/modules/trace/test/test_host/events.h deleted file mode 100644 index d5a972a1..00000000 --- a/digital/avr/modules/trace/test/test_host/events.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef events_h -#define events_h -/* events_h */ -/* {{{ - * - * Copyright (C) 2008 APBTeam - * - * APBTeam: - * Web: http://apbteam.org/ - * Email: team AT apbteam DOT org - * - * 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; 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * }}} */ - -enum events_t -{ - TRACE_ASSERV__RIGHT_MOTOR, - TRACE_ASSERV__LEFT_MOTOR, - TRACE_IA__IA_CMD, - TRACE_NB -}; - -#endif /* events_h */ diff --git a/digital/avr/modules/trace/test/test_host/test-trace.c b/digital/avr/modules/trace/test/test_host/test-trace.c deleted file mode 100644 index 59a82242..00000000 --- a/digital/avr/modules/trace/test/test_host/test-trace.c +++ /dev/null @@ -1,164 +0,0 @@ -/* test-erase.c */ -/* avr.flash - AVR Trace. {{{ - * - * Copyright (C) 2008 Nélio Laranjeiro - * - * APBTeam: - * Web: http://apbteam.org/ - * Email: team AT apbteam DOT org - * - * 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; 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * }}} */ -#include "common.h" -#include "../../trace.h" -#include "modules/flash/flash.h" - -#include -#include -#include "events.h" - -void -flood (void) -{ - uint8_t cmd; - uint32_t count; - - uint32_t speed; - uint32_t position; - uint16_t acc; - - uint16_t arg1; - uint8_t arg2; - uint32_t arg3; - - trace_init (); - flash_erase (FLASH_ERASE_FULL, 0); - - /* Flood the flash memory with traces. */ - for (count = 0; count < 2000; count ++) - { - /* Right motor. */ - speed = 10; - position = 11; - acc = 12; - arg1 = 10; - arg2 = 11; - arg3 = 12; - - cmd = TRACE_ASSERV__RIGHT_MOTOR; - TRACE (cmd, speed, position, acc); - cmd = TRACE_ASSERV__LEFT_MOTOR; - TRACE (cmd, speed, position, acc); - cmd = TRACE_IA__IA_CMD; - TRACE (cmd, arg1, arg2, arg3); - - if (trace_status () == TRACE_STATUS_OFF) - return; - } -} - -uint8_t -flood_overflow (void) -{ - uint8_t cmd; - uint32_t count; - uint32_t i; - - uint32_t speed; - uint32_t position; - uint16_t acc; - - uint16_t arg1; - uint8_t arg2; - uint32_t arg3; - uint32_t addr; - - if (trace_init () == TRACE_STATUS_OFF) - return TRACE_STATUS_OFF; - addr = trace_addr_current (); - printf ("Addr begin : %x\n", addr); - - for (i = 0; i < FLASH_ADDRESS_HIGH; i++) - { - /* Flood the flash memory with traces. */ - for (count = 0; count < 2000; count ++) - { - /* Right motor. */ - speed = 10; - position = 11; - acc = 12; - arg1 = 10; - arg2 = 11; - arg3 = 12; - - cmd = TRACE_ASSERV__RIGHT_MOTOR; - TRACE (cmd, speed, position, acc); - cmd = TRACE_ASSERV__LEFT_MOTOR; - TRACE (cmd, speed, position, acc); - cmd = TRACE_IA__IA_CMD; - TRACE (cmd, arg1, arg2, arg3); - } - - if (trace_status () == TRACE_STATUS_OFF) - { - addr = trace_addr_current (); - printf ("End address : %x\n", addr); - return TRACE_STATUS_OFF; - } - } - - addr = trace_addr_current (); - printf ("End address : %x\n", addr); - return TRACE_STATUS_ON; -} - - -void -dump (void) -{ - uint8_t status; - uint32_t addr; - - status = flash_init (); - if (status == TRACE_STATUS_OFF) - return; - - for (addr = 0; addr < FLASH_ADDRESS_HIGH; addr ++) - { - printf ("%02x", flash_read (addr)); - } -} - -int -main (int argc, char **argv) -{ - uint8_t i; - - if (strcmp (argv[1], "trace") == 0) - { - for (i = 0; i < 30; i++) - flood (); - } - else if (strcmp (argv[1], "overflow") == 0) - { - return flood_overflow (); - } - else if (strcmp (argv[1], "dump") == 0) - dump(); - - return 0; -} - diff --git a/digital/avr/modules/trace/test/test_target/Makefile b/digital/avr/modules/trace/test/test_target/Makefile deleted file mode 100644 index f0162a8a..00000000 --- a/digital/avr/modules/trace/test/test_target/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -BASE = ../../../.. -AVR_PROGS = test-trace flood - -test-trace_SOURCES = test-trace.c -flood_SOURCES = flood.c - -MODULES = utils spi flash proto uart trace -CONFIGFILE = avrconfig.h -# atmega8, atmega8535, atmega128... -AVR_MCU = atmega128 -# -O2 : speed -# -Os : size -OPTIMIZE = -O2 - -include $(BASE)/make/Makefile.gen diff --git a/digital/avr/modules/trace/test/test_target/avrconfig.h b/digital/avr/modules/trace/test/test_target/avrconfig.h deleted file mode 100644 index 277c6386..00000000 --- a/digital/avr/modules/trace/test/test_target/avrconfig.h +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef avrconfig_h -#define avrconfig_h -/* avrconfig.h */ -/* avr.spi - SPI AVR module. {{{ - * - * Copyright (C) 2008 Nélio Laranjeiro - * - * APBTeam: - * Web: http://apbteam.org/ - * Email: team AT apbteam DOT org - * - * 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; 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * }}} */ - -/* global */ -/** AVR Frequency : 1000000, 1843200, 2000000, 3686400, 4000000, 7372800, - * 8000000, 11059200, 14745600, 16000000, 18432000, 20000000. */ -#define AC_FREQ 14745600 - -/* uart - UART module. */ -/** Select hardware uart for primary uart: 0, 1 or -1 to disable. */ -#define AC_UART0_PORT 1 -/** Baudrate: 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 76800, - * 115200, 230400, 250000, 500000, 1000000. */ -#define AC_UART0_BAUDRATE 38400 -/** Send mode: - * - POLLING: no interrupts. - * - RING: interrupts, ring buffer. */ -#define AC_UART0_SEND_MODE POLLING -/** Recv mode, same as send mode. */ -#define AC_UART0_RECV_MODE POLLING -/** Character size: 5, 6, 7, 8, 9 (only 8 implemented). */ -#define AC_UART0_CHAR_SIZE 8 -/** Parity : ODD, EVEN, NONE. */ -#define AC_UART0_PARITY EVEN -/** Stop bits : 1, 2. */ -#define AC_UART0_STOP_BITS 1 -/** Send buffer size, should be power of 2 for RING mode. */ -#define AC_UART0_SEND_BUFFER_SIZE 32 -/** Recv buffer size, should be power of 2 for RING mode. */ -#define AC_UART0_RECV_BUFFER_SIZE 32 -/** If the send buffer is full when putc: - * - DROP: drop the new byte. - * - WAIT: wait until there is room in the send buffer. */ -#define AC_UART0_SEND_BUFFER_FULL WAIT -/** In HOST compilation: - * - STDIO: use stdin/out. - * - PTS: use pseudo terminal. */ -#define AC_UART0_HOST_DRIVER STDIO -/** Same thing for secondary port. */ -#define AC_UART1_PORT -1 -#define AC_UART1_BAUDRATE 115200 -#define AC_UART1_SEND_MODE RING -#define AC_UART1_RECV_MODE RING -#define AC_UART1_CHAR_SIZE 8 -#define AC_UART1_PARITY EVEN -#define AC_UART1_STOP_BITS 1 -#define AC_UART1_SEND_BUFFER_SIZE 32 -#define AC_UART1_RECV_BUFFER_SIZE 32 -#define AC_UART1_SEND_BUFFER_FULL WAIT -#define AC_UART1_HOST_DRIVER PTS - -/* proto - Protocol module. */ -/** Maximum argument size. */ -#define AC_PROTO_ARGS_MAX_SIZE 8 -/** Callback function name. */ -#define AC_PROTO_CALLBACK proto_callback -/** Putchar function name. */ -#define AC_PROTO_PUTC uart0_putc -/** Support for quote parameter. */ -#define AC_PROTO_QUOTE 1 - -/* spi - SPI module. */ -/** Select driver: HARD, SOFT, or NONE. */ -#define AC_SPI0_DRIVER HARD -/** Same thing for an optionnal second SPI driver. */ -#define AC_SPI1_DRIVER NONE - -/* flash - Flash SPI AVR module. */ -/** Flash PORT used. */ -#define AC_FLASH_PORT PORTD -/** Flash DDR used. */ -#define AC_FLASH_DDR DDRD -/** Flash SS pin. */ -#define AC_FLASH_BIT_SS 5 - -#endif /* avrconfig_h */ diff --git a/digital/avr/modules/trace/test/test_target/events.h b/digital/avr/modules/trace/test/test_target/events.h deleted file mode 100644 index d5a972a1..00000000 --- a/digital/avr/modules/trace/test/test_target/events.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef events_h -#define events_h -/* events_h */ -/* {{{ - * - * Copyright (C) 2008 APBTeam - * - * APBTeam: - * Web: http://apbteam.org/ - * Email: team AT apbteam DOT org - * - * 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; 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * }}} */ - -enum events_t -{ - TRACE_ASSERV__RIGHT_MOTOR, - TRACE_ASSERV__LEFT_MOTOR, - TRACE_IA__IA_CMD, - TRACE_NB -}; - -#endif /* events_h */ diff --git a/digital/avr/modules/trace/test/test_target/flood.c b/digital/avr/modules/trace/test/test_target/flood.c deleted file mode 100644 index b919d0a6..00000000 --- a/digital/avr/modules/trace/test/test_target/flood.c +++ /dev/null @@ -1,141 +0,0 @@ -/* flood.c */ -/* {{{ - * - * Copyright (C) 2008 Nélio Laranjeiro - * - * APBTeam: - * Web: http://apbteam.org/ - * Email: team AT apbteam DOT org - * - * 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; 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * }}} */ -#include "common.h" -#include "io.h" -#include "modules/flash/flash.h" -#include "modules/trace/trace.h" -#include "modules/proto/proto.h" -#include "modules/utils/utils.h" -#include "modules/utils/byte.h" -#include "modules/uart/uart.h" - -#include "events.h" - -void -flood (void) -{ - uint32_t addr; - uint32_t count; - - uint32_t speed; - uint32_t position; - uint16_t acc; - uint16_t arg1; - uint16_t arg2; - uint32_t arg3; - - /* Initialise the trace module. */ - trace_init (); - - /* Get the start page address of the trace module. */ - addr = trace_addr_current (); - proto_send3b ('a', addr >> 16, addr >> 8, addr); - - /* Flood the flash memory with traces. */ - /* A little more than 3 memory sectors, a sector is 4 kbytes. */ - for (count = 0; count < 2000; count ++) - { - /* Right motor. */ - speed = 1; - position = 2; - acc = 3; - arg1 = 1; - arg2 = 2; - arg3 = 3; - TRACE (TRACE_ASSERV__RIGHT_MOTOR, speed, position, acc); - TRACE (TRACE_ASSERV__LEFT_MOTOR, speed, position, acc); - TRACE (TRACE_IA__IA_CMD, arg1, arg2, arg3); - } - - /* Print the end of the address. */ - addr = trace_addr_current (); - proto_send3b ('a', addr >> 16, addr >> 8, addr); -} - -void -proto_callback (uint8_t cmd, uint8_t size, uint8_t *args) -{ - /* May be unused. */ - uint32_t addr = v8_to_v32 (0, args[0], args[1], args[2]); - uint8_t buf[16]; -#define c(cmd, size) (cmd << 8 | size) - switch (c (cmd, size)) - { - case c ('z', 0): - /* Reset */ - utils_reset (); - break; - case c ('e', 0): - /* Erase full */ - flash_erase (FLASH_ERASE_FULL, 0); - break; - case c ('e', 3): - /* Erase 4k: - * - 3b: address. */ - flash_erase (FLASH_ERASE_4K, addr); - break; - case c ('r', 3): - /* Read one byte: - * - 3b: address. */ - proto_send1b ('r', flash_read (addr)); - break; - case c ('r', 4): - /* Read several bytes: - * - 3b: address. - * - 1b: number of bytes. */ - if (args[3] > sizeof (buf)) - { - proto_send0 ('?'); - return; - } - else - { - flash_read_array (addr, buf, args[3]); - proto_send ('r', args[3], buf); - } - break; - case c ('f', 0): - /* Flood the memory with 3 sectors. - */ - flood (); - break; - default: - /* Error */ - proto_send0 ('?'); - return; - } - /* Acknowledge what has been done */ - proto_send (cmd, size, args); -} - -int -main (void) -{ - uart0_init (); - proto_send0 ('z'); - - while (1) - proto_accept (uart0_getc ()); -} diff --git a/digital/avr/modules/trace/test/test_target/test-trace.c b/digital/avr/modules/trace/test/test_target/test-trace.c deleted file mode 100644 index 7938103b..00000000 --- a/digital/avr/modules/trace/test/test_target/test-trace.c +++ /dev/null @@ -1,166 +0,0 @@ -/* test-erase.c */ -/* avr.trace - AVR trace use. {{{ - * - * Copyright (C) 2008 Nélio Laranjeiro - * - * APBTeam: - * Web: http://apbteam.org/ - * Email: team AT apbteam DOT org - * - * 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; 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * }}} */ -#define BUFFER_SIZE 128 - -#include "common.h" -#include "io.h" -#include "modules/flash/flash.h" -#include "modules/trace/trace.h" -#include "modules/proto/proto.h" -#include "modules/utils/utils.h" -#include "modules/utils/byte.h" -#include "modules/uart/uart.h" - - -#include "events.h" - -void -flood (void) -{ - uint32_t addr; - uint32_t count; - - uint32_t speed; - uint32_t position; - uint16_t acc; - uint16_t arg1; - uint16_t arg2; - uint32_t arg3; - - /* Initialise the trace module. */ - trace_init (); - - /* Get the start page address of the trace module. */ - addr = trace_addr_current (); - proto_send3b ('a', addr >> 16, addr >> 8, addr); - - /* Flood the flash memory with traces. */ - /* A little more than 3 memory sectors, a sector is 4 kbytes. */ - for (count = 0; count < 2000; count ++) - { - /* Right motor. */ - speed = 1; - position = 2; - acc = 3; - arg1 = 1; - arg2 = 2; - arg3 = 3; - TRACE (TRACE_ASSERV__RIGHT_MOTOR, speed, position, acc); - TRACE (TRACE_ASSERV__LEFT_MOTOR, speed, position, acc); - TRACE (TRACE_IA__IA_CMD, arg1, arg2, arg3); - } - - /* Print the end of the address. */ - addr = trace_addr_current (); - proto_send3b ('a', addr >> 16, addr >> 8, addr); -} - -void -proto_callback (uint8_t cmd, uint8_t size, uint8_t *args) -{ - /* May be unused. */ - uint32_t addr = v8_to_v32 (0, args[0], args[1], args[2]); - uint8_t buf[16]; - uint8_t error = 0; -#define c(cmd, size) (cmd << 8 | size) - switch (c (cmd, size)) - { - case c ('z', 0): - /* Reset */ - utils_reset (); - break; - case c ('e', 0): - /* Erase full */ - flash_erase (FLASH_ERASE_FULL, 0); - break; - case c ('e', 4): - /* Erase the flash from the address addr and with the hexa code to - * erase.*/ - flash_erase (args[3], addr); - break; - case c ('i', 0): - /* Initialise the trace module. */ - trace_init (); - proto_send1b ('i', trace_status ()); - addr = trace_addr_current (); - proto_send3b ('a', addr >> 16, addr >> 8, addr); - break; - case c ('t', 2): - /* Trace data: - * - 1b: id. - * - 1b: first data. */ - TRACE (args[0], args[1]); - break; - case c ('r', 3): - /* Read one byte: - * - 3b: address. */ - proto_send1b ('r', flash_read (addr)); - break; - case c ('r', 4): - /* Read several bytes: - * - 3b: address. - * - 1b: number of bytes. */ - if (args[3] > sizeof (buf)) - { - proto_send0 ('?'); - return; - } - else - { - flash_read_array (addr, buf, args[3]); - proto_send ('r', args[3], buf); - } - break; - case c ('f', 0): - /* Flood the memory with 3 sectors. - */ - flood (); - break; - default: - if (cmd == 'l') - { - error = flash_log (size, args); - } - else if (error || (cmd != 'l')) - { - /* Error */ - proto_send0 ('?'); - return; - } - } - /* Acknowledge what has been done */ - proto_send (cmd, size, args); -} - -int -main (void) -{ - uart0_init (); - proto_send0 ('z'); - - while (1) - proto_accept (uart0_getc ()); -} - -- cgit v1.2.3