From 0970c44b086287eac3c6c147a390fddb0f9de552 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Tue, 15 Jun 2010 17:19:01 +0000 Subject: Fixed bug 3016619. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2021 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- demos/AVR-AT90CANx-GCC/chconf.h | 6 ++--- demos/AVR-AT90CANx-GCC/halconf.h | 2 +- demos/AVR-ATmega128-GCC/chconf.h | 6 ++--- demos/AVR-ATmega128-GCC/halconf.h | 2 +- docs/reports/ATmega128-16.txt | 49 ++++++++++++++++----------------------- os/ports/GCC/AVR/chcore.c | 8 +++---- readme.txt | 3 ++- 7 files changed, 34 insertions(+), 42 deletions(-) diff --git a/demos/AVR-AT90CANx-GCC/chconf.h b/demos/AVR-AT90CANx-GCC/chconf.h index 33dcfdfca..ccab98d65 100644 --- a/demos/AVR-AT90CANx-GCC/chconf.h +++ b/demos/AVR-AT90CANx-GCC/chconf.h @@ -308,7 +308,7 @@ * @note Mutexes are recommended. */ #if !defined(CH_USE_HEAP) || defined(__DOXYGEN__) -#define CH_USE_HEAP TRUE +#define CH_USE_HEAP FALSE #endif /** @@ -333,7 +333,7 @@ * @note The default is @p TRUE. */ #if !defined(CH_USE_MEMPOOLS) || defined(__DOXYGEN__) -#define CH_USE_MEMPOOLS TRUE +#define CH_USE_MEMPOOLS FALSE #endif /** @@ -346,7 +346,7 @@ * @note Requires @p CH_USE_HEAP and/or @p CH_USE_MEMPOOLS. */ #if !defined(CH_USE_DYNAMIC) || defined(__DOXYGEN__) -#define CH_USE_DYNAMIC TRUE +#define CH_USE_DYNAMIC FALSE #endif /*===========================================================================*/ diff --git a/demos/AVR-AT90CANx-GCC/halconf.h b/demos/AVR-AT90CANx-GCC/halconf.h index bd2f3e4fd..7859d0f0e 100644 --- a/demos/AVR-AT90CANx-GCC/halconf.h +++ b/demos/AVR-AT90CANx-GCC/halconf.h @@ -110,7 +110,7 @@ * Default SERIAL settings overrides (uncomment to override). */ /*#define SERIAL_DEFAULT_BITRATE 38400*/ -/*#define SERIAL_BUFFERS_SIZE 64*/ +#define SERIAL_BUFFERS_SIZE 16 /*===========================================================================*/ /* SPI driver related settings. */ diff --git a/demos/AVR-ATmega128-GCC/chconf.h b/demos/AVR-ATmega128-GCC/chconf.h index 33dcfdfca..ccab98d65 100644 --- a/demos/AVR-ATmega128-GCC/chconf.h +++ b/demos/AVR-ATmega128-GCC/chconf.h @@ -308,7 +308,7 @@ * @note Mutexes are recommended. */ #if !defined(CH_USE_HEAP) || defined(__DOXYGEN__) -#define CH_USE_HEAP TRUE +#define CH_USE_HEAP FALSE #endif /** @@ -333,7 +333,7 @@ * @note The default is @p TRUE. */ #if !defined(CH_USE_MEMPOOLS) || defined(__DOXYGEN__) -#define CH_USE_MEMPOOLS TRUE +#define CH_USE_MEMPOOLS FALSE #endif /** @@ -346,7 +346,7 @@ * @note Requires @p CH_USE_HEAP and/or @p CH_USE_MEMPOOLS. */ #if !defined(CH_USE_DYNAMIC) || defined(__DOXYGEN__) -#define CH_USE_DYNAMIC TRUE +#define CH_USE_DYNAMIC FALSE #endif /*===========================================================================*/ diff --git a/demos/AVR-ATmega128-GCC/halconf.h b/demos/AVR-ATmega128-GCC/halconf.h index bd2f3e4fd..7859d0f0e 100644 --- a/demos/AVR-ATmega128-GCC/halconf.h +++ b/demos/AVR-ATmega128-GCC/halconf.h @@ -110,7 +110,7 @@ * Default SERIAL settings overrides (uncomment to override). */ /*#define SERIAL_DEFAULT_BITRATE 38400*/ -/*#define SERIAL_BUFFERS_SIZE 64*/ +#define SERIAL_BUFFERS_SIZE 16 /*===========================================================================*/ /* SPI driver related settings. */ diff --git a/docs/reports/ATmega128-16.txt b/docs/reports/ATmega128-16.txt index ff5a4a97d..1228d019c 100644 --- a/docs/reports/ATmega128-16.txt +++ b/docs/reports/ATmega128-16.txt @@ -5,9 +5,12 @@ Settings: F_CPU=16000000 *** ChibiOS/RT test suite *** -*** Kernel: 1.3.5unstable -*** Architecture: AVR +*** Kernel: 2.1.0unstable *** GCC Version: 4.3.0 +*** Architecture: AVR +*** Core Variant: MegaAVR +*** Platform: ATmega128 +*** Test Board: Olimex AVR-MT-128 ---------------------------------------------------------------------------- --- Test Case 1.1 (Threads, enqueuing test #1) @@ -70,18 +73,6 @@ Settings: F_CPU=16000000 --- Test Case 6.3 (Events, timeouts) --- Result: SUCCESS ---------------------------------------------------------------------------- ---- Test Case 7.1 (Heap, allocation and fragmentation test) ---- Result: SUCCESS ----------------------------------------------------------------------------- ---- Test Case 8.1 (Memory Pools, queue/dequeue) ---- Result: SUCCESS ----------------------------------------------------------------------------- ---- Test Case 9.1 (Dynamic APIs, threads creation from heap) ---- Result: SUCCESS ----------------------------------------------------------------------------- ---- Test Case 9.2 (Dynamic APIs, threads creation from memory pool) ---- Result: SUCCESS ----------------------------------------------------------------------------- --- Test Case 10.1 (Queues, input queues) --- Result: SUCCESS ---------------------------------------------------------------------------- @@ -89,56 +80,56 @@ Settings: F_CPU=16000000 --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.1 (Benchmark, messages #1) ---- Score : 30808 msgs/S, 61616 ctxswc/S +--- Score : 31248 msgs/S, 62496 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.2 (Benchmark, messages #2) ---- Score : 24579 msgs/S, 49158 ctxswc/S +--- Score : 25058 msgs/S, 50116 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.3 (Benchmark, messages #3) ---- Score : 24579 msgs/S, 49158 ctxswc/S +--- Score : 25058 msgs/S, 50116 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.4 (Benchmark, context switch) ---- Score : 88608 ctxswc/S +--- Score : 89904 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.5 (Benchmark, threads, full cycle) ---- Score : 20741 threads/S +--- Score : 20805 threads/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.6 (Benchmark, threads, create only) ---- Score : 26561 threads/S +--- Score : 26709 threads/S --- Result: SUCCESS ---------------------------------------------------------------------------- ---- Test Case 11.7 (Benchmark, mass reschedulation, 5 threads) ---- Score : 7786 reschedulations/S, 46716 ctxswc/S +--- Test Case 11.7 (Benchmark, mass reschedule, 5 threads) +--- Score : 7970 reschedules/S, 47820 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.8 (Benchmark, round robin context switching) ---- Score : 67756 reschedulations/S, 67756 ctxswc/S +--- Score : 60756 ctxswc/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.9 (Benchmark, I/O Queues throughput) ---- Score : 82224 bytes/S +--- Score : 82696 bytes/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.10 (Benchmark, virtual timers set/reset) ---- Score : 81482 timers/S +--- Score : 81522 timers/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.11 (Benchmark, semaphores wait/signal) ---- Score : 224224 wait+signal/S +--- Score : 227560 wait+signal/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.12 (Benchmark, mutexes lock/unlock) ---- Score : 119304 lock+unlock/S +--- Score : 117588 lock+unlock/S --- Result: SUCCESS ---------------------------------------------------------------------------- --- Test Case 11.13 (Benchmark, RAM footprint) ---- System: 220 bytes ---- Thread: 27 bytes +--- System: 230 bytes +--- Thread: 29 bytes --- Timer : 10 bytes --- Semaph: 5 bytes --- EventS: 2 bytes diff --git a/os/ports/GCC/AVR/chcore.c b/os/ports/GCC/AVR/chcore.c index f84e6aed1..32e48ce52 100644 --- a/os/ports/GCC/AVR/chcore.c +++ b/os/ports/GCC/AVR/chcore.c @@ -67,14 +67,14 @@ void port_switch(Thread *ntp, Thread *otp) { asm volatile ("movw r30, r22"); asm volatile ("in r0, 0x3d"); - asm volatile ("std Z+6, r0"); + asm volatile ("std Z+5, r0"); asm volatile ("in r0, 0x3e"); - asm volatile ("std Z+7, r0"); + asm volatile ("std Z+6, r0"); asm volatile ("movw r30, r24"); - asm volatile ("ldd r0, Z+6"); + asm volatile ("ldd r0, Z+5"); asm volatile ("out 0x3d, r0"); - asm volatile ("ldd r0, Z+7"); + asm volatile ("ldd r0, Z+6"); asm volatile ("out 0x3e, r0"); asm volatile ("pop r29"); diff --git a/readme.txt b/readme.txt index 8740e4a35..1de033ba9 100644 --- a/readme.txt +++ b/readme.txt @@ -59,8 +59,9 @@ ***************************************************************************** *** 2.1.0 *** +- FIX: Fixed broken AVR port (bug 3016619)(backported in 2.0.0). - FIX: Fixed assertion in adcStop() (bug 3015109)(backported in 2.0.0). -- OPT: Simplified the test suite code, now it is smaller (backported in 2.0.0). +- OPT: Simplified the test suite code, now it is smaller. *** 1.5.9 *** - FIX: Fixed STM8 baud rate setup error (bug 3010990). -- cgit v1.2.3