git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2818 35acf78f-673a-0410-8e92-d51de3d6d3f4

This commit is contained in:
gdisirio 2011-03-12 08:25:16 +00:00
parent f81c30406f
commit 3e8aa7cd6a
8 changed files with 187 additions and 20 deletions

View File

@ -142,7 +142,7 @@
*/ */
#define VAL_GPIOCCRL 0x334488B8 /* PC7...PC0 */ #define VAL_GPIOCCRL 0x334488B8 /* PC7...PC0 */
#define VAL_GPIOCCRH 0x444B8B88 /* PC15...PC8 */ #define VAL_GPIOCCRH 0x444B8B88 /* PC15...PC8 */
#define VAL_GPIOCODR 0xFFFFFFFF #define VAL_GPIOCODR 0xFFFFFF3F
/* /*
* Port D setup: * Port D setup:

View File

@ -10,12 +10,12 @@ The demo runs on an Olimex STM32-P103 board.
The demo flashes the board LED using a thread, by pressing the button located The demo flashes the board LED using a thread, by pressing the button located
on the board the test procedure is activated with output on the serial port on the board the test procedure is activated with output on the serial port
COM2 (USART2). SD2 (USART2).
** Build Procedure ** ** Build Procedure **
The demo has been tested by using the free Codesourcery GCC-based toolchain, The demo has been tested by using the free Codesourcery GCC-based toolchain
YAGARTO and an experimental WinARM build including GCC 4.3.0. and YAGARTO.
Just modify the TRGT line in the makefile in order to use different GCC ports. Just modify the TRGT line in the makefile in order to use different GCC ports.
** Notes ** ** Notes **

View File

@ -57,7 +57,7 @@ LDSCRIPT= ch.ld
# Imported source files # Imported source files
CHIBIOS = ../.. CHIBIOS = ../..
include $(CHIBIOS)/boards/ST_STM3210C_EVAL/board.mk include $(CHIBIOS)/boards/OLIMEX_STM32_P107/board.mk
include $(CHIBIOS)/os/hal/platforms/STM32/platform.mk include $(CHIBIOS)/os/hal/platforms/STM32/platform.mk
include $(CHIBIOS)/os/hal/hal.mk include $(CHIBIOS)/os/hal/hal.mk
include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32/port.mk include $(CHIBIOS)/os/ports/GCC/ARMCMx/STM32/port.mk

View File

@ -22,19 +22,18 @@
#include "test.h" #include "test.h"
/* /*
* Red LED blinker thread, times are in milliseconds. * Green LED blinker thread, times are in milliseconds.
*/ */
static WORKING_AREA(waThread1, 128); static WORKING_AREA(waThread1, 128);
static msg_t Thread1(void *arg) { static msg_t Thread1(void *arg) {
(void)arg; (void)arg;
while (TRUE) { while (TRUE) {
palClearPad(IOPORT4, 7); palClearPad(GPIOC, GPIOC_LED_STATUS1);
chThdSleepMilliseconds(500); chThdSleepMilliseconds(500);
palSetPad(IOPORT4, 7); palSetPad(GPIOC, GPIOC_LED_STATUS1);
chThdSleepMilliseconds(500); chThdSleepMilliseconds(500);
} }
return 0;
} }
/* /*
@ -55,7 +54,7 @@ int main(void) {
/* /*
* Activates the serial driver 2 using the driver default configuration. * Activates the serial driver 2 using the driver default configuration.
*/ */
sdStart(&SD2, NULL); sdStart(&SD3, NULL);
/* /*
* Creates the blinker thread. * Creates the blinker thread.
@ -67,8 +66,8 @@ int main(void) {
* sleeping in a loop and check the button state. * sleeping in a loop and check the button state.
*/ */
while (TRUE) { while (TRUE) {
if (palReadPad(IOPORT2, 9) == 0) if (palReadPad(GPIOC, GPIOC_SWITCH_TAMPER) == 0)
TestThread(&SD2); TestThread(&SD3);
chThdSleepMilliseconds(500); chThdSleepMilliseconds(500);
} }
return 0; return 0;

View File

@ -94,8 +94,8 @@
* SERIAL driver system settings. * SERIAL driver system settings.
*/ */
#define STM32_SERIAL_USE_USART1 FALSE #define STM32_SERIAL_USE_USART1 FALSE
#define STM32_SERIAL_USE_USART2 TRUE #define STM32_SERIAL_USE_USART2 FALSE
#define STM32_SERIAL_USE_USART3 FALSE #define STM32_SERIAL_USE_USART3 TRUE
#define STM32_SERIAL_USE_UART4 FALSE #define STM32_SERIAL_USE_UART4 FALSE
#define STM32_SERIAL_USE_UART5 FALSE #define STM32_SERIAL_USE_UART5 FALSE
#define STM32_SERIAL_USART1_PRIORITY 12 #define STM32_SERIAL_USART1_PRIORITY 12
@ -107,9 +107,9 @@
/* /*
* SPI driver system settings. * SPI driver system settings.
*/ */
#define STM32_SPI_USE_SPI1 TRUE #define STM32_SPI_USE_SPI1 FALSE
#define STM32_SPI_USE_SPI2 TRUE #define STM32_SPI_USE_SPI2 FALSE
#define STM32_SPI_USE_SPI3 FALSE #define STM32_SPI_USE_SPI3 TRUE
#define STM32_SPI_SPI1_DMA_PRIORITY 2 #define STM32_SPI_SPI1_DMA_PRIORITY 2
#define STM32_SPI_SPI2_DMA_PRIORITY 2 #define STM32_SPI_SPI2_DMA_PRIORITY 2
#define STM32_SPI_SPI3_DMA_PRIORITY 2 #define STM32_SPI_SPI3_DMA_PRIORITY 2

