aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-01-02 11:15:53 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-01-02 11:15:53 +0000
commit5b7bad7e5fec14a8d4b15b699f85aacfad6befc2 (patch)
treed766c890ed72e996d3e7a62619b507311e6efd1b
parent55a13f13b9242dadad1949fe00f09056e1c05a7d (diff)
downloadChibiOS-5b7bad7e5fec14a8d4b15b699f85aacfad6befc2.tar.gz
ChibiOS-5b7bad7e5fec14a8d4b15b699f85aacfad6befc2.tar.bz2
ChibiOS-5b7bad7e5fec14a8d4b15b699f85aacfad6befc2.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1490 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--demos/ARMCM3-STM32F103-FATFS-GCC/halconf.h34
-rw-r--r--demos/ARMCM3-STM32F103-FATFS-GCC/mcuconf.h82
-rw-r--r--docs/reports/STM32F103-72.txt24
-rw-r--r--os/hal/include/serial.h6
4 files changed, 117 insertions, 29 deletions
diff --git a/demos/ARMCM3-STM32F103-FATFS-GCC/halconf.h b/demos/ARMCM3-STM32F103-FATFS-GCC/halconf.h
index a0b41dc0d..36802e62f 100644
--- a/demos/ARMCM3-STM32F103-FATFS-GCC/halconf.h
+++ b/demos/ARMCM3-STM32F103-FATFS-GCC/halconf.h
@@ -38,7 +38,7 @@
* settings file. This file can be used to include platform specific
* header files or to override the low level drivers settings.
*/
-/*#include "mcuconf.h"*/
+#include "mcuconf.h"
/*===========================================================================*/
/* PAL driver related settings. */
@@ -48,7 +48,7 @@
* @brief Enables the PAL subsystem.
*/
#if !defined(CH_HAL_USE_PAL) || defined(__DOXYGEN__)
-#define CH_HAL_USE_PAL TRUE
+#define CH_HAL_USE_PAL TRUE
#endif
/*===========================================================================*/
@@ -59,7 +59,7 @@
* @brief Enables the ADC subsystem.
*/
#if !defined(CH_HAL_USE_ADC) || defined(__DOXYGEN__)
-#define CH_HAL_USE_ADC FALSE
+#define CH_HAL_USE_ADC FALSE
#endif
/*===========================================================================*/
@@ -70,7 +70,7 @@
* @brief Enables the CAN subsystem.
*/
#if !defined(CH_HAL_USE_CAN) || defined(__DOXYGEN__)
-#define CH_HAL_USE_CAN FALSE
+#define CH_HAL_USE_CAN FALSE
#endif
/*===========================================================================*/
@@ -81,7 +81,7 @@
* @brief Enables the MAC subsystem.
*/
#if !defined(CH_HAL_USE_MAC) || defined(__DOXYGEN__)
-#define CH_HAL_USE_MAC FALSE
+#define CH_HAL_USE_MAC FALSE
#endif
/*===========================================================================*/
@@ -92,7 +92,7 @@
* @brief Enables the PWM subsystem.
*/
#if !defined(CH_HAL_USE_PWM) || defined(__DOXYGEN__)
-#define CH_HAL_USE_PWM FALSE
+#define CH_HAL_USE_PWM FALSE
#endif
/*===========================================================================*/
@@ -103,9 +103,15 @@
* @brief Enables the SERIAL subsystem.
*/
#if !defined(CH_HAL_USE_SERIAL) || defined(__DOXYGEN__)
-#define CH_HAL_USE_SERIAL TRUE
+#define CH_HAL_USE_SERIAL TRUE
#endif
+/*
+ * Default SERIAL settings overrides (uncomment to override).
+ */
+/*#define SERIAL_DEFAULT_BITRATE 38400*/
+/*#define SERIAL_BUFFERS_SIZE 64*/
+
/*===========================================================================*/
/* SPI driver related settings. */
/*===========================================================================*/
@@ -114,13 +120,13 @@
* @brief Enables the SPI subsystem.
*/
#if !defined(CH_HAL_USE_SPI) || defined(__DOXYGEN__)
-#define CH_HAL_USE_SPI TRUE
+#define CH_HAL_USE_SPI TRUE
#endif
/*
* Default SPI settings overrides (uncomment to override).
*/
-/*#define SPI_USE_MUTUAL_EXCLUSION TRUE*/
+/*#define SPI_USE_MUTUAL_EXCLUSION TRUE*/
/*===========================================================================*/
/* MMC_SPI driver related settings. */
@@ -130,16 +136,16 @@
* @brief Enables the MMC_SPI subsystem.
*/
#if !defined(CH_HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
-#define CH_HAL_USE_MMC_SPI TRUE
+#define CH_HAL_USE_MMC_SPI TRUE
#endif
/*
* Default MMC_SPI settings overrides (uncomment to override).
*/
-/*#define MMC_SECTOR_SIZE 512*/
-/*#define MMC_NICE_WAITING TRUE*/
-/*#define MMC_POLLING_INTERVAL 10*/
-/*#define MMC_POLLING_DELAY 10*/
+/*#define MMC_SECTOR_SIZE 512*/
+/*#define MMC_NICE_WAITING TRUE*/
+/*#define MMC_POLLING_INTERVAL 10*/
+/*#define MMC_POLLING_DELAY 10*/
#endif /* _HALCONF_H_ */
diff --git a/demos/ARMCM3-STM32F103-FATFS-GCC/mcuconf.h b/demos/ARMCM3-STM32F103-FATFS-GCC/mcuconf.h
new file mode 100644
index 000000000..f49b49597
--- /dev/null
+++ b/demos/ARMCM3-STM32F103-FATFS-GCC/mcuconf.h
@@ -0,0 +1,82 @@
+/*
+ ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio.
+
+ This file is part of ChibiOS/RT.
+
+ ChibiOS/RT 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 3 of the License, or
+ (at your option) any later version.
+
+ ChibiOS/RT 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, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+ * Drivers configuration for the Olimex STM33-P103 proto board.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the driver
+ * is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 0xF0 Lowest, priority level reserved for PENDSV.
+ * 0xE0...0x40 Normal IRQs priority levels (0x80 used by SYSTICK).
+ * 0x30 Used by SVCALL, do not share.
+ * 0x20...0x00 Fast interrupts, can preempt the kernel but cannot use it.
+ *
+ * DMA priorities:
+ * 0...3 Lowest...Highest.
+ */
+
+/*
+ * ADC driver system settings.
+ */
+#define USE_STM32_ADC1 TRUE
+#define STM32_ADC1_DMA_PRIORITY 3
+#define STM32_ADC1_IRQ_PRIORITY 0x50
+#define STM32_ADC1_DMA_ERROR_HOOK() chSysHalt()
+
+/*
+ * CAN driver system settings.
+ */
+#define USE_STM32_CAN1 TRUE
+#define STM32_CAN1_IRQ_PRIORITY 0xB0
+
+/*
+ * PWM driver system settings.
+ */
+#define USE_STM32_PWM1 TRUE
+#define USE_STM32_PWM2 FALSE
+#define USE_STM32_PWM3 FALSE
+#define USE_STM32_PWM4 FALSE
+#define STM32_PWM1_IRQ_PRIORITY 0x70
+#define STM32_PWM2_IRQ_PRIORITY 0x70
+#define STM32_PWM3_IRQ_PRIORITY 0x70
+#define STM32_PWM4_IRQ_PRIORITY 0x70
+
+/*
+ * SERIAL driver system settings.
+ */
+#define USE_STM32_USART1 FALSE
+#define USE_STM32_USART2 TRUE
+#define USE_STM32_USART3 FALSE
+#define STM32_USART1_PRIORITY 0xC0
+#define STM32_USART2_PRIORITY 0xC0
+#define STM32_USART3_PRIORITY 0xC0
+
+/*
+ * SPI driver system settings.
+ */
+#define USE_STM32_SPI1 TRUE
+#define USE_STM32_SPI2 TRUE
+#define STM32_SPI1_DMA_PRIORITY 2
+#define STM32_SPI2_DMA_PRIORITY 2
+#define STM32_SPI1_IRQ_PRIORITY 0xA0
+#define STM32_SPI2_IRQ_PRIORITY 0xA0
+#define STM32_SPI1_DMA_ERROR_HOOK() chSysHalt()
diff --git a/docs/reports/STM32F103-72.txt b/docs/reports/STM32F103-72.txt
index abfed08f6..6572ff499 100644
--- a/docs/reports/STM32F103-72.txt
+++ b/docs/reports/STM32F103-72.txt
@@ -89,51 +89,51 @@ Settings: SYSCLK=72, ACR=0x12 (2 wait states)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.1 (Benchmark, messages #1)
---- Score : 221749 msgs/S, 443498 ctxswc/S
+--- Score : 221785 msgs/S, 443570 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.2 (Benchmark, messages #2)
---- Score : 185652 msgs/S, 371304 ctxswc/S
+--- Score : 185682 msgs/S, 371364 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.3 (Benchmark, messages #3)
---- Score : 185652 msgs/S, 371304 ctxswc/S
+--- Score : 185682 msgs/S, 371364 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.4 (Benchmark, context switch)
---- Score : 696712 ctxswc/S
+--- Score : 696832 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.5 (Benchmark, threads, full cycle)
---- Score : 173546 threads/S
+--- Score : 173577 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.6 (Benchmark, threads, create only)
---- Score : 222440 threads/S
+--- Score : 222482 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.7 (Benchmark, mass reschedulation, 5 threads)
---- Score : 56935 reschedulations/S, 341610 ctxswc/S
+--- Score : 56945 reschedulations/S, 341670 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.8 (Benchmark, round robin context switching)
---- Score : 505120 reschedulations/S, 505120 ctxswc/S
+--- Score : 505212 reschedulations/S, 505212 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.9 (Benchmark, I/O Queues throughput)
---- Score : 474876 bytes/S
+--- Score : 474964 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.10 (Benchmark, virtual timers set/reset)
---- Score : 647320 timers/S
+--- Score : 647444 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.11 (Benchmark, semaphores wait/signal)
---- Score : 833160 wait+signal/S
+--- Score : 833304 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.12 (Benchmark, mutexes lock/unlock)
---- Score : 586588 lock+unlock/S
+--- Score : 586700 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.13 (Benchmark, RAM footprint)
diff --git a/os/hal/include/serial.h b/os/hal/include/serial.h
index f6b54bb5d..c24ac3994 100644
--- a/os/hal/include/serial.h
+++ b/os/hal/include/serial.h
@@ -110,15 +110,15 @@ struct SerialDriverVMT {
/**
* @p BaseChannel class inherited methods.
*/
- struct _base_channel_methods m0;
+ struct _base_channel_methods bc;
/**
* @p BaseAsynchronousChannel class inherited methods.
*/
- struct _base_asynchronous_channel_methods m1;
+ struct _base_asynchronous_channel_methods bac;
/**
* @p SerialDriver specific methods.
*/
- struct _serial_driver_methods m2;
+ struct _serial_driver_methods sd;
};
/**