git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2818 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
f81c30406f
commit
3e8aa7cd6a
|
@ -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:
|
||||||
|
|
|
@ -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 **
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 **
|
||||||
|
|
|
@ -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
|
|
@ -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.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue