update stm32 demo and testhal projects to upstream chibios

This commit is contained in:
Nicolas Reinecke 2016-05-01 01:38:31 +02:00
parent 1a6aba5009
commit 367bc6bcce
39 changed files with 1064 additions and 419 deletions

View File

@ -69,7 +69,7 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
USE_EXCEPTIONS_STACKSIZE = 0x400 USE_EXCEPTIONS_STACKSIZE = 0x400
endif endif
# Enables the use of FPU on Cortex-M4 (no, softfp, hard). # Enables the use of FPU (no, softfp, hard).
ifeq ($(USE_FPU),) ifeq ($(USE_FPU),)
USE_FPU = no USE_FPU = no
endif endif
@ -89,7 +89,7 @@ PROJECT = ch
CHIBIOS = ../../../../ChibiOS-RT CHIBIOS = ../../../../ChibiOS-RT
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
# Startup files. # Startup files.
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk
# HAL-OSAL files (optional). # HAL-OSAL files (optional).
include $(CHIBIOS_CONTRIB)/os/hal/hal.mk include $(CHIBIOS_CONTRIB)/os/hal/hal.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/STM32/STM32F4xx/platform.mk include $(CHIBIOS_CONTRIB)/os/hal/ports/STM32/STM32F4xx/platform.mk
@ -97,9 +97,11 @@ include $(CHIBIOS)/os/hal/boards/ST_STM32F429I_DISCOVERY/board.mk
include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/hal/osal/rt/osal.mk
# RTOS files (optional). # RTOS files (optional).
include $(CHIBIOS)/os/rt/rt.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
# Other files (optional). # Other files (optional).
include $(CHIBIOS)/test/rt/test.mk include $(CHIBIOS)/test/rt/test.mk
include $(CHIBIOS)/os/hal/lib/streams/streams.mk
include $(CHIBIOS)/os/various/shell/shell.mk
# Define linker script file here # Define linker script file here
LDSCRIPT = STM32F429xI_SDRAM.ld LDSCRIPT = STM32F429xI_SDRAM.ld
@ -114,14 +116,12 @@ CSRC = $(STARTUPSRC) \
$(PLATFORMSRC) \ $(PLATFORMSRC) \
$(BOARDSRC) \ $(BOARDSRC) \
$(TESTSRC) \ $(TESTSRC) \
$(CHIBIOS)/os/various/shell.c \ $(STREAMSSRC) \
$(CHIBIOS)/os/hal/lib/streams/memstreams.c \ $(SHELLSRC) \
$(CHIBIOS)/os/hal/lib/streams/chprintf.c \
$(CHIBIOS_CONTRIB)/os/various/devices_lib/lcd/ili9341.c \ $(CHIBIOS_CONTRIB)/os/various/devices_lib/lcd/ili9341.c \
./main.c \ main.c \
./wolf3d_palette.c \ wolf3d_palette.c \
./res/wolf3d_vgagraph_chunk87.c \ res/wolf3d_vgagraph_chunk87.c
# eol
# C++ sources that can be compiled in ARM or THUMB mode depending on the global # C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting. # setting.
@ -154,11 +154,10 @@ ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
INCDIR = $(CHIBIOS)/os/license \ INCDIR = $(CHIBIOS)/os/license \
$(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
$(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
$(STREAMSINC) $(SHELLINC) \
$(CHIBIOS)/os/various \ $(CHIBIOS)/os/various \
$(CHIBIOS)/os/hal/lib/streams \
$(CHIBIOS_CONTRIB)/os/various/devices_lib/lcd \ $(CHIBIOS_CONTRIB)/os/various/devices_lib/lcd \
./res \ res
# eol
# #
# Project, sources and paths # Project, sources and paths
@ -194,10 +193,10 @@ AOPT =
TOPT = -mthumb -DTHUMB TOPT = -mthumb -DTHUMB
# Define C warning options here # Define C warning options here
CWARN = -Wall -Wextra -Wstrict-prototypes CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
# Define C++ warning options here # Define C++ warning options here
CPPWARN = -Wall -Wextra CPPWARN = -Wall -Wextra -Wundef
# #
# Compiler settings # Compiler settings
@ -226,5 +225,5 @@ ULIBS =
# End of user defines # End of user defines
############################################################################## ##############################################################################
RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
include $(RULESPATH)/rules.mk include $(RULESPATH)/rules.mk

View File

@ -1,20 +1,17 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio. ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
This file is part of ChibiOS. Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
ChibiOS is free software; you can redistribute it and/or modify http://www.apache.org/licenses/LICENSE-2.0
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 is distributed in the hope that it will be useful, Unless required by applicable law or agreed to in writing, software
but WITHOUT ANY WARRANTY; without even the implied warranty of distributed under the License is distributed on an "AS IS" BASIS,
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
GNU General Public License for more details. See the License for the specific language governing permissions and
limitations under the License.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
/* /*
@ -23,7 +20,14 @@
*/ */
MEMORY MEMORY
{ {
flash : org = 0x08000000, len = 2M flash0 : org = 0x08000000, len = 2M
flash1 : org = 0x00000000, len = 0
flash2 : org = 0x00000000, len = 0
flash3 : org = 0x00000000, len = 0
flash4 : org = 0x00000000, len = 0
flash5 : org = 0x00000000, len = 0
flash6 : org = 0x00000000, len = 0
flash7 : org = 0x00000000, len = 0
ram0 : org = 0x20000000, len = 192k /* SRAM1 + SRAM2 + SRAM3 */ ram0 : org = 0x20000000, len = 192k /* SRAM1 + SRAM2 + SRAM3 */
ram1 : org = 0x20000000, len = 112k /* SRAM1 */ ram1 : org = 0x20000000, len = 112k /* SRAM1 */
ram2 : org = 0x2001C000, len = 16k /* SRAM2 */ ram2 : org = 0x2001C000, len = 16k /* SRAM2 */
@ -34,8 +38,34 @@ MEMORY
ram7 : org = 0xD0000000, len = 8M /* SDRAM */ ram7 : org = 0xD0000000, len = 8M /* SDRAM */
} }
/* For each data/text section two region are defined, a virtual region
and a load region (_LMA suffix).*/
/* Flash region to be used for exception vectors.*/
REGION_ALIAS("VECTORS_FLASH", flash0);
REGION_ALIAS("VECTORS_FLASH_LMA", flash0);
/* Flash region to be used for constructors and destructors.*/
REGION_ALIAS("XTORS_FLASH", flash0);
REGION_ALIAS("XTORS_FLASH_LMA", flash0);
/* Flash region to be used for code text.*/
REGION_ALIAS("TEXT_FLASH", flash0);
REGION_ALIAS("TEXT_FLASH_LMA", flash0);
/* Flash region to be used for read only data.*/
REGION_ALIAS("RODATA_FLASH", flash0);
REGION_ALIAS("RODATA_FLASH_LMA", flash0);
/* Flash region to be used for various.*/
REGION_ALIAS("VARIOUS_FLASH", flash0);
REGION_ALIAS("VARIOUS_FLASH_LMA", flash0);
/* Flash region to be used for RAM(n) initialization data.*/
REGION_ALIAS("RAM_INIT_FLASH_LMA", flash0);
/* RAM region to be used for Main stack. This stack accommodates the processing /* RAM region to be used for Main stack. This stack accommodates the processing
of all exceptions and interrupts*/ of all exceptions and interrupts.*/
REGION_ALIAS("MAIN_STACK_RAM", ram0); REGION_ALIAS("MAIN_STACK_RAM", ram0);
/* RAM region to be used for the process stack. This is the stack used by /* RAM region to be used for the process stack. This is the stack used by
@ -44,14 +74,16 @@ REGION_ALIAS("PROCESS_STACK_RAM", ram0);
/* RAM region to be used for data segment.*/ /* RAM region to be used for data segment.*/
REGION_ALIAS("DATA_RAM", ram0); REGION_ALIAS("DATA_RAM", ram0);
REGION_ALIAS("DATA_RAM_LMA", flash0);
/* RAM region to be used for BSS segment.*/ /* RAM region to be used for BSS segment.*/
REGION_ALIAS("BSS_RAM", ram0); REGION_ALIAS("BSS_RAM", ram0);
/* RAM region to be used for BSS segment.*/ /* RAM region to be used for the default heap.*/
REGION_ALIAS("HEAP_RAM", ram0); REGION_ALIAS("HEAP_RAM", ram0);
/* RAM region to be used for SDRAM segment.*/ /* RAM region to be used for SDRAM segment.*/
REGION_ALIAS("SDRAM_RAM", ram7); REGION_ALIAS("SDRAM_RAM", ram7);
/* Generic rules inclusion.*/
INCLUDE rules.ld INCLUDE rules.ld

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,10 @@
* @{ * @{
*/ */
#ifndef _CHCONF_H_ #ifndef CHCONF_H
#define _CHCONF_H_ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
/*===========================================================================*/ /*===========================================================================*/
/** /**
@ -349,12 +351,18 @@
/** /**
* @brief Debug option, trace buffer. * @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is * @details If enabled then the trace buffer is activated.
* activated.
* *
* @note The default is @p FALSE. * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_ENABLE_TRACE TRUE #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
/**
* @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_DISABLED.
*/
#define CH_DBG_TRACE_BUFFER_SIZE 128
/** /**
* @brief Debug option, stack checks. * @brief Debug option, stack checks.
@ -419,10 +427,6 @@
/** /**
* @brief Threads finalization hook. * @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API. * @details User finalization code added to the @p chThdExit() API.
*
* @note It is inserted into lock zone.
* @note It is also invoked when the threads simply return in order to
* terminate.
*/ */
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ #define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \ /* Add threads finalization code here.*/ \
@ -436,6 +440,20 @@
/* Context switch code here.*/ \ /* Context switch code here.*/ \
} }
/**
* @brief ISR enter hook.
*/
#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
/* IRQ prologue code here.*/ \
}
/**
* @brief ISR exit hook.
*/
#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
/* IRQ epilogue code here.*/ \
}
/** /**
* @brief Idle thread enter hook. * @brief Idle thread enter hook.
* @note This hook is invoked within a critical zone, no OS functions * @note This hook is invoked within a critical zone, no OS functions
@ -443,6 +461,7 @@
* @note This macro can be used to activate a power saving mode. * @note This macro can be used to activate a power saving mode.
*/ */
#define CH_CFG_IDLE_ENTER_HOOK() { \ #define CH_CFG_IDLE_ENTER_HOOK() { \
/* Idle-enter code here.*/ \
} }
/** /**
@ -452,6 +471,7 @@
* @note This macro can be used to deactivate a power saving mode. * @note This macro can be used to deactivate a power saving mode.
*/ */
#define CH_CFG_IDLE_LEAVE_HOOK() { \ #define CH_CFG_IDLE_LEAVE_HOOK() { \
/* Idle-leave code here.*/ \
} }
/** /**
@ -480,12 +500,21 @@
/* System halt code here.*/ \ /* System halt code here.*/ \
} }
/**
* @brief Trace hook.
* @details This hook is invoked each time a new record is written in the
* trace buffer.
*/
#define CH_CFG_TRACE_HOOK(tep) { \
/* Trace code here.*/ \
}
/** @} */ /** @} */
/*===========================================================================*/ /*===========================================================================*/
/* Port-specific settings (override port settings defaulted in chcore.h). */ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/ /*===========================================================================*/
#endif /* _CHCONF_H_ */ #endif /* CHCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _HALCONF_H_ #ifndef HALCONF_H
#define _HALCONF_H_ #define HALCONF_H
#include "mcuconf.h" #include "mcuconf.h"
@ -294,7 +294,7 @@
* @brief Serial buffers size. * @brief Serial buffers size.
* @details Configuration parameter, you can change the depth of the queue * @details Configuration parameter, you can change the depth of the queue
* buffers depending on the requirements of your application. * buffers depending on the requirements of your application.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 16 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
@ -309,13 +309,21 @@
* @brief Serial over USB buffers size. * @brief Serial over USB buffers size.
* @details Configuration parameter, the buffer size must be a multiple of * @details Configuration parameter, the buffer size must be a multiple of
* the USB data endpoint maximum packet size. * the USB data endpoint maximum packet size.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 256 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_SIZE 256 #define SERIAL_USB_BUFFERS_SIZE 256
#endif #endif
/**
* @brief Serial over USB number of buffers.
* @note The default is 2 buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_NUMBER 2
#endif
/*===========================================================================*/ /*===========================================================================*/
/* SPI driver related settings. */ /* SPI driver related settings. */
/*===========================================================================*/ /*===========================================================================*/
@ -336,12 +344,44 @@
#define SPI_USE_MUTUAL_EXCLUSION TRUE #define SPI_USE_MUTUAL_EXCLUSION TRUE
#endif #endif
/*===========================================================================*/
/* UART driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
#define UART_USE_WAIT FALSE
#endif
/**
* @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define UART_USE_MUTUAL_EXCLUSION FALSE
#endif
/*===========================================================================*/
/* USB driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
#define USB_USE_WAIT FALSE
#endif
/*===========================================================================*/ /*===========================================================================*/
/* Community drivers' includes */ /* Community drivers' includes */
/*===========================================================================*/ /*===========================================================================*/
#include "halconf_community.h" #include "halconf_community.h"
#endif /* _HALCONF_H_ */ #endif /* HALCONF_H */
/** @} */ /** @} */

View File

@ -16,18 +16,17 @@
#include "ch.h" #include "ch.h"
#include "hal.h" #include "hal.h"
#include "test.h"
#include "chprintf.h" #include "chprintf.h"
#include "shell.h" #include "shell.h"
#if HAL_USE_SERIAL_USB #if (HAL_USE_SERIAL_USB == TRUE)
#include "usbcfg.h" #include "usbcfg.h"
#endif #endif
#include "fsmc_sdram.h" #include "hal_fsmc_sdram.h"
#include "ili9341.h" #include "ili9341.h"
#include "stm32_ltdc.h" #include "hal_stm32_ltdc.h"
#include "stm32_dma2d.h" #include "hal_stm32_dma2d.h"
#include "res/wolf3d_vgagraph_chunk87.h" #include "res/wolf3d_vgagraph_chunk87.h"
@ -474,7 +473,7 @@ static void dma2d_test(void) {
/* Command line related. */ /* Command line related. */
/*===========================================================================*/ /*===========================================================================*/
#if HAL_USE_SERIAL_USB #if (HAL_USE_SERIAL_USB == TRUE)
/* Virtual serial port over USB.*/ /* Virtual serial port over USB.*/
SerialUSBDriver SDU1; SerialUSBDriver SDU1;
#endif #endif
@ -482,57 +481,6 @@ SerialUSBDriver SDU1;
#define SHELL_WA_SIZE THD_WORKING_AREA_SIZE(2048) #define SHELL_WA_SIZE THD_WORKING_AREA_SIZE(2048)
#define TEST_WA_SIZE THD_WORKING_AREA_SIZE(256) #define TEST_WA_SIZE THD_WORKING_AREA_SIZE(256)
static void cmd_mem(BaseSequentialStream *chp, int argc, char *argv[]) {
size_t n, size;
(void)argv;
if (argc > 0) {
chprintf(chp, "Usage: mem\r\n");
return;
}
n = chHeapStatus(NULL, &size);
chprintf(chp, "core free memory : %u bytes\r\n", chCoreGetStatusX());
chprintf(chp, "heap fragments : %u\r\n", n);
chprintf(chp, "heap free total : %u bytes\r\n", size);
}
static void cmd_threads(BaseSequentialStream *chp, int argc, char *argv[]) {
static const char *states[] = {CH_STATE_NAMES};
thread_t *tp;
(void)argv;
if (argc > 0) {
chprintf(chp, "Usage: threads\r\n");
return;
}
chprintf(chp, " addr stack prio refs state time\r\n");
tp = chRegFirstThread();
do {
chprintf(chp, "%08lx %08lx %4lu %4lu %9s\r\n",
(uint32_t)tp, (uint32_t)tp->p_ctx.r13,
(uint32_t)tp->p_prio, (uint32_t)(tp->p_refs - 1),
states[tp->p_state]);
tp = chRegNextThread(tp);
} while (tp != NULL);
}
static void cmd_test(BaseSequentialStream *chp, int argc, char *argv[]) {
thread_t *tp;
(void)argv;
if (argc > 0) {
chprintf(chp, "Usage: test\r\n");
return;
}
tp = chThdCreateFromHeap(NULL, TEST_WA_SIZE, chThdGetPriorityX(),
TestThread, chp);
if (tp == NULL) {
chprintf(chp, "out of memory\r\n");
return;
}
chThdWait(tp);
}
static void cmd_reset(BaseSequentialStream *chp, int argc, char *argv[]) { static void cmd_reset(BaseSequentialStream *chp, int argc, char *argv[]) {
(void)argv; (void)argv;
if (argc > 0) { if (argc > 0) {
@ -546,15 +494,12 @@ static void cmd_reset(BaseSequentialStream *chp, int argc, char *argv[]) {
} }
static const ShellCommand commands[] = { static const ShellCommand commands[] = {
{"mem", cmd_mem},
{"threads", cmd_threads},
{"test", cmd_test},
{"reset", cmd_reset}, {"reset", cmd_reset},
{NULL, NULL} {NULL, NULL}
}; };
static const ShellConfig shell_cfg1 = { static const ShellConfig shell_cfg1 = {
#if HAL_USE_SERIAL_USB #if (HAL_USE_SERIAL_USB == TRUE)
(BaseSequentialStream *)&SDU1, (BaseSequentialStream *)&SDU1,
#else #else
(BaseSequentialStream *)&SD1, (BaseSequentialStream *)&SD1,
@ -587,7 +532,7 @@ int main(void) {
*/ */
shellInit(); shellInit();
#if HAL_USE_SERIAL_USB #if (HAL_USE_SERIAL_USB == TRUE)
/* /*
* Initializes a serial-over-USB CDC driver. * Initializes a serial-over-USB CDC driver.
*/ */
@ -648,13 +593,13 @@ int main(void) {
*/ */
while (true) { while (true) {
if (!shelltp) { if (!shelltp) {
#if HAL_USE_SERIAL_USB #if (HAL_USE_SERIAL_USB == TRUE)
if (SDU1.config->usbp->state == USB_ACTIVE) { if (SDU1.config->usbp->state == USB_ACTIVE) {
/* Spawns a new shell.*/ /* Spawns a new shell.*/
shelltp = shellCreate(&shell_cfg1, SHELL_WA_SIZE, NORMALPRIO); shelltp = chThdCreateFromHeap(NULL, SHELL_WA_SIZE, "shell", NORMALPRIO, shellThread, (void *) &shell_cfg1);
} }
#else #else
shelltp = shellCreate(&shell_cfg1, SHELL_WA_SIZE, NORMALPRIO); shelltp = chThdCreateFromHeap(NULL, SHELL_WA_SIZE, "shell", NORMALPRIO, shellThread, (void *) &shell_cfg1);
#endif #endif
} }
else { else {

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -14,8 +14,8 @@
limitations under the License. limitations under the License.
*/ */
#ifndef _MCUCONF_H_ #ifndef MCUCONF_H
#define _MCUCONF_H_ #define MCUCONF_H
/* /*
* STM32F4xx drivers configuration. * STM32F4xx drivers configuration.
@ -175,6 +175,21 @@
#define STM32_I2C_I2C3_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
/*
* I2S driver system settings.
*/
#define STM32_I2S_USE_SPI2 FALSE
#define STM32_I2S_USE_SPI3 FALSE
#define STM32_I2S_SPI2_IRQ_PRIORITY 10
#define STM32_I2S_SPI3_IRQ_PRIORITY 10
#define STM32_I2S_SPI2_DMA_PRIORITY 1
#define STM32_I2S_SPI3_DMA_PRIORITY 1
#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
/* /*
* ICU driver system settings. * ICU driver system settings.
*/ */
@ -339,6 +354,11 @@
#define STM32_USB_OTG_THREAD_STACK_SIZE 128 #define STM32_USB_OTG_THREAD_STACK_SIZE 128
#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 #define STM32_USB_OTGFIFO_FILL_BASEPRI 0
/*
* WDG driver system settings.
*/
#define STM32_WDG_USE_IWDG FALSE
/* /*
* LTDC driver system settings. * LTDC driver system settings.
*/ */
@ -357,4 +377,4 @@
*/ */
#include "mcuconf_community.h" #include "mcuconf_community.h"
#endif /* _MCUCONF_H_ */ #endif /* MCUCONF_H */

View File

@ -1,6 +1,6 @@
#include <ch.h> #include <ch.h>
#include <hal.h> #include <hal.h>
#include <stm32_ltdc.h> #include <hal_stm32_ltdc.h>
const ltdc_color_t wolf3d_palette[256] __attribute__((aligned(4))) = { const ltdc_color_t wolf3d_palette[256] __attribute__((aligned(4))) = {
0xFF000000, /* 0x00 */ 0xFF000000, /* 0x00 */

View File

@ -69,7 +69,7 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
USE_EXCEPTIONS_STACKSIZE = 0x400 USE_EXCEPTIONS_STACKSIZE = 0x400
endif endif
# Enables the use of FPU on Cortex-M4 (no, softfp, hard). # Enables the use of FPU (no, softfp, hard).
ifeq ($(USE_FPU),) ifeq ($(USE_FPU),)
USE_FPU = no USE_FPU = no
endif endif
@ -89,7 +89,7 @@ PROJECT = ch
CHIBIOS = ../../../../ChibiOS-RT CHIBIOS = ../../../../ChibiOS-RT
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
# Startup files. # Startup files.
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk
# HAL-OSAL files (optional). # HAL-OSAL files (optional).
include $(CHIBIOS_CONTRIB)/os/hal/hal.mk include $(CHIBIOS_CONTRIB)/os/hal/hal.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/STM32/STM32F4xx/platform.mk include $(CHIBIOS_CONTRIB)/os/hal/ports/STM32/STM32F4xx/platform.mk
@ -97,9 +97,11 @@ include $(CHIBIOS)/os/hal/boards/ST_STM32F429I_DISCOVERY/board.mk
include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/hal/osal/rt/osal.mk
# RTOS files (optional). # RTOS files (optional).
include $(CHIBIOS)/os/rt/rt.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
# Other files (optional). # Other files (optional).
include $(CHIBIOS)/test/rt/test.mk include $(CHIBIOS)/test/rt/test.mk
include $(CHIBIOS)/os/hal/lib/streams/streams.mk
include $(CHIBIOS)/os/various/shell/shell.mk
# Define linker script file here # Define linker script file here
LDSCRIPT = $(STARTUPLD)/STM32F429xI.ld LDSCRIPT = $(STARTUPLD)/STM32F429xI.ld
@ -114,13 +116,11 @@ CSRC = $(STARTUPSRC) \
$(PLATFORMSRC) \ $(PLATFORMSRC) \
$(BOARDSRC) \ $(BOARDSRC) \
$(TESTSRC) \ $(TESTSRC) \
$(CHIBIOS)/os/various/shell.c \ $(STREAMSSRC) \
$(CHIBIOS)/os/hal/lib/streams/memstreams.c \ $(SHELLSRC) \
$(CHIBIOS)/os/hal/lib/streams/chprintf.c \
$(CHIBIOS_CONTRIB)/os/various/tribuf.c \ $(CHIBIOS_CONTRIB)/os/various/tribuf.c \
./usbcfg.c \ usbcfg.c \
./main.c \ main.c
# eol
# C++ sources that can be compiled in ARM or THUMB mode depending on the global # C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting. # setting.
@ -153,10 +153,9 @@ ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
INCDIR = $(CHIBIOS)/os/license \ INCDIR = $(CHIBIOS)/os/license \
$(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
$(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
$(STREAMSINC) $(SHELLINC) \
$(CHIBIOS)/os/various \ $(CHIBIOS)/os/various \
$(CHIBIOS)/os/hal/lib/streams \ $(CHIBIOS_CONTRIB)/os/various
$(CHIBIOS_CONTRIB)/os/various \
# eol
# #
# Project, sources and paths # Project, sources and paths
@ -192,10 +191,10 @@ AOPT =
TOPT = -mthumb -DTHUMB TOPT = -mthumb -DTHUMB
# Define C warning options here # Define C warning options here
CWARN = -Wall -Wextra -Wstrict-prototypes CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
# Define C++ warning options here # Define C++ warning options here
CPPWARN = -Wall -Wextra CPPWARN = -Wall -Wextra -Wundef
# #
# Compiler settings # Compiler settings
@ -224,5 +223,5 @@ ULIBS =
# End of user defines # End of user defines
############################################################################## ##############################################################################
RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
include $(RULESPATH)/rules.mk include $(RULESPATH)/rules.mk

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,10 @@
* @{ * @{
*/ */
#ifndef _CHCONF_H_ #ifndef CHCONF_H
#define _CHCONF_H_ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
/*===========================================================================*/ /*===========================================================================*/
/** /**
@ -349,12 +351,18 @@
/** /**
* @brief Debug option, trace buffer. * @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is * @details If enabled then the trace buffer is activated.
* activated.
* *
* @note The default is @p FALSE. * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_ENABLE_TRACE TRUE #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
/**
* @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_DISABLED.
*/
#define CH_DBG_TRACE_BUFFER_SIZE 128
/** /**
* @brief Debug option, stack checks. * @brief Debug option, stack checks.
@ -419,10 +427,6 @@
/** /**
* @brief Threads finalization hook. * @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API. * @details User finalization code added to the @p chThdExit() API.
*
* @note It is inserted into lock zone.
* @note It is also invoked when the threads simply return in order to
* terminate.
*/ */
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ #define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \ /* Add threads finalization code here.*/ \
@ -436,6 +440,20 @@
/* Context switch code here.*/ \ /* Context switch code here.*/ \
} }
/**
* @brief ISR enter hook.
*/
#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
/* IRQ prologue code here.*/ \
}
/**
* @brief ISR exit hook.
*/
#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
/* IRQ epilogue code here.*/ \
}
/** /**
* @brief Idle thread enter hook. * @brief Idle thread enter hook.
* @note This hook is invoked within a critical zone, no OS functions * @note This hook is invoked within a critical zone, no OS functions
@ -443,6 +461,7 @@
* @note This macro can be used to activate a power saving mode. * @note This macro can be used to activate a power saving mode.
*/ */
#define CH_CFG_IDLE_ENTER_HOOK() { \ #define CH_CFG_IDLE_ENTER_HOOK() { \
/* Idle-enter code here.*/ \
} }
/** /**
@ -452,6 +471,7 @@
* @note This macro can be used to deactivate a power saving mode. * @note This macro can be used to deactivate a power saving mode.
*/ */
#define CH_CFG_IDLE_LEAVE_HOOK() { \ #define CH_CFG_IDLE_LEAVE_HOOK() { \
/* Idle-leave code here.*/ \
} }
/** /**
@ -480,6 +500,15 @@
/* System halt code here.*/ \ /* System halt code here.*/ \
} }
/**
* @brief Trace hook.
* @details This hook is invoked each time a new record is written in the
* trace buffer.
*/
#define CH_CFG_TRACE_HOOK(tep) { \
/* Trace code here.*/ \
}
/** @} */ /** @} */
/*===========================================================================*/ /*===========================================================================*/
@ -488,6 +517,6 @@
#define TRIBUF_USE_WAIT TRUE #define TRIBUF_USE_WAIT TRUE
#endif /* _CHCONF_H_ */ #endif /* CHCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _HALCONF_H_ #ifndef HALCONF_H
#define _HALCONF_H_ #define HALCONF_H
#include "mcuconf.h" #include "mcuconf.h"
@ -294,7 +294,7 @@
* @brief Serial buffers size. * @brief Serial buffers size.
* @details Configuration parameter, you can change the depth of the queue * @details Configuration parameter, you can change the depth of the queue
* buffers depending on the requirements of your application. * buffers depending on the requirements of your application.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 16 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
@ -309,13 +309,21 @@
* @brief Serial over USB buffers size. * @brief Serial over USB buffers size.
* @details Configuration parameter, the buffer size must be a multiple of * @details Configuration parameter, the buffer size must be a multiple of
* the USB data endpoint maximum packet size. * the USB data endpoint maximum packet size.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 256 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_SIZE 256 #define SERIAL_USB_BUFFERS_SIZE 256
#endif #endif
/**
* @brief Serial over USB number of buffers.
* @note The default is 2 buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_NUMBER 2
#endif
/*===========================================================================*/ /*===========================================================================*/
/* SPI driver related settings. */ /* SPI driver related settings. */
/*===========================================================================*/ /*===========================================================================*/
@ -336,12 +344,44 @@
#define SPI_USE_MUTUAL_EXCLUSION TRUE #define SPI_USE_MUTUAL_EXCLUSION TRUE
#endif #endif
/*===========================================================================*/
/* UART driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
#define UART_USE_WAIT FALSE
#endif
/**
* @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define UART_USE_MUTUAL_EXCLUSION FALSE
#endif
/*===========================================================================*/
/* USB driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
#define USB_USE_WAIT FALSE
#endif
/*===========================================================================*/ /*===========================================================================*/
/* Community drivers' includes */ /* Community drivers' includes */
/*===========================================================================*/ /*===========================================================================*/
#include "halconf_community.h" #include "halconf_community.h"
#endif /* _HALCONF_H_ */ #endif /* HALCONF_H */
/** @} */ /** @} */

View File

@ -16,7 +16,6 @@
#include "ch.h" #include "ch.h"
#include "hal.h" #include "hal.h"
#include "test.h"
#include "chprintf.h" #include "chprintf.h"
#include "shell.h" #include "shell.h"
@ -197,63 +196,6 @@ static THD_FUNCTION(writer_thread, arg) {
#define SHELL_WA_SIZE THD_WORKING_AREA_SIZE(2048) #define SHELL_WA_SIZE THD_WORKING_AREA_SIZE(2048)
#define TEST_WA_SIZE THD_WORKING_AREA_SIZE(256) #define TEST_WA_SIZE THD_WORKING_AREA_SIZE(256)
static void cmd_mem(BaseSequentialStream *chp, int argc, char *argv[]) {
size_t n, size;
(void)argv;
if (argc > 0) {
chprintf(chp, "Usage: mem\r\n");
return;
}
n = chHeapStatus(NULL, &size);
chprintf(chp, "core free memory : %u bytes\r\n", chCoreGetStatusX());
chprintf(chp, "heap fragments : %u\r\n", n);
chprintf(chp, "heap free total : %u bytes\r\n", size);
}
static void cmd_threads(BaseSequentialStream *chp, int argc, char *argv[]) {
static const char *states[] = {CH_STATE_NAMES};
thread_t *tp;
(void)argv;
if (argc > 0) {
chprintf(chp, "Usage: threads\r\n");
return;
}
chprintf(chp, " addr stack prio refs state name\r\n");
tp = chRegFirstThread();
do {
chprintf(chp, "%08lx %08lx %4lu %4lu %9s %s\r\n",
(uint32_t)tp, (uint32_t)tp->p_ctx.r13,
(uint32_t)tp->p_prio, (uint32_t)(tp->p_refs - 1),
states[tp->p_state], tp->p_name);
tp = chRegNextThread(tp);
} while (tp != NULL);
}
static void cmd_test(BaseSequentialStream *chp, int argc, char *argv[]) {
thread_t *tp;
(void)argv;
if (argc > 0) {
chprintf(chp, "Usage: test\r\n");
return;
}
tp = chThdCreateFromHeap(NULL, TEST_WA_SIZE, chThdGetPriorityX(),
TestThread, chp);
if (tp == NULL) {
chprintf(chp, "out of memory\r\n");
return;
}
chThdWait(tp);
}
static void cmd_reset(BaseSequentialStream *chp, int argc, char *argv[]) { static void cmd_reset(BaseSequentialStream *chp, int argc, char *argv[]) {
(void)argv; (void)argv;
@ -444,9 +386,6 @@ static void cmd_params(BaseSequentialStream *chp, int argc, char *argv[]) {
} }
static const ShellCommand commands[] = { static const ShellCommand commands[] = {
{"mem", cmd_mem},
{"threads", cmd_threads},
{"test", cmd_test},
{"reset", cmd_reset}, {"reset", cmd_reset},
{"run", cmd_run}, {"run", cmd_run},
{"stop", cmd_stop}, {"stop", cmd_stop},
@ -530,10 +469,10 @@ int main(void) {
#if (HAL_USE_SERIAL_USB == TRUE) #if (HAL_USE_SERIAL_USB == TRUE)
if (SDU1.config->usbp->state == USB_ACTIVE) { if (SDU1.config->usbp->state == USB_ACTIVE) {
/* Spawns a new shell.*/ /* Spawns a new shell.*/
shelltp = shellCreate(&shell_cfg1, SHELL_WA_SIZE, NORMALPRIO); shelltp = chThdCreateFromHeap(NULL, SHELL_WA_SIZE, "shell", NORMALPRIO, shellThread, (void *) &shell_cfg1);
} }
#else #else
shelltp = shellCreate(&shell_cfg1, SHELL_WA_SIZE, NORMALPRIO); shelltp = chThdCreateFromHeap(NULL, SHELL_WA_SIZE, "shell", NORMALPRIO, shellThread, (void *) &shell_cfg1);
#endif #endif
} }
else { else {

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -14,8 +14,8 @@
limitations under the License. limitations under the License.
*/ */
#ifndef _MCUCONF_H_ #ifndef MCUCONF_H
#define _MCUCONF_H_ #define MCUCONF_H
/* /*
* STM32F4xx drivers configuration. * STM32F4xx drivers configuration.
@ -175,6 +175,21 @@
#define STM32_I2C_I2C3_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
/*
* I2S driver system settings.
*/
#define STM32_I2S_USE_SPI2 FALSE
#define STM32_I2S_USE_SPI3 FALSE
#define STM32_I2S_SPI2_IRQ_PRIORITY 10
#define STM32_I2S_SPI3_IRQ_PRIORITY 10
#define STM32_I2S_SPI2_DMA_PRIORITY 1
#define STM32_I2S_SPI3_DMA_PRIORITY 1
#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
/* /*
* ICU driver system settings. * ICU driver system settings.
*/ */
@ -339,9 +354,14 @@
#define STM32_USB_OTG_THREAD_STACK_SIZE 128 #define STM32_USB_OTG_THREAD_STACK_SIZE 128
#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 #define STM32_USB_OTGFIFO_FILL_BASEPRI 0
/*
* WDG driver system settings.
*/
#define STM32_WDG_USE_IWDG FALSE
/* /*
* Header for community drivers. * Header for community drivers.
*/ */
#include "mcuconf_community.h" #include "mcuconf_community.h"
#endif /* _MCUCONF_H_ */ #endif /* MCUCONF_H */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _CHCONF_H_ #ifndef CHCONF_H
#define _CHCONF_H_ #define CHCONF_H
#define _CHIBIOS_RT_CONF_ #define _CHIBIOS_RT_CONF_
@ -351,17 +351,16 @@
/** /**
* @brief Debug option, trace buffer. * @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is * @details If enabled then the trace buffer is activated.
* activated.
* *
* @note The default is @p CH_DBG_TRACE_MASK_NONE. * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
/** /**
* @brief Trace buffer entries. * @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_NONE. * different from @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_BUFFER_SIZE 128 #define CH_DBG_TRACE_BUFFER_SIZE 128
@ -516,6 +515,6 @@
/* Port-specific settings (override port settings defaulted in chcore.h). */ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/ /*===========================================================================*/
#endif /* _CHCONF_H_ */ #endif /* CHCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _CHCONF_H_ #ifndef CHCONF_H
#define _CHCONF_H_ #define CHCONF_H
#define _CHIBIOS_RT_CONF_ #define _CHIBIOS_RT_CONF_
@ -351,17 +351,16 @@
/** /**
* @brief Debug option, trace buffer. * @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is * @details If enabled then the trace buffer is activated.
* activated.
* *
* @note The default is @p CH_DBG_TRACE_MASK_NONE. * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
/** /**
* @brief Trace buffer entries. * @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_NONE. * different from @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_BUFFER_SIZE 128 #define CH_DBG_TRACE_BUFFER_SIZE 128
@ -516,6 +515,6 @@
/* Port-specific settings (override port settings defaulted in chcore.h). */ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/ /*===========================================================================*/
#endif /* _CHCONF_H_ */ #endif /* CHCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _CHCONF_H_ #ifndef CHCONF_H
#define _CHCONF_H_ #define CHCONF_H
#define _CHIBIOS_RT_CONF_ #define _CHIBIOS_RT_CONF_
@ -351,17 +351,16 @@
/** /**
* @brief Debug option, trace buffer. * @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is * @details If enabled then the trace buffer is activated.
* activated.
* *
* @note The default is @p CH_DBG_TRACE_MASK_NONE. * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_ALL
/** /**
* @brief Trace buffer entries. * @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_NONE. * different from @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_BUFFER_SIZE 128 #define CH_DBG_TRACE_BUFFER_SIZE 128
@ -516,6 +515,6 @@
/* Port-specific settings (override port settings defaulted in chcore.h). */ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/ /*===========================================================================*/
#endif /* _CHCONF_H_ */ #endif /* CHCONF_H */
/** @} */ /** @} */

View File

@ -43,6 +43,12 @@ ifeq ($(USE_VERBOSE_COMPILE),)
USE_VERBOSE_COMPILE = no USE_VERBOSE_COMPILE = no
endif endif
# If enabled, this option makes the build process faster by not compiling
# modules not used in the current configuration.
ifeq ($(USE_SMART_BUILD),)
USE_SMART_BUILD = no
endif
# #
# Build global options # Build global options
############################################################################## ##############################################################################
@ -63,7 +69,7 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
USE_EXCEPTIONS_STACKSIZE = 0x400 USE_EXCEPTIONS_STACKSIZE = 0x400
endif endif
# Enables the use of FPU on Cortex-M4 (no, softfp, hard). # Enables the use of FPU (no, softfp, hard).
ifeq ($(USE_FPU),) ifeq ($(USE_FPU),)
USE_FPU = no USE_FPU = no
endif endif
@ -133,9 +139,11 @@ TCSRC =
TCPPSRC = TCPPSRC =
# List ASM source files here # List ASM source files here
ASMSRC = $(STARTUPASM) $(PORTASM) $(OSALASM) ASMSRC =
ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
INCDIR = $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ INCDIR = $(CHIBIOS)/os/license \
$(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
$(HALINC) $(PLATFORMINC) $(BOARDINC) \ $(HALINC) $(PLATFORMINC) $(BOARDINC) \
$(CHIBIOS)/os/various $(CHIBIOS)/os/various
@ -173,10 +181,10 @@ AOPT =
TOPT = -mthumb -DTHUMB TOPT = -mthumb -DTHUMB
# Define C warning options here # Define C warning options here
CWARN = -Wall -Wextra -Wstrict-prototypes -Wundef CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
# Define C++ warning options here # Define C++ warning options here
CPPWARN = -Wall -Wextra -Wundef CPPWARN = -Wall -Wextra
# #
# Compiler settings # Compiler settings

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _CHCONF_H_ #ifndef CHCONF_H
#define _CHCONF_H_ #define CHCONF_H
#define _CHIBIOS_RT_CONF_ #define _CHIBIOS_RT_CONF_
@ -351,17 +351,16 @@
/** /**
* @brief Debug option, trace buffer. * @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is * @details If enabled then the trace buffer is activated.
* activated.
* *
* @note The default is @p CH_DBG_TRACE_MASK_NONE. * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_NONE #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
/** /**
* @brief Trace buffer entries. * @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_NONE. * different from @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_BUFFER_SIZE 128 #define CH_DBG_TRACE_BUFFER_SIZE 128
@ -516,6 +515,6 @@
/* Port-specific settings (override port settings defaulted in chcore.h). */ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/ /*===========================================================================*/
#endif /* _CHCONF_H_ */ #endif /* CHCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006-2014 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _HALCONF_H_ #ifndef HALCONF_H
#define _HALCONF_H_ #define HALCONF_H
#include "mcuconf.h" #include "mcuconf.h"
@ -44,13 +44,6 @@
#define HAL_USE_ADC FALSE #define HAL_USE_ADC FALSE
#endif #endif
/**
* @brief Enables the DAC subsystem.
*/
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
#define HAL_USE_DAC FALSE
#endif
/** /**
* @brief Enables the CAN subsystem. * @brief Enables the CAN subsystem.
*/ */
@ -58,6 +51,13 @@
#define HAL_USE_CAN FALSE #define HAL_USE_CAN FALSE
#endif #endif
/**
* @brief Enables the DAC subsystem.
*/
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
#define HAL_USE_DAC FALSE
#endif
/** /**
* @brief Enables the EXT subsystem. * @brief Enables the EXT subsystem.
*/ */
@ -294,7 +294,7 @@
* @brief Serial buffers size. * @brief Serial buffers size.
* @details Configuration parameter, you can change the depth of the queue * @details Configuration parameter, you can change the depth of the queue
* buffers depending on the requirements of your application. * buffers depending on the requirements of your application.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 16 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
@ -309,13 +309,21 @@
* @brief Serial over USB buffers size. * @brief Serial over USB buffers size.
* @details Configuration parameter, the buffer size must be a multiple of * @details Configuration parameter, the buffer size must be a multiple of
* the USB data endpoint maximum packet size. * the USB data endpoint maximum packet size.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 256 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_SIZE 256 #define SERIAL_USB_BUFFERS_SIZE 256
#endif #endif
/**
* @brief Serial over USB number of buffers.
* @note The default is 2 buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_NUMBER 2
#endif
/*===========================================================================*/ /*===========================================================================*/
/* SPI driver related settings. */ /* SPI driver related settings. */
/*===========================================================================*/ /*===========================================================================*/
@ -336,12 +344,44 @@
#define SPI_USE_MUTUAL_EXCLUSION TRUE #define SPI_USE_MUTUAL_EXCLUSION TRUE
#endif #endif
/*===========================================================================*/
/* UART driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
#define UART_USE_WAIT FALSE
#endif
/**
* @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define UART_USE_MUTUAL_EXCLUSION FALSE
#endif
/*===========================================================================*/
/* USB driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
#define USB_USE_WAIT FALSE
#endif
/*===========================================================================*/ /*===========================================================================*/
/* Community drivers's includes */ /* Community drivers's includes */
/*===========================================================================*/ /*===========================================================================*/
#include "halconf_community.h" #include "halconf_community.h"
#endif /* _HALCONF_H_ */ #endif /* HALCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006-2014 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -14,6 +14,9 @@
limitations under the License. limitations under the License.
*/ */
#ifndef MCUCONF_H
#define MCUCONF_H
/* /*
* STM32F4xx drivers configuration. * STM32F4xx drivers configuration.
* The following settings override the default settings present in * The following settings override the default settings present in
@ -87,6 +90,19 @@
#define STM32_CAN_CAN1_IRQ_PRIORITY 11 #define STM32_CAN_CAN1_IRQ_PRIORITY 11
#define STM32_CAN_CAN2_IRQ_PRIORITY 11 #define STM32_CAN_CAN2_IRQ_PRIORITY 11
/*
* DAC driver system settings.
*/
#define STM32_DAC_DUAL_MODE FALSE
#define STM32_DAC_USE_DAC1_CH1 FALSE
#define STM32_DAC_USE_DAC1_CH2 FALSE
#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH1_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
#define STM32_DAC_DAC1_CH2_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
/* /*
* EXT driver system settings. * EXT driver system settings.
*/ */
@ -154,6 +170,21 @@
#define STM32_I2C_I2C3_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
/*
* I2S driver system settings.
*/
#define STM32_I2S_USE_SPI2 FALSE
#define STM32_I2S_USE_SPI3 FALSE
#define STM32_I2S_SPI2_IRQ_PRIORITY 10
#define STM32_I2S_SPI3_IRQ_PRIORITY 10
#define STM32_I2S_SPI2_DMA_PRIORITY 1
#define STM32_I2S_SPI3_DMA_PRIORITY 1
#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
/* /*
* ICU driver system settings. * ICU driver system settings.
*/ */
@ -303,8 +334,14 @@
#define STM32_USB_OTG_THREAD_STACK_SIZE 128 #define STM32_USB_OTG_THREAD_STACK_SIZE 128
#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 #define STM32_USB_OTGFIFO_FILL_BASEPRI 0
/*
* WDG driver system settings.
*/
#define STM32_WDG_USE_IWDG FALSE
/* /*
* header for community drivers. * header for community drivers.
*/ */
#include "mcuconf_community.h" #include "mcuconf_community.h"
#endif /* MCUCONF_H */

View File

@ -43,6 +43,12 @@ ifeq ($(USE_VERBOSE_COMPILE),)
USE_VERBOSE_COMPILE = no USE_VERBOSE_COMPILE = no
endif endif
# If enabled, this option makes the build process faster by not compiling
# modules not used in the current configuration.
ifeq ($(USE_SMART_BUILD),)
USE_SMART_BUILD = no
endif
# #
# Build global options # Build global options
############################################################################## ##############################################################################
@ -63,7 +69,7 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
USE_EXCEPTIONS_STACKSIZE = 0x400 USE_EXCEPTIONS_STACKSIZE = 0x400
endif endif
# Enables the use of FPU on Cortex-M4 (no, softfp, hard). # Enables the use of FPU (no, softfp, hard).
ifeq ($(USE_FPU),) ifeq ($(USE_FPU),)
USE_FPU = no USE_FPU = no
endif endif
@ -146,7 +152,6 @@ INCDIR = $(CHIBIOS)/os/license \
$(CHIBIOS)/os/various \ $(CHIBIOS)/os/various \
$(CHIBIOS_CONTRIB)/os/various $(CHIBIOS_CONTRIB)/os/various
# #
# Project, sources and paths # Project, sources and paths
############################################################################## ##############################################################################
@ -181,7 +186,7 @@ AOPT =
TOPT = -mthumb -DTHUMB TOPT = -mthumb -DTHUMB
# Define C warning options here # Define C warning options here
CWARN = -Wall -Wextra -Wstrict-prototypes CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
# Define C++ warning options here # Define C++ warning options here
CPPWARN = -Wall -Wextra CPPWARN = -Wall -Wextra

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _CHCONF_H_ #ifndef CHCONF_H
#define _CHCONF_H_ #define CHCONF_H
#define _CHIBIOS_RT_CONF_ #define _CHIBIOS_RT_CONF_
@ -351,17 +351,16 @@
/** /**
* @brief Debug option, trace buffer. * @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is * @details If enabled then the trace buffer is activated.
* activated.
* *
* @note The default is @p CH_DBG_TRACE_MASK_NONE. * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_NONE #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
/** /**
* @brief Trace buffer entries. * @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_NONE. * different from @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_BUFFER_SIZE 128 #define CH_DBG_TRACE_BUFFER_SIZE 128
@ -498,7 +497,7 @@
* the system is halted. * the system is halted.
*/ */
#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ #define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
/* Halt code here.*/ \ /* System halt code here.*/ \
} }
/** /**
@ -516,6 +515,6 @@
/* Port-specific settings (override port settings defaulted in chcore.h). */ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/ /*===========================================================================*/
#endif /* _CHCONF_H_ */ #endif /* CHCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _HALCONF_H_ #ifndef HALCONF_H
#define _HALCONF_H_ #define HALCONF_H
#include "mcuconf.h" #include "mcuconf.h"
@ -44,13 +44,6 @@
#define HAL_USE_ADC TRUE #define HAL_USE_ADC TRUE
#endif #endif
/**
* @brief Enables the DAC subsystem.
*/
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
#define HAL_USE_DAC FALSE
#endif
/** /**
* @brief Enables the CAN subsystem. * @brief Enables the CAN subsystem.
*/ */
@ -58,6 +51,13 @@
#define HAL_USE_CAN FALSE #define HAL_USE_CAN FALSE
#endif #endif
/**
* @brief Enables the DAC subsystem.
*/
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
#define HAL_USE_DAC FALSE
#endif
/** /**
* @brief Enables the EXT subsystem. * @brief Enables the EXT subsystem.
*/ */
@ -294,13 +294,36 @@
* @brief Serial buffers size. * @brief Serial buffers size.
* @details Configuration parameter, you can change the depth of the queue * @details Configuration parameter, you can change the depth of the queue
* buffers depending on the requirements of your application. * buffers depending on the requirements of your application.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 16 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_BUFFERS_SIZE 16 #define SERIAL_BUFFERS_SIZE 16
#endif #endif
/*===========================================================================*/
/* SERIAL_USB driver related setting. */
/*===========================================================================*/
/**
* @brief Serial over USB buffers size.
* @details Configuration parameter, the buffer size must be a multiple of
* the USB data endpoint maximum packet size.
* @note The default is 256 bytes for both the transmission and receive
* buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_SIZE 256
#endif
/**
* @brief Serial over USB number of buffers.
* @note The default is 2 buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_NUMBER 2
#endif
/*===========================================================================*/ /*===========================================================================*/
/* SPI driver related settings. */ /* SPI driver related settings. */
/*===========================================================================*/ /*===========================================================================*/
@ -321,12 +344,44 @@
#define SPI_USE_MUTUAL_EXCLUSION TRUE #define SPI_USE_MUTUAL_EXCLUSION TRUE
#endif #endif
/*===========================================================================*/
/* UART driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
#define UART_USE_WAIT FALSE
#endif
/**
* @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define UART_USE_MUTUAL_EXCLUSION FALSE
#endif
/*===========================================================================*/
/* USB driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
#define USB_USE_WAIT FALSE
#endif
/*===========================================================================*/ /*===========================================================================*/
/* Community drivers's includes */ /* Community drivers's includes */
/*===========================================================================*/ /*===========================================================================*/
#include "halconf_community.h" #include "halconf_community.h"
#endif /* _HALCONF_H_ */ #endif /* HALCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -14,6 +14,9 @@
limitations under the License. limitations under the License.
*/ */
#ifndef MCUCONF_H
#define MCUCONF_H
/* /*
* STM32F4xx drivers configuration. * STM32F4xx drivers configuration.
* The following settings override the default settings present in * The following settings override the default settings present in
@ -87,6 +90,19 @@
#define STM32_CAN_CAN1_IRQ_PRIORITY 11 #define STM32_CAN_CAN1_IRQ_PRIORITY 11
#define STM32_CAN_CAN2_IRQ_PRIORITY 11 #define STM32_CAN_CAN2_IRQ_PRIORITY 11
/*
* DAC driver system settings.
*/
#define STM32_DAC_DUAL_MODE FALSE
#define STM32_DAC_USE_DAC1_CH1 FALSE
#define STM32_DAC_USE_DAC1_CH2 FALSE
#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH1_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
#define STM32_DAC_DAC1_CH2_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
/* /*
* EXT driver system settings. * EXT driver system settings.
*/ */
@ -154,6 +170,21 @@
#define STM32_I2C_I2C3_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
/*
* I2S driver system settings.
*/
#define STM32_I2S_USE_SPI2 FALSE
#define STM32_I2S_USE_SPI3 FALSE
#define STM32_I2S_SPI2_IRQ_PRIORITY 10
#define STM32_I2S_SPI3_IRQ_PRIORITY 10
#define STM32_I2S_SPI2_DMA_PRIORITY 1
#define STM32_I2S_SPI3_DMA_PRIORITY 1
#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
/* /*
* ICU driver system settings. * ICU driver system settings.
*/ */
@ -303,7 +334,14 @@
#define STM32_USB_OTG_THREAD_STACK_SIZE 128 #define STM32_USB_OTG_THREAD_STACK_SIZE 128
#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 #define STM32_USB_OTGFIFO_FILL_BASEPRI 0
/*
* WDG driver system settings.
*/
#define STM32_WDG_USE_IWDG FALSE
/* /*
* header for community drivers. * header for community drivers.
*/ */
#include "mcuconf_community.h" #include "mcuconf_community.h"
#endif /* MCUCONF_H */

View File

@ -43,6 +43,12 @@ ifeq ($(USE_VERBOSE_COMPILE),)
USE_VERBOSE_COMPILE = no USE_VERBOSE_COMPILE = no
endif endif
# If enabled, this option makes the build process faster by not compiling
# modules not used in the current configuration.
ifeq ($(USE_SMART_BUILD),)
USE_SMART_BUILD = no
endif
# #
# Build global options # Build global options
############################################################################## ##############################################################################
@ -63,7 +69,7 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
USE_EXCEPTIONS_STACKSIZE = 0x400 USE_EXCEPTIONS_STACKSIZE = 0x400
endif endif
# Enables the use of FPU on Cortex-M4 (no, softfp, hard). # Enables the use of FPU (no, softfp, hard).
ifeq ($(USE_FPU),) ifeq ($(USE_FPU),)
USE_FPU = no USE_FPU = no
endif endif
@ -182,7 +188,7 @@ AOPT =
TOPT = -mthumb -DTHUMB TOPT = -mthumb -DTHUMB
# Define C warning options here # Define C warning options here
CWARN = -Wall -Wextra -Wstrict-prototypes CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
# Define C++ warning options here # Define C++ warning options here
CPPWARN = -Wall -Wextra CPPWARN = -Wall -Wextra

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _CHCONF_H_ #ifndef CHCONF_H
#define _CHCONF_H_ #define CHCONF_H
#define _CHIBIOS_RT_CONF_ #define _CHIBIOS_RT_CONF_
@ -351,17 +351,16 @@
/** /**
* @brief Debug option, trace buffer. * @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is * @details If enabled then the trace buffer is activated.
* activated.
* *
* @note The default is @p CH_DBG_TRACE_MASK_NONE. * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_NONE #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
/** /**
* @brief Trace buffer entries. * @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_NONE. * different from @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_BUFFER_SIZE 128 #define CH_DBG_TRACE_BUFFER_SIZE 128
@ -498,7 +497,7 @@
* the system is halted. * the system is halted.
*/ */
#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ #define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
/* Halt code here.*/ \ /* System halt code here.*/ \
} }
/** /**
@ -516,6 +515,6 @@
/* Port-specific settings (override port settings defaulted in chcore.h). */ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/ /*===========================================================================*/
#endif /* _CHCONF_H_ */ #endif /* CHCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _HALCONF_H_ #ifndef HALCONF_H
#define _HALCONF_H_ #define HALCONF_H
#include "mcuconf.h" #include "mcuconf.h"
@ -51,6 +51,13 @@
#define HAL_USE_CAN FALSE #define HAL_USE_CAN FALSE
#endif #endif
/**
* @brief Enables the DAC subsystem.
*/
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
#define HAL_USE_DAC FALSE
#endif
/** /**
* @brief Enables the EXT subsystem. * @brief Enables the EXT subsystem.
*/ */
@ -287,13 +294,36 @@
* @brief Serial buffers size. * @brief Serial buffers size.
* @details Configuration parameter, you can change the depth of the queue * @details Configuration parameter, you can change the depth of the queue
* buffers depending on the requirements of your application. * buffers depending on the requirements of your application.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 16 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_BUFFERS_SIZE 16 #define SERIAL_BUFFERS_SIZE 16
#endif #endif
/*===========================================================================*/
/* SERIAL_USB driver related setting. */
/*===========================================================================*/
/**
* @brief Serial over USB buffers size.
* @details Configuration parameter, the buffer size must be a multiple of
* the USB data endpoint maximum packet size.
* @note The default is 256 bytes for both the transmission and receive
* buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_SIZE 256
#endif
/**
* @brief Serial over USB number of buffers.
* @note The default is 2 buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_NUMBER 2
#endif
/*===========================================================================*/ /*===========================================================================*/
/* SPI driver related settings. */ /* SPI driver related settings. */
/*===========================================================================*/ /*===========================================================================*/
@ -314,12 +344,44 @@
#define SPI_USE_MUTUAL_EXCLUSION TRUE #define SPI_USE_MUTUAL_EXCLUSION TRUE
#endif #endif
/*===========================================================================*/
/* UART driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
#define UART_USE_WAIT FALSE
#endif
/**
* @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define UART_USE_MUTUAL_EXCLUSION FALSE
#endif
/*===========================================================================*/
/* USB driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
#define USB_USE_WAIT FALSE
#endif
/*===========================================================================*/ /*===========================================================================*/
/* Community drivers's includes */ /* Community drivers's includes */
/*===========================================================================*/ /*===========================================================================*/
#include "halconf_community.h" #include "halconf_community.h"
#endif /* _HALCONF_H_ */ #endif /* HALCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -14,6 +14,9 @@
limitations under the License. limitations under the License.
*/ */
#ifndef MCUCONF_H
#define MCUCONF_H
/* /*
* STM32F4xx drivers configuration. * STM32F4xx drivers configuration.
* The following settings override the default settings present in * The following settings override the default settings present in
@ -87,6 +90,19 @@
#define STM32_CAN_CAN1_IRQ_PRIORITY 11 #define STM32_CAN_CAN1_IRQ_PRIORITY 11
#define STM32_CAN_CAN2_IRQ_PRIORITY 11 #define STM32_CAN_CAN2_IRQ_PRIORITY 11
/*
* DAC driver system settings.
*/
#define STM32_DAC_DUAL_MODE FALSE
#define STM32_DAC_USE_DAC1_CH1 FALSE
#define STM32_DAC_USE_DAC1_CH2 FALSE
#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH1_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
#define STM32_DAC_DAC1_CH2_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
/* /*
* EXT driver system settings. * EXT driver system settings.
*/ */
@ -154,6 +170,21 @@
#define STM32_I2C_I2C3_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
/*
* I2S driver system settings.
*/
#define STM32_I2S_USE_SPI2 FALSE
#define STM32_I2S_USE_SPI3 FALSE
#define STM32_I2S_SPI2_IRQ_PRIORITY 10
#define STM32_I2S_SPI3_IRQ_PRIORITY 10
#define STM32_I2S_SPI2_DMA_PRIORITY 1
#define STM32_I2S_SPI3_DMA_PRIORITY 1
#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
/* /*
* ICU driver system settings. * ICU driver system settings.
*/ */
@ -303,7 +334,14 @@
#define STM32_USB_OTG_THREAD_STACK_SIZE 128 #define STM32_USB_OTG_THREAD_STACK_SIZE 128
#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 #define STM32_USB_OTGFIFO_FILL_BASEPRI 0
/*
* WDG driver system settings.
*/
#define STM32_WDG_USE_IWDG FALSE
/* /*
* header for community drivers. * header for community drivers.
*/ */
#include "mcuconf_community.h" #include "mcuconf_community.h"
#endif /* MCUCONF_H */

View File

@ -43,6 +43,12 @@ ifeq ($(USE_VERBOSE_COMPILE),)
USE_VERBOSE_COMPILE = no USE_VERBOSE_COMPILE = no
endif endif
# If enabled, this option makes the build process faster by not compiling
# modules not used in the current configuration.
ifeq ($(USE_SMART_BUILD),)
USE_SMART_BUILD = no
endif
# #
# Build global options # Build global options
############################################################################## ##############################################################################
@ -63,7 +69,7 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
USE_EXCEPTIONS_STACKSIZE = 0x400 USE_EXCEPTIONS_STACKSIZE = 0x400
endif endif
# Enables the use of FPU on Cortex-M4 (no, softfp, hard). # Enables the use of FPU (no, softfp, hard).
ifeq ($(USE_FPU),) ifeq ($(USE_FPU),)
USE_FPU = no USE_FPU = no
endif endif
@ -182,7 +188,7 @@ AOPT =
TOPT = -mthumb -DTHUMB TOPT = -mthumb -DTHUMB
# Define C warning options here # Define C warning options here
CWARN = -Wall -Wextra -Wstrict-prototypes CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
# Define C++ warning options here # Define C++ warning options here
CPPWARN = -Wall -Wextra CPPWARN = -Wall -Wextra

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _CHCONF_H_ #ifndef CHCONF_H
#define _CHCONF_H_ #define CHCONF_H
#define _CHIBIOS_RT_CONF_ #define _CHIBIOS_RT_CONF_
@ -351,17 +351,16 @@
/** /**
* @brief Debug option, trace buffer. * @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is * @details If enabled then the trace buffer is activated.
* activated.
* *
* @note The default is @p CH_DBG_TRACE_MASK_NONE. * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_NONE #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
/** /**
* @brief Trace buffer entries. * @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_NONE. * different from @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_BUFFER_SIZE 128 #define CH_DBG_TRACE_BUFFER_SIZE 128
@ -498,7 +497,7 @@
* the system is halted. * the system is halted.
*/ */
#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ #define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
/* Halt code here.*/ \ /* System halt code here.*/ \
} }
/** /**
@ -516,6 +515,6 @@
/* Port-specific settings (override port settings defaulted in chcore.h). */ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/ /*===========================================================================*/
#endif /* _CHCONF_H_ */ #endif /* CHCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _HALCONF_H_ #ifndef HALCONF_H
#define _HALCONF_H_ #define HALCONF_H
#include "mcuconf.h" #include "mcuconf.h"
@ -44,13 +44,6 @@
#define HAL_USE_ADC TRUE #define HAL_USE_ADC TRUE
#endif #endif
/**
* @brief Enables the DAC subsystem.
*/
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
#define HAL_USE_DAC FALSE
#endif
/** /**
* @brief Enables the CAN subsystem. * @brief Enables the CAN subsystem.
*/ */
@ -58,6 +51,13 @@
#define HAL_USE_CAN FALSE #define HAL_USE_CAN FALSE
#endif #endif
/**
* @brief Enables the DAC subsystem.
*/
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
#define HAL_USE_DAC FALSE
#endif
/** /**
* @brief Enables the EXT subsystem. * @brief Enables the EXT subsystem.
*/ */
@ -294,13 +294,36 @@
* @brief Serial buffers size. * @brief Serial buffers size.
* @details Configuration parameter, you can change the depth of the queue * @details Configuration parameter, you can change the depth of the queue
* buffers depending on the requirements of your application. * buffers depending on the requirements of your application.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 16 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_BUFFERS_SIZE 16 #define SERIAL_BUFFERS_SIZE 16
#endif #endif
/*===========================================================================*/
/* SERIAL_USB driver related setting. */
/*===========================================================================*/
/**
* @brief Serial over USB buffers size.
* @details Configuration parameter, the buffer size must be a multiple of
* the USB data endpoint maximum packet size.
* @note The default is 256 bytes for both the transmission and receive
* buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_SIZE 256
#endif
/**
* @brief Serial over USB number of buffers.
* @note The default is 2 buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_NUMBER 2
#endif
/*===========================================================================*/ /*===========================================================================*/
/* SPI driver related settings. */ /* SPI driver related settings. */
/*===========================================================================*/ /*===========================================================================*/
@ -321,12 +344,44 @@
#define SPI_USE_MUTUAL_EXCLUSION TRUE #define SPI_USE_MUTUAL_EXCLUSION TRUE
#endif #endif
/*===========================================================================*/
/* UART driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
#define UART_USE_WAIT FALSE
#endif
/**
* @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define UART_USE_MUTUAL_EXCLUSION FALSE
#endif
/*===========================================================================*/
/* USB driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
#define USB_USE_WAIT FALSE
#endif
/*===========================================================================*/ /*===========================================================================*/
/* Community drivers's includes */ /* Community drivers's includes */
/*===========================================================================*/ /*===========================================================================*/
#include "halconf_community.h" #include "halconf_community.h"
#endif /* _HALCONF_H_ */ #endif /* HALCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -14,6 +14,9 @@
limitations under the License. limitations under the License.
*/ */
#ifndef MCUCONF_H
#define MCUCONF_H
/* /*
* STM32F4xx drivers configuration. * STM32F4xx drivers configuration.
* The following settings override the default settings present in * The following settings override the default settings present in
@ -87,6 +90,19 @@
#define STM32_CAN_CAN1_IRQ_PRIORITY 11 #define STM32_CAN_CAN1_IRQ_PRIORITY 11
#define STM32_CAN_CAN2_IRQ_PRIORITY 11 #define STM32_CAN_CAN2_IRQ_PRIORITY 11
/*
* DAC driver system settings.
*/
#define STM32_DAC_DUAL_MODE FALSE
#define STM32_DAC_USE_DAC1_CH1 FALSE
#define STM32_DAC_USE_DAC1_CH2 FALSE
#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH1_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
#define STM32_DAC_DAC1_CH2_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
/* /*
* EXT driver system settings. * EXT driver system settings.
*/ */
@ -154,6 +170,21 @@
#define STM32_I2C_I2C3_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
/*
* I2S driver system settings.
*/
#define STM32_I2S_USE_SPI2 FALSE
#define STM32_I2S_USE_SPI3 FALSE
#define STM32_I2S_SPI2_IRQ_PRIORITY 10
#define STM32_I2S_SPI3_IRQ_PRIORITY 10
#define STM32_I2S_SPI2_DMA_PRIORITY 1
#define STM32_I2S_SPI3_DMA_PRIORITY 1
#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
/* /*
* ICU driver system settings. * ICU driver system settings.
*/ */
@ -303,8 +334,14 @@
#define STM32_USB_OTG_THREAD_STACK_SIZE 128 #define STM32_USB_OTG_THREAD_STACK_SIZE 128
#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 #define STM32_USB_OTGFIFO_FILL_BASEPRI 0
/*
* WDG driver system settings.
*/
#define STM32_WDG_USE_IWDG FALSE
/* /*
* header for community drivers. * header for community drivers.
*/ */
#include "mcuconf_community.h" #include "mcuconf_community.h"
#endif /* MCUCONF_H */

View File

@ -69,7 +69,7 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
USE_EXCEPTIONS_STACKSIZE = 0x800 USE_EXCEPTIONS_STACKSIZE = 0x800
endif endif
# Enables the use of FPU on Cortex-M4 (no, softfp, hard). # Enables the use of FPU (no, softfp, hard).
ifeq ($(USE_FPU),) ifeq ($(USE_FPU),)
USE_FPU = no USE_FPU = no
endif endif
@ -89,7 +89,7 @@ PROJECT = ch
CHIBIOS = ../../../../../ChibiOS-RT CHIBIOS = ../../../../../ChibiOS-RT
CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib CHIBIOS_CONTRIB = $(CHIBIOS)/../ChibiOS-Contrib
# Startup files. # Startup files.
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk include $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f4xx.mk
# HAL-OSAL files (optional). # HAL-OSAL files (optional).
include $(CHIBIOS_CONTRIB)/os/hal/hal.mk include $(CHIBIOS_CONTRIB)/os/hal/hal.mk
include $(CHIBIOS_CONTRIB)/os/hal/ports/STM32/STM32F4xx/platform.mk include $(CHIBIOS_CONTRIB)/os/hal/ports/STM32/STM32F4xx/platform.mk
@ -97,9 +97,12 @@ include $(CHIBIOS)/os/hal/boards/ST_STM32F4_DISCOVERY/board.mk
include $(CHIBIOS)/os/hal/osal/rt/osal.mk include $(CHIBIOS)/os/hal/osal/rt/osal.mk
# RTOS files (optional). # RTOS files (optional).
include $(CHIBIOS)/os/rt/rt.mk include $(CHIBIOS)/os/rt/rt.mk
include $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk
# Other files (optional). # Other files (optional).
include $(CHIBIOS)/test/rt/test.mk include $(CHIBIOS)/test/rt/test.mk
include $(CHIBIOS)/os/hal/lib/streams/streams.mk
include $(CHIBIOS)/os/various/shell/shell.mk
include $(CHIBIOS)/os/various/fatfs_bindings/fatfs.mk
# Define linker script file here # Define linker script file here
LDSCRIPT = $(STARTUPLD)/STM32F407xG.ld LDSCRIPT = $(STARTUPLD)/STM32F407xG.ld
@ -114,10 +117,10 @@ CSRC = $(STARTUPSRC) \
$(PLATFORMSRC) \ $(PLATFORMSRC) \
$(BOARDSRC) \ $(BOARDSRC) \
$(TESTSRC) \ $(TESTSRC) \
$(CHIBIOS)/os/various/shell.c \ $(FATFSSRC) \
$(CHIBIOS)/os/hal/lib/streams/memstreams.c \ $(STREAMSSRC) \
$(CHIBIOS)/os/hal/lib/streams/chprintf.c \ $(SHELLSRC) \
ff.c fatfs_diskio.c main.c main.c
# C++ sources that can be compiled in ARM or THUMB mode depending on the global # C++ sources that can be compiled in ARM or THUMB mode depending on the global
# setting. # setting.
@ -150,7 +153,7 @@ ASMXSRC = $(STARTUPASM) $(PORTASM) $(OSALASM)
INCDIR = $(CHIBIOS)/os/license \ INCDIR = $(CHIBIOS)/os/license \
$(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
$(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
$(CHIBIOS)/os/hal/lib/streams \ $(STREAMSINC) $(SHELLINC) $(FATFSINC) \
$(CHIBIOS)/os/various $(CHIBIOS)/os/various
# #
@ -219,5 +222,5 @@ ULIBS =
# End of user defines # End of user defines
############################################################################## ##############################################################################
RULESPATH = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC RULESPATH = $(CHIBIOS)/os/common/startup/ARMCMx/compilers/GCC
include $(RULESPATH)/rules.mk include $(RULESPATH)/rules.mk

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,10 @@
* @{ * @{
*/ */
#ifndef _CHCONF_H_ #ifndef CHCONF_H
#define _CHCONF_H_ #define CHCONF_H
#define _CHIBIOS_RT_CONF_
/*===========================================================================*/ /*===========================================================================*/
/** /**
@ -262,14 +264,6 @@
*/ */
#define CH_CFG_USE_MAILBOXES TRUE #define CH_CFG_USE_MAILBOXES TRUE
/**
* @brief I/O Queues APIs.
* @details If enabled then the I/O queues APIs are included in the kernel.
*
* @note The default is @p TRUE.
*/
#define CH_CFG_USE_QUEUES TRUE
/** /**
* @brief Core Memory Manager APIs. * @brief Core Memory Manager APIs.
* @details If enabled then the core memory manager APIs are included * @details If enabled then the core memory manager APIs are included
@ -357,12 +351,18 @@
/** /**
* @brief Debug option, trace buffer. * @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is * @details If enabled then the trace buffer is activated.
* activated.
* *
* @note The default is @p FALSE. * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_ENABLE_TRACE FALSE #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
/**
* @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_DISABLED.
*/
#define CH_DBG_TRACE_BUFFER_SIZE 128
/** /**
* @brief Debug option, stack checks. * @brief Debug option, stack checks.
@ -427,10 +427,6 @@
/** /**
* @brief Threads finalization hook. * @brief Threads finalization hook.
* @details User finalization code added to the @p chThdExit() API. * @details User finalization code added to the @p chThdExit() API.
*
* @note It is inserted into lock zone.
* @note It is also invoked when the threads simply return in order to
* terminate.
*/ */
#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ #define CH_CFG_THREAD_EXIT_HOOK(tp) { \
/* Add threads finalization code here.*/ \ /* Add threads finalization code here.*/ \
@ -444,6 +440,20 @@
/* Context switch code here.*/ \ /* Context switch code here.*/ \
} }
/**
* @brief ISR enter hook.
*/
#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
/* IRQ prologue code here.*/ \
}
/**
* @brief ISR exit hook.
*/
#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
/* IRQ epilogue code here.*/ \
}
/** /**
* @brief Idle thread enter hook. * @brief Idle thread enter hook.
* @note This hook is invoked within a critical zone, no OS functions * @note This hook is invoked within a critical zone, no OS functions
@ -451,6 +461,7 @@
* @note This macro can be used to activate a power saving mode. * @note This macro can be used to activate a power saving mode.
*/ */
#define CH_CFG_IDLE_ENTER_HOOK() { \ #define CH_CFG_IDLE_ENTER_HOOK() { \
/* Idle-enter code here.*/ \
} }
/** /**
@ -460,6 +471,7 @@
* @note This macro can be used to deactivate a power saving mode. * @note This macro can be used to deactivate a power saving mode.
*/ */
#define CH_CFG_IDLE_LEAVE_HOOK() { \ #define CH_CFG_IDLE_LEAVE_HOOK() { \
/* Idle-leave code here.*/ \
} }
/** /**
@ -490,12 +502,21 @@
usbDbgSystemHalted(); \ usbDbgSystemHalted(); \
} }
/**
* @brief Trace hook.
* @details This hook is invoked each time a new record is written in the
* trace buffer.
*/
#define CH_CFG_TRACE_HOOK(tep) { \
/* Trace code here.*/ \
}
/** @} */ /** @} */
/*===========================================================================*/ /*===========================================================================*/
/* Port-specific settings (override port settings defaulted in chcore.h). */ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/ /*===========================================================================*/
#endif /* _CHCONF_H_ */ #endif /* CHCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _HALCONF_H_ #ifndef HALCONF_H
#define _HALCONF_H_ #define HALCONF_H
#include "mcuconf.h" #include "mcuconf.h"
@ -309,13 +309,21 @@
* @brief Serial over USB buffers size. * @brief Serial over USB buffers size.
* @details Configuration parameter, the buffer size must be a multiple of * @details Configuration parameter, the buffer size must be a multiple of
* the USB data endpoint maximum packet size. * the USB data endpoint maximum packet size.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 256 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_SIZE 256 #define SERIAL_USB_BUFFERS_SIZE 256
#endif #endif
/**
* @brief Serial over USB number of buffers.
* @note The default is 2 buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_NUMBER 2
#endif
/*===========================================================================*/ /*===========================================================================*/
/* SPI driver related settings. */ /* SPI driver related settings. */
/*===========================================================================*/ /*===========================================================================*/
@ -336,8 +344,44 @@
#define SPI_USE_MUTUAL_EXCLUSION TRUE #define SPI_USE_MUTUAL_EXCLUSION TRUE
#endif #endif
/*===========================================================================*/
/* UART driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
#define UART_USE_WAIT FALSE
#endif
/**
* @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define UART_USE_MUTUAL_EXCLUSION FALSE
#endif
/*===========================================================================*/
/* USB driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
#define USB_USE_WAIT FALSE
#endif
/*===========================================================================*/
/* Community drivers's includes */
/*===========================================================================*/
#include "halconf_community.h" #include "halconf_community.h"
#endif /* _HALCONF_H_ */ #endif /* HALCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -14,8 +14,8 @@
limitations under the License. limitations under the License.
*/ */
#ifndef _MCUCONF_H_ #ifndef MCUCONF_H
#define _MCUCONF_H_ #define MCUCONF_H
/* /*
* STM32F4xx drivers configuration. * STM32F4xx drivers configuration.
@ -170,6 +170,21 @@
#define STM32_I2C_I2C3_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
/*
* I2S driver system settings.
*/
#define STM32_I2S_USE_SPI2 FALSE
#define STM32_I2S_USE_SPI3 FALSE
#define STM32_I2S_SPI2_IRQ_PRIORITY 10
#define STM32_I2S_SPI3_IRQ_PRIORITY 10
#define STM32_I2S_SPI2_DMA_PRIORITY 1
#define STM32_I2S_SPI3_DMA_PRIORITY 1
#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
/* /*
* ICU driver system settings. * ICU driver system settings.
*/ */
@ -319,6 +334,14 @@
#define STM32_USB_OTG_THREAD_STACK_SIZE 128 #define STM32_USB_OTG_THREAD_STACK_SIZE 128
#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 #define STM32_USB_OTGFIFO_FILL_BASEPRI 0
/*
* WDG driver system settings.
*/
#define STM32_WDG_USE_IWDG FALSE
/*
* header for community drivers.
*/
#include "mcuconf_community.h" #include "mcuconf_community.h"
#endif /* _MCUCONF_H_ */ #endif /* MCUCONF_H */

View File

@ -43,6 +43,12 @@ ifeq ($(USE_VERBOSE_COMPILE),)
USE_VERBOSE_COMPILE = no USE_VERBOSE_COMPILE = no
endif endif
# If enabled, this option makes the build process faster by not compiling
# modules not used in the current configuration.
ifeq ($(USE_SMART_BUILD),)
USE_SMART_BUILD = no
endif
# #
# Build global options # Build global options
############################################################################## ##############################################################################
@ -63,7 +69,7 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),)
USE_EXCEPTIONS_STACKSIZE = 0x400 USE_EXCEPTIONS_STACKSIZE = 0x400
endif endif
# Enables the use of FPU on Cortex-M4 (no, softfp, hard). # Enables the use of FPU (no, softfp, hard).
ifeq ($(USE_FPU),) ifeq ($(USE_FPU),)
USE_FPU = no USE_FPU = no
endif endif
@ -176,10 +182,10 @@ AOPT =
TOPT = -mthumb -DTHUMB TOPT = -mthumb -DTHUMB
# Define C warning options here # Define C warning options here
CWARN = -Wall -Wextra -Wstrict-prototypes -Wundef CWARN = -Wall -Wextra -Wundef -Wstrict-prototypes
# Define C++ warning options here # Define C++ warning options here
CPPWARN = -Wall -Wextra -Wundef CPPWARN = -Wall -Wextra
# #
# Compiler settings # Compiler settings

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _CHCONF_H_ #ifndef CHCONF_H
#define _CHCONF_H_ #define CHCONF_H
#define _CHIBIOS_RT_CONF_ #define _CHIBIOS_RT_CONF_
@ -351,17 +351,16 @@
/** /**
* @brief Debug option, trace buffer. * @brief Debug option, trace buffer.
* @details If enabled then the context switch circular trace buffer is * @details If enabled then the trace buffer is activated.
* activated.
* *
* @note The default is @p CH_DBG_TRACE_MASK_NONE. * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_NONE #define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
/** /**
* @brief Trace buffer entries. * @brief Trace buffer entries.
* @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
* different from @p CH_DBG_TRACE_MASK_NONE. * different from @p CH_DBG_TRACE_MASK_DISABLED.
*/ */
#define CH_DBG_TRACE_BUFFER_SIZE 128 #define CH_DBG_TRACE_BUFFER_SIZE 128
@ -498,7 +497,7 @@
* the system is halted. * the system is halted.
*/ */
#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ #define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
/* Halt code here.*/ \ /* System halt code here.*/ \
} }
/** /**
@ -516,6 +515,6 @@
/* Port-specific settings (override port settings defaulted in chcore.h). */ /* Port-specific settings (override port settings defaulted in chcore.h). */
/*===========================================================================*/ /*===========================================================================*/
#endif /* _CHCONF_H_ */ #endif /* CHCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006-2014 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -25,8 +25,8 @@
* @{ * @{
*/ */
#ifndef _HALCONF_H_ #ifndef HALCONF_H
#define _HALCONF_H_ #define HALCONF_H
#include "mcuconf.h" #include "mcuconf.h"
@ -44,13 +44,6 @@
#define HAL_USE_ADC FALSE #define HAL_USE_ADC FALSE
#endif #endif
/**
* @brief Enables the DAC subsystem.
*/
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
#define HAL_USE_DAC FALSE
#endif
/** /**
* @brief Enables the CAN subsystem. * @brief Enables the CAN subsystem.
*/ */
@ -58,6 +51,13 @@
#define HAL_USE_CAN FALSE #define HAL_USE_CAN FALSE
#endif #endif
/**
* @brief Enables the DAC subsystem.
*/
#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
#define HAL_USE_DAC FALSE
#endif
/** /**
* @brief Enables the EXT subsystem. * @brief Enables the EXT subsystem.
*/ */
@ -294,7 +294,7 @@
* @brief Serial buffers size. * @brief Serial buffers size.
* @details Configuration parameter, you can change the depth of the queue * @details Configuration parameter, you can change the depth of the queue
* buffers depending on the requirements of your application. * buffers depending on the requirements of your application.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 16 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
@ -309,13 +309,21 @@
* @brief Serial over USB buffers size. * @brief Serial over USB buffers size.
* @details Configuration parameter, the buffer size must be a multiple of * @details Configuration parameter, the buffer size must be a multiple of
* the USB data endpoint maximum packet size. * the USB data endpoint maximum packet size.
* @note The default is 64 bytes for both the transmission and receive * @note The default is 256 bytes for both the transmission and receive
* buffers. * buffers.
*/ */
#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__) #if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_SIZE 256 #define SERIAL_USB_BUFFERS_SIZE 256
#endif #endif
/**
* @brief Serial over USB number of buffers.
* @note The default is 2 buffers.
*/
#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
#define SERIAL_USB_BUFFERS_NUMBER 2
#endif
/*===========================================================================*/ /*===========================================================================*/
/* SPI driver related settings. */ /* SPI driver related settings. */
/*===========================================================================*/ /*===========================================================================*/
@ -336,12 +344,44 @@
#define SPI_USE_MUTUAL_EXCLUSION TRUE #define SPI_USE_MUTUAL_EXCLUSION TRUE
#endif #endif
/*===========================================================================*/
/* UART driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
#define UART_USE_WAIT FALSE
#endif
/**
* @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
#define UART_USE_MUTUAL_EXCLUSION FALSE
#endif
/*===========================================================================*/
/* USB driver related settings. */
/*===========================================================================*/
/**
* @brief Enables synchronous APIs.
* @note Disabling this option saves both code and data space.
*/
#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
#define USB_USE_WAIT FALSE
#endif
/*===========================================================================*/ /*===========================================================================*/
/* Community drivers's includes */ /* Community drivers's includes */
/*===========================================================================*/ /*===========================================================================*/
#include "halconf_community.h" #include "halconf_community.h"
#endif /* _HALCONF_H_ */ #endif /* HALCONF_H */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
ChibiOS - Copyright (C) 2006-2014 Giovanni Di Sirio ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
@ -14,6 +14,9 @@
limitations under the License. limitations under the License.
*/ */
#ifndef MCUCONF_H
#define MCUCONF_H
/* /*
* STM32F4xx drivers configuration. * STM32F4xx drivers configuration.
* The following settings override the default settings present in * The following settings override the default settings present in
@ -87,6 +90,19 @@
#define STM32_CAN_CAN1_IRQ_PRIORITY 11 #define STM32_CAN_CAN1_IRQ_PRIORITY 11
#define STM32_CAN_CAN2_IRQ_PRIORITY 11 #define STM32_CAN_CAN2_IRQ_PRIORITY 11
/*
* DAC driver system settings.
*/
#define STM32_DAC_DUAL_MODE FALSE
#define STM32_DAC_USE_DAC1_CH1 FALSE
#define STM32_DAC_USE_DAC1_CH2 FALSE
#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10
#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2
#define STM32_DAC_DAC1_CH1_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
#define STM32_DAC_DAC1_CH2_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
/* /*
* EXT driver system settings. * EXT driver system settings.
*/ */
@ -154,6 +170,21 @@
#define STM32_I2C_I2C3_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
/*
* I2S driver system settings.
*/
#define STM32_I2S_USE_SPI2 FALSE
#define STM32_I2S_USE_SPI3 FALSE
#define STM32_I2S_SPI2_IRQ_PRIORITY 10
#define STM32_I2S_SPI3_IRQ_PRIORITY 10
#define STM32_I2S_SPI2_DMA_PRIORITY 1
#define STM32_I2S_SPI3_DMA_PRIORITY 1
#define STM32_I2S_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
#define STM32_I2S_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
#define STM32_I2S_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
#define STM32_I2S_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
#define STM32_I2S_DMA_ERROR_HOOK(i2sp) osalSysHalt("DMA failure")
/* /*
* ICU driver system settings. * ICU driver system settings.
*/ */
@ -303,8 +334,14 @@
#define STM32_USB_OTG_THREAD_STACK_SIZE 128 #define STM32_USB_OTG_THREAD_STACK_SIZE 128
#define STM32_USB_OTGFIFO_FILL_BASEPRI 0 #define STM32_USB_OTGFIFO_FILL_BASEPRI 0
/*
* WDG driver system settings.
*/
#define STM32_WDG_USE_IWDG FALSE
/* /*
* header for community drivers. * header for community drivers.
*/ */
#include "mcuconf_community.h" #include "mcuconf_community.h"
#endif /* MCUCONF_H */