View File

@ -4,15 +4,18 @@
** TARGET ** ** TARGET **
The demo runs on an ST STM3210C-EVAL board. The demo runs on an Olimex STM32-P107 board.
** The Demo ** ** The Demo **
The demo flashes the board LED using a thread, by pressing the button located
on the board the test procedure is activated with output on the serial port
SD3 (USART3).
** Build Procedure ** ** Build Procedure **
The demo has been tested by using the free Codesourcery GCC-based toolchain, The demo has been tested by using the free Codesourcery GCC-based toolchain
YAGARTO and an experimental WinARM build including GCC 4.3.0. and YAGARTO.
Just modify the TRGT line in the makefile in order to use different GCC ports. Just modify the TRGT line in the makefile in order to use different GCC ports.
** Notes ** ** Notes **

View File

@ -0,0 +1,162 @@
***************************************************************************
Options: -O2 -fomit-frame-pointer -mabi=apcs-gnu -falign-functions=16
Settings: SYSCLK=72, ACR=0x12 (2 wait states)
***************************************************************************
*** ChibiOS/RT test suite
***
*** Kernel: 2.3.1unstable
*** GCC Version: 4.5.2
*** Architecture: ARMv7-M
*** Core Variant: Cortex-M3
*** Platform: STM32 Connectivity Line
*** Test Board: Olimex STM32-P107
----------------------------------------------------------------------------
--- Test Case 1.1 (Threads, enqueuing test #1)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.2 (Threads, enqueuing test #2)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.3 (Threads, priority change)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.4 (Threads, delays)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.1 (Semaphores, enqueuing)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.2 (Semaphores, timeout)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.3 (Semaphores, atomic signal-wait)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.4 (Binary Semaphores, functionality)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.1 (Mutexes, priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.2 (Mutexes, priority inheritance, simple case)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.3 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.4 (Mutexes, priority return)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.5 (Mutexes, status)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.6 (CondVar, signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.7 (CondVar, broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.8 (CondVar, boost test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 4.1 (Messages, loop)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.1 (Mailboxes, queuing and timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.1 (Events, registration and dispatch)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.2 (Events, wait and broadcast)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- 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 9.3 (Dynamic APIs, registry and references)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.1 (Queues, input queues)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.2 (Queues, output queues)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.1 (Benchmark, messages #1)
--- Score : 249425 msgs/S, 498850 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.2 (Benchmark, messages #2)
--- Score : 198438 msgs/S, 396876 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.3 (Benchmark, messages #3)
--- Score : 198438 msgs/S, 396876 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.4 (Benchmark, context switch)
--- Score : 848888 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.5 (Benchmark, threads, full cycle)
--- Score : 156166 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.6 (Benchmark, threads, create only)
--- Score : 235534 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.7 (Benchmark, mass reschedule, 5 threads)
--- Score : 61032 reschedules/S, 366192 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.8 (Benchmark, round robin context switching)
--- Score : 472600 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.9 (Benchmark, I/O Queues throughput)
--- Score : 474216 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.10 (Benchmark, virtual timers set/reset)
--- Score : 644340 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.11 (Benchmark, semaphores wait/signal)
--- Score : 787320 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.12 (Benchmark, mutexes lock/unlock)
--- Score : 586488 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.13 (Benchmark, RAM footprint)
--- System: 360 bytes
--- Thread: 68 bytes
--- Timer : 20 bytes
--- Semaph: 12 bytes
--- EventS: 4 bytes
--- EventL: 12 bytes
--- Mutex : 16 bytes
--- CondV.: 8 bytes
--- Queue : 32 bytes
--- MailB.: 40 bytes
--- Result: SUCCESS
----------------------------------------------------------------------------
Final result: SUCCESS

View File

@ -73,9 +73,12 @@
*** 2.3.1 *** *** 2.3.1 ***
- FIX: Fixed invalid assertion in adcConvert() (bug 3205410)(backported - FIX: Fixed invalid assertion in adcConvert() (bug 3205410)(backported
to 2.2.3). to 2.2.3).
- NEW: Added board files for the Olimex STM32-P107.
- NEW: Improved setup packets handling in the USB driver through a specific - NEW: Improved setup packets handling in the USB driver through a specific
callback. callback.
- OPT: Simplified Serial over USB driver configuration. - OPT: Simplified Serial over USB driver configuration.
- CHANGE: Now the STM32F107 demo targets the board Olimex STM32-P107 as
default.
- CHANGE: Removed all the prefixes from the structure/union field names - CHANGE: Removed all the prefixes from the structure/union field names
in the HAL subsystem. in the HAL subsystem.