mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-05-25 23:46:04 +08:00
[hardware] Add Pixhawk 4 autopilot (#2506)
This commit is contained in:
@@ -0,0 +1,231 @@
|
||||
<!DOCTYPE airframe SYSTEM "../airframe.dtd">
|
||||
|
||||
<!-- this is a mentor Fixedwing with a Pixhawk 4 autopilot -->
|
||||
|
||||
<airframe name="Mentor">
|
||||
<description>Mentor</description>
|
||||
|
||||
<firmware name="fixedwing">
|
||||
<target name="ap" board="px4fmu_5.0_chibios">
|
||||
<configure name="PERIODIC_FREQUENCY" value="500"/>
|
||||
<module name="telemetry" type="transparent">
|
||||
<configure name="MODEM_BAUD" value="B115200"/>
|
||||
</module>
|
||||
<module name="imu" type="mpu6000"/>
|
||||
<module name="gps" type="ublox">
|
||||
<!--configure name="GPS_PORT" value="UART1"/-->
|
||||
</module>
|
||||
<module name="gps" type="ubx_ucenter"/>
|
||||
<module name="ahrs" type="int_cmpl_quat">
|
||||
<configure name="USE_MAGNETOMETER" value="FALSE"/>
|
||||
<define name="AHRS_GRAVITY_UPDATE_COORDINATED_TURN"/>
|
||||
</module>
|
||||
<module name="ins" type="alt_float"/>
|
||||
|
||||
<module name="mag_ist8310">
|
||||
<define name="MODULE_IST8310_UPDATE_AHRS" value="TRUE"/>
|
||||
<configure name="MAG_IST8310_I2C_DEV" value="I2C3"/>
|
||||
</module>
|
||||
<!--module name="lidar" type="tfmini"/-->
|
||||
|
||||
<!--module name="airspeed" type="ms45xx_i2c">
|
||||
<define name="USE_I2C4"/>
|
||||
<define name="MS45XX_I2C_DEV" value="i2c4"/>
|
||||
</module-->
|
||||
<module name="air_data"/>
|
||||
|
||||
<module name="control" type="energy"/>
|
||||
<module name="navigation"/>
|
||||
<module name="actuators" type="pwm"/>
|
||||
<module name="radio_control" type="sbus">
|
||||
<configure name="SBUS_PORT" value="UART3"/>
|
||||
</module>
|
||||
|
||||
<!-- Logger -->
|
||||
<!--module name="tlsf"/>
|
||||
<module name="pprzlog"/>
|
||||
<module name="logger" type="sd_chibios"/>
|
||||
<module name="flight_recorder"/-->
|
||||
</target>
|
||||
|
||||
<target name="nps" board="pc">
|
||||
<module name="radio_control" type="spektrum"/>
|
||||
<module name="fdm" type="jsbsim"/>
|
||||
</target>
|
||||
</firmware>
|
||||
|
||||
<servos>
|
||||
<servo name="THROTTLE" no="0" min="1000" neutral="1000" max="2000"/>
|
||||
<servo name="AILERON_LEFT" no="1" min="1800" neutral="1500" max="1200"/>
|
||||
<servo name="AILERON_RIGHT" no="2" min="1200" neutral="1500" max="1800"/>
|
||||
<servo name="ELEVATOR" no="3" min="900" neutral="1500" max="2100"/>
|
||||
<servo name="RUDDER" no="4" min="1900" neutral="1500" max="1100"/>
|
||||
</servos>
|
||||
|
||||
<commands>
|
||||
<axis name="THROTTLE" failsafe_value="0"/>
|
||||
<axis name="ROLL" failsafe_value="0"/>
|
||||
<axis name="PITCH" failsafe_value="0"/>
|
||||
<axis name="YAW" failsafe_value="0"/>
|
||||
</commands>
|
||||
|
||||
<rc_commands>
|
||||
<set command="THROTTLE" value="@THROTTLE"/>
|
||||
<set command="ROLL" value="@ROLL"/>
|
||||
<set command="PITCH" value="@PITCH"/>
|
||||
<set command="YAW" value="@YAW"/>
|
||||
</rc_commands>
|
||||
|
||||
<section name="AUTO1" prefix="AUTO1_">
|
||||
<define name="MAX_ROLL" value="1.2"/>
|
||||
<define name="MAX_PITCH" value="0.8"/>
|
||||
</section>
|
||||
|
||||
<command_laws>
|
||||
<set servo="AILERON_LEFT" value="@ROLL"/>
|
||||
<set servo="AILERON_RIGHT" value="-@ROLL"/>
|
||||
<set servo="THROTTLE" value="@THROTTLE"/>
|
||||
<set servo="ELEVATOR" value="@PITCH"/>
|
||||
<set servo="RUDDER" value="@YAW"/>
|
||||
</command_laws>
|
||||
|
||||
<section name="TRIM" prefix="COMMAND_">
|
||||
<define name="ROLL_TRIM" value="0"/>
|
||||
<define name="PITCH_TRIM" value="788."/>
|
||||
</section>
|
||||
|
||||
<section name="FAILSAFE" prefix="FAILSAFE_">
|
||||
<define name="DEFAULT_THROTTLE" value="0.35" unit="%"/>
|
||||
<define name="DEFAULT_ROLL" value="10.0" unit="deg"/>
|
||||
<define name="DEFAULT_PITCH" value="5.0" unit="deg"/>
|
||||
<define name="HOME_RADIUS" value="DEFAULT_CIRCLE_RADIUS" unit="m"/>
|
||||
<define name="KILL_MODE_DISTANCE" value="(MAX_DIST_FROM_HOME*1.5)"/>
|
||||
<define name="DELAY_WITHOUT_GPS" value="10" unit="s"/>
|
||||
</section>
|
||||
|
||||
<!-- ************************* SENSORS ************************* -->
|
||||
<section name="IMU" prefix="IMU_">
|
||||
<!-- replace this with your own calibration -->
|
||||
<define name="MAG_X_NEUTRAL" value="-179"/>
|
||||
<define name="MAG_Y_NEUTRAL" value="-21"/>
|
||||
<define name="MAG_Z_NEUTRAL" value="79"/>
|
||||
<define name="MAG_X_SENS" value="4.17334785618" integer="16"/>
|
||||
<define name="MAG_Y_SENS" value="3.98885954135" integer="16"/>
|
||||
<define name="MAG_Z_SENS" value="4.40442339014" integer="16"/>
|
||||
|
||||
<define name="BODY_TO_IMU_PHI" value="0" unit="deg"/>
|
||||
<define name="BODY_TO_IMU_THETA" value="14" unit="deg"/>
|
||||
<define name="BODY_TO_IMU_PSI" value="0" unit="deg"/>
|
||||
</section>
|
||||
|
||||
<section name="AHRS" prefix="AHRS_">
|
||||
<!-- Local magnetic field, on 3D fix is update by geo_mag module -->
|
||||
<define name="H_X" value="0.51562740288882"/>
|
||||
<define name="H_Y" value="-0.05707735220832"/>
|
||||
<define name="H_Z" value="0.85490967783446"/>
|
||||
</section>
|
||||
|
||||
<section name="INS" prefix="INS_">
|
||||
<define name="ROLL_NEUTRAL_DEFAULT" value="0.0" unit="deg"/>
|
||||
<define name="PITCH_NEUTRAL_DEFAULT" value="0" unit="deg"/>
|
||||
</section>
|
||||
|
||||
<!-- ************************* GAINS ************************* -->
|
||||
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
||||
<define name="COURSE_PGAIN" value="0.89"/>
|
||||
<define name="COURSE_DGAIN" value="0.27"/>
|
||||
<define name="COURSE_PRE_BANK_CORRECTION" value="1.0"/>
|
||||
<define name="ROLL_MAX_SETPOINT" value="45" unit="deg"/>
|
||||
<define name="PITCH_MAX_SETPOINT" value="50" unit="deg"/>
|
||||
<define name="PITCH_MIN_SETPOINT" value="-50" unit="deg"/>
|
||||
<define name="PITCH_PGAIN" value="13000"/>
|
||||
<define name="PITCH_DGAIN" value="1.5"/>
|
||||
<define name="ELEVATOR_OF_ROLL" value="1300"/>
|
||||
<define name="ROLL_SLEW" value="1."/>
|
||||
<define name="ROLL_ATTITUDE_GAIN" value="10000"/>
|
||||
<define name="ROLL_RATE_GAIN" value="500."/>
|
||||
</section>
|
||||
|
||||
<section name="VERTICAL CONTROL" prefix="V_CTL_">
|
||||
<!-- power -->
|
||||
<define name="POWER_CTL_BAT_NOMINAL" value="14.8" unit="volt"/>
|
||||
<!-- outer loop proportional gain -->
|
||||
<define name="ALTITUDE_PGAIN" value="0.1"/>
|
||||
<define name="AIRSPEED_PGAIN" value="0.0"/>
|
||||
<!-- outer loop saturation -->
|
||||
<define name="ALTITUDE_MAX_CLIMB" value="3."/>
|
||||
<define name="MAX_ACCELERATION" value="2."/>
|
||||
<!-- energy -->
|
||||
<define name="ENERGY_TOT_PGAIN" value="0.0"/>
|
||||
<define name="ENERGY_TOT_IGAIN" value="0.0"/>
|
||||
<define name="ENERGY_DIFF_PGAIN" value="0.0"/>
|
||||
<define name="ENERGY_DIFF_IGAIN" value="0.0"/>
|
||||
<define name="GLIDE_RATIO" value="7."/>
|
||||
<!-- auto throttle -->
|
||||
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.55"/>
|
||||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/>
|
||||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.15"/>
|
||||
<!-- extra's -->
|
||||
<define name="AUTO_THROTTLE_OF_AIRSPEED_PGAIN" value="0.0"/>
|
||||
<define name="AUTO_THROTTLE_OF_AIRSPEED_IGAIN" value="0.0"/>
|
||||
<!-- extra's -->
|
||||
<define name="AUTO_PITCH_OF_AIRSPEED_PGAIN" value="0.0"/>
|
||||
<define name="AUTO_PITCH_OF_AIRSPEED_IGAIN" value="0.0"/>
|
||||
<define name="AUTO_PITCH_OF_AIRSPEED_DGAIN" value="0.0"/>
|
||||
<define name="THROTTLE_SLEW_LIMITER" value="1" unit="m/s/s"/>
|
||||
<!--define name="AUTO_GROUNDSPEED_SETPOINT" value="15." unit="m/s"/>
|
||||
<define name="AUTO_GROUNDSPEED_PGAIN" value="1."/>
|
||||
<define name="AUTO_GROUNDSPEED_IGAIN" value="0"/-->
|
||||
</section>
|
||||
|
||||
<!-- ************************* MISC ************************* -->
|
||||
|
||||
<section name="BAT">
|
||||
<define name="VoltageOfAdc(adc)" value="((3.3f/4096.0f) * 12.0877510901 * adc)"/>
|
||||
<!--define name="MilliAmpereOfAdc(adc)" value="((adc) - 505) * 124.0f"/-->
|
||||
<define name="LOW_BAT_LEVEL" value="10.5" unit="V"/>
|
||||
<define name="CRITIC_BAT_LEVEL" value="10" unit="V"/>
|
||||
<define name="CATASTROPHIC_BAT_LEVEL" value="9.1" unit="V"/>
|
||||
</section>
|
||||
|
||||
<section name="MISC">
|
||||
<define name="CLIMB_AIRSPEED" value="14." unit="m/s"/>
|
||||
<define name="NOMINAL_AIRSPEED" value="16." unit="m/s"/>
|
||||
<define name="GLIDE_AIRSPEED" value="12." unit="m/s"/>
|
||||
<define name="RACE_AIRSPEED" value="25." unit="m/s"/>
|
||||
<define name="STALL_AIRSPEED" value="10." unit="m/s"/>
|
||||
<define name="CARROT" value="5." unit="s"/>
|
||||
<define name="DEFAULT_CIRCLE_RADIUS" value="80."/>
|
||||
<define name="NAV_GLIDE_PITCH_TRIM" value="0."/>
|
||||
</section>
|
||||
|
||||
<section name="CATAPULT" prefix="NAV_CATAPULT_">
|
||||
<define name="MOTOR_DELAY" value="0.75" unit="seconds"/>
|
||||
<define name="HEADING_DELAY" value="3.0" unit="seconds"/>
|
||||
<define name="ACCELERATION_THRESHOLD" value="1.75"/>
|
||||
<define name="INITIAL_PITCH" value="15.0" unit="deg"/>
|
||||
<define name="INITIAL_THROTTLE" value="1.0"/>
|
||||
</section>
|
||||
|
||||
<section name="GLS_APPROACH" prefix="APP_">
|
||||
<define name="ANGLE" value="5" unit="deg"/>
|
||||
<define name="INTERCEPT_AF_SD" value="10" unit="m"/>
|
||||
<define name="TARGET_SPEED" value="13" unit="m/s"/>
|
||||
</section>
|
||||
|
||||
<section name="DIGITAL_CAMERA" prefix="DC_">
|
||||
<define name="AUTOSHOOT_PERIOD" value="1.5" unit="sec"/>
|
||||
<define name="AUTOSHOOT_DISTANCE_INTERVAL" value="50" unit="meter"/>
|
||||
</section>
|
||||
|
||||
<section name="SIMULATOR" prefix="NPS_">
|
||||
<define name="JSBSIM_MODEL" value="Malolo1" type="string"/>
|
||||
<define name="COMMANDS_NB" value="4"/>
|
||||
<define name="ACTUATOR_NAMES" value="throttle-cmd-norm, aileron-cmd-norm, elevator-cmd-norm, rudder-cmd-norm" type="string[]"/>
|
||||
<define name="SENSORS_PARAMS" value="nps_sensors_params_default.h" type="string"/>
|
||||
<define name="JS_AXIS_MODE" value="4"/>
|
||||
<define name="BYPASS_AHRS" value="TRUE"/>
|
||||
<define name="BYPASS_INS" value="TRUE"/>
|
||||
</section>
|
||||
|
||||
</airframe>
|
||||
@@ -0,0 +1,115 @@
|
||||
# Hey Emacs, this is a -*- makefile -*-
|
||||
#
|
||||
# px4fmu_5.0_chibios.makefile
|
||||
#
|
||||
# This is for the main MCU (STM32F767) on the PX4 board
|
||||
# See https://pixhawk.org/modules/pixhawk for details
|
||||
#
|
||||
|
||||
BOARD=px4fmu
|
||||
BOARD_VERSION=5.0
|
||||
BOARD_DIR=$(BOARD)/chibios/v$(BOARD_VERSION)
|
||||
BOARD_CFG=\"boards/$(BOARD_DIR)/$(BOARD).h\"
|
||||
|
||||
ARCH=chibios
|
||||
$(TARGET).ARCHDIR = $(ARCH)
|
||||
|
||||
RTOS=chibios
|
||||
MCU=cortex-m7
|
||||
|
||||
# FPU on F7
|
||||
USE_FPU=hard
|
||||
#USE_FPU_OPT= -mfpu=fpv5-d16
|
||||
|
||||
#USE_LTO=yes
|
||||
|
||||
$(TARGET).CFLAGS += -DSTM32F7 -DPPRZLINK_ENABLE_FD
|
||||
|
||||
##############################################################################
|
||||
# Architecture or project specific options
|
||||
#
|
||||
# Define project name here (target)
|
||||
PROJECT = $(TARGET)
|
||||
|
||||
# Project specific files and paths (see Makefile.chibios for details)
|
||||
CHIBIOS_BOARD_PLATFORM = STM32F7xx/platform.mk
|
||||
CHIBIOS_BOARD_PORT = ARMCMx/STM32F7xx/port.mk
|
||||
CHIBIOS_BOARD_LINKER = STM32F76xxI.ld
|
||||
CHIBIOS_BOARD_STARTUP = startup_stm32f7xx.mk
|
||||
|
||||
# ITCM flash is a special flash that allow faster operations
|
||||
# At the moment it is not possible to flash the code in this mode using dfu-util
|
||||
# but it should work with the BlackMagicProbe or STLINK
|
||||
# By default, normal flash is used
|
||||
ifeq ($(USE_ITCM),1)
|
||||
$(TARGET).CFLAGS += -DUSE_ITCM=1
|
||||
DFU_ADDR = 0x00200000
|
||||
else
|
||||
$(TARGET).CFLAGS += -DUSE_ITCM=0
|
||||
DFU_ADDR = 0x08000000
|
||||
endif
|
||||
|
||||
# In this case we dont have LUFTBOOT but PX4_BOOTLOADER, but in order
|
||||
# to correctly initialize the interrupt vector we have to define that
|
||||
# the board has LUFTBOOT
|
||||
HAS_LUFTBOOT ?= 1
|
||||
ifeq (,$(findstring $(HAS_LUFTBOOT),0 FALSE))
|
||||
$(TARGET).CFLAGS+=-DLUFTBOOT
|
||||
endif
|
||||
|
||||
##############################################################################
|
||||
# Compiler settings
|
||||
#
|
||||
|
||||
# default flash mode is the PX4 bootloader
|
||||
# possibilities: DFU, SWD, PX4 bootloader
|
||||
FLASH_MODE ?= PX4_BOOTLOADER
|
||||
PX4_TARGET = "ap"
|
||||
PX4_PROTOTYPE ?= "${PAPARAZZI_HOME}/sw/tools/px4/px4fmu_5.0.prototype"
|
||||
PX4_BL_PORT ?= "/dev/serial/by-id/usb-3D_Robotics_PX4_BL_FMU_v5.x_0-if00"
|
||||
|
||||
|
||||
#
|
||||
# default LED configuration
|
||||
#
|
||||
SDLOG_LED ?= 3
|
||||
RADIO_CONTROL_LED ?= none
|
||||
BARO_LED ?= none
|
||||
AHRS_ALIGNER_LED ?= 1
|
||||
GPS_LED ?= none
|
||||
SYS_TIME_LED ?= 2
|
||||
|
||||
#
|
||||
# default IMU configuration
|
||||
#
|
||||
IMU_MPU_SPI_DEV ?= spi1
|
||||
IMU_MPU_SPI_SLAVE_IDX ?= SPI_SLAVE0
|
||||
|
||||
#
|
||||
# default UART configuration (modem, gps, spektrum)
|
||||
#
|
||||
SBUS_PORT ?= UART6
|
||||
RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT ?= UART6
|
||||
|
||||
#The modem serial on px4 is called serial 1, but connected to uart2 on the f4
|
||||
MODEM_PORT ?= UART2
|
||||
MODEM_BAUD ?= B57600
|
||||
|
||||
#The GPS serial on px4 is called serial 3, but connected to uart4 on the f4
|
||||
GPS_PORT ?= UART1
|
||||
GPS_BAUD ?= B57600
|
||||
|
||||
#InterMCU port connected to the IO processor
|
||||
INTERMCU_PORT ?= UART8
|
||||
INTERMCU_BAUD ?= B230400
|
||||
|
||||
#
|
||||
# default actuator configuration
|
||||
#
|
||||
# you can use different actuators by adding a configure option to your firmware section
|
||||
# e.g. <configure name="ACTUATORS" value="actuators_ppm/>
|
||||
# and by setting the correct "driver" attribute in servo section
|
||||
# e.g. <servo driver="Ppm">
|
||||
#
|
||||
ACTUATORS ?= actuators_pwm
|
||||
|
||||
@@ -29,12 +29,18 @@ BARO_LED ?= none
|
||||
AHRS_ALIGNER_LED ?= none
|
||||
GPS_LED ?= none
|
||||
SYS_TIME_LED ?= 2
|
||||
FBW_MODE_LED ?= 3
|
||||
FBW_MODE_LED ?= 3
|
||||
|
||||
#
|
||||
# default UART configuration (modem, gps, spektrum)
|
||||
#
|
||||
RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT ?= UART1
|
||||
SBUS_PORT ?= UART3
|
||||
ACTUATORS_SBUS_DEV ?= UART3
|
||||
|
||||
#InterMCU port connected to the FMU processor
|
||||
INTERMCU_PORT ?= UART2
|
||||
INTERMCU_BAUD ?= B230400
|
||||
|
||||
#
|
||||
# default actuator configuration
|
||||
|
||||
@@ -226,6 +226,11 @@ else ifeq ($(BOARD),$(filter $(BOARD),px4fmu))
|
||||
BARO_BOARD_CFLAGS += -DUSE_SPI2 -DUSE_SPI_SLAVE3
|
||||
BARO_BOARD_CFLAGS += -DBB_MS5611_SPI_DEV=spi2
|
||||
BARO_BOARD_CFLAGS += -DBB_MS5611_SLAVE_IDX=SPI_SLAVE3
|
||||
else ifeq ($(BOARD_VERSION), 5.0)
|
||||
# PX4FMU 5.0
|
||||
BARO_BOARD_CFLAGS += -DUSE_SPI4 -DUSE_SPI_SLAVE4
|
||||
BARO_BOARD_CFLAGS += -DBB_MS5611_SPI_DEV=spi4
|
||||
BARO_BOARD_CFLAGS += -DBB_MS5611_SLAVE_IDX=SPI_SLAVE4
|
||||
endif
|
||||
# apogee baro
|
||||
else ifeq ($(BOARD), apogee)
|
||||
|
||||
@@ -105,6 +105,8 @@
|
||||
<boards>
|
||||
<board name="li[s]?a_mxs_.*"/>
|
||||
<board name="li[s]?a_s_.*"/>
|
||||
<board name="px4fmu_.*"/>
|
||||
<board name="px4io_.*"/>
|
||||
</boards>
|
||||
</mode>
|
||||
<mode name="BlackMagic Probe (JTAG)">
|
||||
|
||||
@@ -284,6 +284,18 @@
|
||||
gui_color="#8c63ffff8e00"
|
||||
release="33e02c9f1e831cb30ba9dc442e055b6e28c72a52"
|
||||
/>
|
||||
<aircraft
|
||||
name="Mentor"
|
||||
ac_id="4"
|
||||
airframe="airframes/tudelft/mentor.xml"
|
||||
radio="radios/crossfire_sbus.xml"
|
||||
telemetry="telemetry/default_fixedwing_imu.xml"
|
||||
flight_plan="flight_plans/versatile_airspeed.xml"
|
||||
settings="settings/fixedwing_basic.xml settings/estimation/ac_char.xml"
|
||||
settings_modules="modules/nav_basic_fw.xml modules/guidance_energy.xml modules/stabilization_attitude_fw.xml modules/air_data.xml modules/ahrs_int_cmpl_quat.xml modules/gps_ubx_ucenter.xml modules/gps.xml modules/imu_common.xml"
|
||||
gui_color="white"
|
||||
release="997fa535902c4d8f73bc34c02c862652cd47cae5"
|
||||
/>
|
||||
<aircraft
|
||||
name="MentorEnergy"
|
||||
ac_id="1"
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
/*
|
||||
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
|
||||
|
||||
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
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* STM32F76xxI generic setup.
|
||||
*
|
||||
* RAM0 - Data, Heap.
|
||||
* RAM3 - Main Stack, Process Stack, BSS, NOCACHE, ETH.
|
||||
*
|
||||
* Notes:
|
||||
* BSS is placed in DTCM RAM in order to simplify DMA buffers management.
|
||||
*/
|
||||
MEMORY
|
||||
{
|
||||
flash0 : org = 0x08008000, len = 2M /* Flash as AXIM (writable) */
|
||||
flash1 : org = 0x00200000, len = 0 /* Flash as ITCM */
|
||||
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 = 0x20020000, len = 384k /* SRAM1 + SRAM2 */
|
||||
ram1 : org = 0x20020000, len = 368k /* SRAM1 */
|
||||
ram2 : org = 0x2007C000, len = 16k /* SRAM2 */
|
||||
ram3 : org = 0x20000000, len = 128k /* DTCM-RAM */
|
||||
ram4 : org = 0x00000000, len = 16k /* ITCM-RAM */
|
||||
ram5 : org = 0x40024000, len = 4k /* BCKP SRAM */
|
||||
ram6 : org = 0x00000000, len = 0
|
||||
ram7 : org = 0x00000000, len = 0
|
||||
}
|
||||
|
||||
/* 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
|
||||
of all exceptions and interrupts.*/
|
||||
REGION_ALIAS("MAIN_STACK_RAM", ram3);
|
||||
|
||||
/* RAM region to be used for the process stack. This is the stack used by
|
||||
the main() function.*/
|
||||
REGION_ALIAS("PROCESS_STACK_RAM", ram3);
|
||||
|
||||
/* RAM region to be used for data segment.*/
|
||||
REGION_ALIAS("DATA_RAM", ram0);
|
||||
REGION_ALIAS("DATA_RAM_LMA", flash0);
|
||||
|
||||
/* RAM region to be used for BSS segment.*/
|
||||
REGION_ALIAS("BSS_RAM", ram3);
|
||||
|
||||
/* RAM region to be used for the default heap.*/
|
||||
REGION_ALIAS("HEAP_RAM", ram0);
|
||||
|
||||
/* Stack rules inclusion.*/
|
||||
INCLUDE rules_stacks.ld
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Custom sections for STM32F7xx. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/* RAM region to be used for nocache segment.*/
|
||||
REGION_ALIAS("NOCACHE_RAM", ram3);
|
||||
|
||||
/* RAM region to be used for eth segment.*/
|
||||
REGION_ALIAS("ETH_RAM", ram3);
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
/* Special section for non cache-able areas.*/
|
||||
.nocache (NOLOAD) : ALIGN(4)
|
||||
{
|
||||
__nocache_base__ = .;
|
||||
*(.nocache)
|
||||
*(.nocache.*)
|
||||
*(.bss.__nocache_*)
|
||||
. = ALIGN(4);
|
||||
__nocache_end__ = .;
|
||||
} > NOCACHE_RAM
|
||||
|
||||
/* Special section for Ethernet DMA non cache-able areas.*/
|
||||
.eth (NOLOAD) : ALIGN(4)
|
||||
{
|
||||
__eth_base__ = .;
|
||||
*(.eth)
|
||||
*(.eth.*)
|
||||
*(.bss.__eth_*)
|
||||
. = ALIGN(4);
|
||||
__eth_end__ = .;
|
||||
} > ETH_RAM
|
||||
}
|
||||
|
||||
/* Code rules inclusion.*/
|
||||
INCLUDE rules_code.ld
|
||||
|
||||
/* Data rules inclusion.*/
|
||||
INCLUDE rules_data.ld
|
||||
@@ -626,8 +626,10 @@
|
||||
#define CORTEX_VTOR_INIT 0x00200000U
|
||||
|
||||
#elif LUFTBOOT // using LUFTBOOT bootloader
|
||||
#if defined STM32F4
|
||||
#if defined(STM32F4)
|
||||
#define CORTEX_VTOR_INIT 0x00004000U
|
||||
#elif defined(STM32F7)
|
||||
#define CORTEX_VTOR_INIT 0x08008000U
|
||||
#else
|
||||
#define CORTEX_VTOR_INIT 0x00002000U
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
# file board.h is generated from file board.cfg by a script which is hosted here :
|
||||
# https://github.com/alex31/chibios_enac_various_common/blob/master/TOOLS/boardGen.pl
|
||||
|
||||
# documentation is here :
|
||||
# https://github.com/alex31/chibios_enac_various_common/blob/master/TOOLS/DOC/boardGen.pdf
|
||||
|
||||
board.h: board.cfg Makefile
|
||||
boardGen.pl --no-pp-line $< $@
|
||||
|
||||
@@ -0,0 +1,263 @@
|
||||
/*
|
||||
ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
|
||||
|
||||
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
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file has been automatically generated using ChibiStudio board
|
||||
* generator plugin. Do not edit manually.
|
||||
*/
|
||||
|
||||
#include "hal.h"
|
||||
#include "stm32_gpio.h"
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local definitions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported variables. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local variables and types. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Type of STM32 GPIO port setup.
|
||||
*/
|
||||
typedef struct {
|
||||
uint32_t moder;
|
||||
uint32_t otyper;
|
||||
uint32_t ospeedr;
|
||||
uint32_t pupdr;
|
||||
uint32_t odr;
|
||||
uint32_t afrl;
|
||||
uint32_t afrh;
|
||||
} gpio_setup_t;
|
||||
|
||||
/**
|
||||
* @brief Type of STM32 GPIO initialization data.
|
||||
*/
|
||||
typedef struct {
|
||||
#if STM32_HAS_GPIOA || defined(__DOXYGEN__)
|
||||
gpio_setup_t PAData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOB || defined(__DOXYGEN__)
|
||||
gpio_setup_t PBData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOC || defined(__DOXYGEN__)
|
||||
gpio_setup_t PCData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOD || defined(__DOXYGEN__)
|
||||
gpio_setup_t PDData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOE || defined(__DOXYGEN__)
|
||||
gpio_setup_t PEData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOF || defined(__DOXYGEN__)
|
||||
gpio_setup_t PFData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOG || defined(__DOXYGEN__)
|
||||
gpio_setup_t PGData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOH || defined(__DOXYGEN__)
|
||||
gpio_setup_t PHData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOI || defined(__DOXYGEN__)
|
||||
gpio_setup_t PIData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOJ || defined(__DOXYGEN__)
|
||||
gpio_setup_t PJData;
|
||||
#endif
|
||||
#if STM32_HAS_GPIOK || defined(__DOXYGEN__)
|
||||
gpio_setup_t PKData;
|
||||
#endif
|
||||
} gpio_config_t;
|
||||
|
||||
/**
|
||||
* @brief STM32 GPIO static initialization data.
|
||||
*/
|
||||
static const gpio_config_t gpio_default_config = {
|
||||
#if STM32_HAS_GPIOA
|
||||
{VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
|
||||
VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOB
|
||||
{VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
|
||||
VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOC
|
||||
{VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
|
||||
VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOD
|
||||
{VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
|
||||
VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOE
|
||||
{VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
|
||||
VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOF
|
||||
{VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
|
||||
VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOG
|
||||
{VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
|
||||
VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOH
|
||||
{VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
|
||||
VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOI
|
||||
{VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
|
||||
VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOJ
|
||||
{VAL_GPIOJ_MODER, VAL_GPIOJ_OTYPER, VAL_GPIOJ_OSPEEDR, VAL_GPIOJ_PUPDR,
|
||||
VAL_GPIOJ_ODR, VAL_GPIOJ_AFRL, VAL_GPIOJ_AFRH},
|
||||
#endif
|
||||
#if STM32_HAS_GPIOK
|
||||
{VAL_GPIOK_MODER, VAL_GPIOK_OTYPER, VAL_GPIOK_OSPEEDR, VAL_GPIOK_PUPDR,
|
||||
VAL_GPIOK_ODR, VAL_GPIOK_AFRL, VAL_GPIOK_AFRH}
|
||||
#endif
|
||||
};
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
static void gpio_init(stm32_gpio_t *gpiop, const gpio_setup_t *config) {
|
||||
|
||||
gpiop->OTYPER = config->otyper;
|
||||
gpiop->OSPEEDR = config->ospeedr;
|
||||
gpiop->PUPDR = config->pupdr;
|
||||
gpiop->ODR = config->odr;
|
||||
gpiop->AFRL = config->afrl;
|
||||
gpiop->AFRH = config->afrh;
|
||||
gpiop->MODER = config->moder;
|
||||
}
|
||||
|
||||
static void stm32_gpio_init(void) {
|
||||
|
||||
/* Enabling GPIO-related clocks, the mask comes from the
|
||||
registry header file.*/
|
||||
rccResetAHB1(STM32_GPIO_EN_MASK);
|
||||
rccEnableAHB1(STM32_GPIO_EN_MASK, true);
|
||||
|
||||
/* Initializing all the defined GPIO ports.*/
|
||||
#if STM32_HAS_GPIOA
|
||||
gpio_init(GPIOA, &gpio_default_config.PAData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOB
|
||||
gpio_init(GPIOB, &gpio_default_config.PBData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOC
|
||||
gpio_init(GPIOC, &gpio_default_config.PCData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOD
|
||||
gpio_init(GPIOD, &gpio_default_config.PDData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOE
|
||||
gpio_init(GPIOE, &gpio_default_config.PEData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOF
|
||||
gpio_init(GPIOF, &gpio_default_config.PFData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOG
|
||||
gpio_init(GPIOG, &gpio_default_config.PGData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOH
|
||||
gpio_init(GPIOH, &gpio_default_config.PHData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOI
|
||||
gpio_init(GPIOI, &gpio_default_config.PIData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOJ
|
||||
gpio_init(GPIOJ, &gpio_default_config.PJData);
|
||||
#endif
|
||||
#if STM32_HAS_GPIOK
|
||||
gpio_init(GPIOK, &gpio_default_config.PKData);
|
||||
#endif
|
||||
}
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver interrupt handlers. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Early initialization code.
|
||||
* @details GPIO ports and system clocks are initialized before everything
|
||||
* else.
|
||||
*/
|
||||
void __early_init(void) {
|
||||
|
||||
stm32_gpio_init();
|
||||
stm32_clock_init();
|
||||
}
|
||||
|
||||
#if HAL_USE_SDC || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief SDC card detection.
|
||||
*/
|
||||
bool sdc_lld_is_card_inserted(SDCDriver *sdcp) {
|
||||
(void)sdcp;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SDC card write protection detection.
|
||||
*/
|
||||
bool sdc_lld_is_write_protected(SDCDriver *sdcp) {
|
||||
|
||||
(void)sdcp;
|
||||
return false;
|
||||
}
|
||||
#endif /* HAL_USE_SDC */
|
||||
|
||||
#if HAL_USE_MMC_SPI || defined(__DOXYGEN__)
|
||||
/**
|
||||
* @brief MMC_SPI card detection.
|
||||
*/
|
||||
bool mmc_lld_is_card_inserted(MMCDriver *mmcp) {
|
||||
|
||||
(void)mmcp;
|
||||
/* TODO: Fill the implementation.*/
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief MMC_SPI card write protection detection.
|
||||
*/
|
||||
bool mmc_lld_is_write_protected(MMCDriver *mmcp) {
|
||||
|
||||
(void)mmcp;
|
||||
/* TODO: Fill the implementation.*/
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Board-specific initialization code.
|
||||
* @todo Add your board-specific code, if any.
|
||||
*/
|
||||
void boardInit(void) {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
MCU_MODEL = STM32F767I(G-I)Kx
|
||||
CHIBIOS_VERSION = 3.0
|
||||
|
||||
HEADER
|
||||
/*
|
||||
* Board identifier.
|
||||
*/
|
||||
#define BOARD_PX4FMU
|
||||
#define BOARD_NAME "Pixhawk PX4 FMU v5.0"
|
||||
|
||||
/*
|
||||
* Board oscillators-related settings.
|
||||
*/
|
||||
#if !defined(STM32_LSECLK)
|
||||
#define STM32_LSECLK 32768U
|
||||
#endif
|
||||
|
||||
#define STM32_LSEDRV (3U << 3U)
|
||||
|
||||
#if !defined(STM32_HSECLK)
|
||||
#define STM32_HSECLK 16000000U
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Board voltages.
|
||||
* Required for performance limits calculation.
|
||||
*/
|
||||
#define STM32_VDD 330U
|
||||
|
||||
/*
|
||||
* MCU type as defined in the ST header.
|
||||
*/
|
||||
#define STM32F767xx
|
||||
|
||||
CONFIG
|
||||
|
||||
|
||||
# PIN NAME PERIPH_TYPE AF_NUMBER or
|
||||
# PIN NAME FUNCTION PP_or_OPENDRAIN PIN_SPEED PULL_RESISTOR INITIAL_LEVEL AF_NUMBER
|
||||
# SPEED : SPEED_VERYLOW, SPEED_LOW, SPEED_MEDIUM, SPEED_HIGH
|
||||
#
|
||||
# DEFAULT AND SYS
|
||||
#
|
||||
# 'SYS' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||
# 'ADC' => ['ANALOG', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_LOW'],
|
||||
# 'PWM' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_LOW'],
|
||||
# 'ICU' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||
# 'I2C' => ['ALTERNATE', 'OPENDRAIN', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
|
||||
# 'SPI' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||
# 'UART' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
|
||||
# 'OTG' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||
# 'ETH' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||
# 'FSMC' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||
# 'SDIO' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'PULLUP', 'LEVEL_HIGH'],
|
||||
# 'SDIOCK' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||
# 'CAN' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||
# 'DCMI' => ['ALTERNATE', 'PUSHPULL', 'SPEED_HIGH', 'FLOATING', 'LEVEL_HIGH'],
|
||||
# 'LED' => ['OUTPUT', 'PUSHPULL', 'SPEED_VERYLOW', 'FLOATING', 'LEVEL_LOW'],
|
||||
# 'PASSIVE' => ['INPUT', 'PUSHPULL', 'SPEED_VERYLOW', 'FLOATING', 'LEVEL_LOW']);
|
||||
#
|
||||
# SYSTEM
|
||||
A13 SWDIO SYS AF:SYS_JTMS-SWDIO
|
||||
A14 SWCLK SYS AF:SYS_JTCK-SWCLK
|
||||
C14 OSC32_IN SYS AF0
|
||||
C15 OSC32_OUT SYS AF0
|
||||
H00 OSC_IN SYS AF0
|
||||
H01 OSC_OUT SYS AF0
|
||||
|
||||
#DEFAULT
|
||||
DEFAULT INPUT PUSHPULL SPEED_VERYLOW PULLDOWN LEVEL_LOW AF0
|
||||
|
||||
|
||||
# Afficheur :
|
||||
# DISg = PE2 (old PE5)
|
||||
|
||||
|
||||
|
||||
|
||||
# ACTIVE PINS
|
||||
PA00 ADC1 ADC ADC1_IN0 # BAT1_V
|
||||
PA01 ADC2 ADC ADC1_IN1 # BAT1_I
|
||||
PA02 ADC3 ADC ADC1_IN2 # BAT2_V
|
||||
PA03 ADC4 ADC ADC1_IN3 # BAT2_I
|
||||
PA04 ADC1_SPARE2 ADC ADC1_IN4
|
||||
PA05 FMU_CAP1 PASSIVE
|
||||
PA06 SPI1_MISO SPI AF:SPI1_MISO
|
||||
PA07 HEATER PASSIVE
|
||||
PA08 CAN3_RX CAN AF:CAN3_RX
|
||||
PA09 USB_VBUS INPUT PULLDOWN
|
||||
PA10 SERVO2 PWM AF:TIM1_CH3
|
||||
PA11 USB_DM OTG AF:USB_OTG_FS_DM
|
||||
PA12 USB_DP OTG AF:USB_OTG_FS_DP
|
||||
PA15 CAN3_TX CAN AF:CAN3_TX
|
||||
|
||||
PB00 RSSI_IN ADC ADC1_IN8
|
||||
PB01 LED1 LED # LED_RED
|
||||
PB03 FMU_CAP2 PASSIVE
|
||||
PB04 DRDY1_ICM20689 PASSIVE
|
||||
PB05 SPI6_MOSI SPI AF:SPI6_MOSI
|
||||
PB06 USART1_TX UART AF:USART1_TX
|
||||
PB07 USART1_RX UART AF:USART1_RX
|
||||
PB08 I2C1_SCL I2C AF:I2C1_SCL
|
||||
PB09 I2C1_SDA I2C AF:I2C1_SDA
|
||||
PB10 SPI5_RESET PASSIVE
|
||||
PB11 FMU_CAP3 PASSIVE
|
||||
PB12 CAN2_RX CAN AF:CAN2_RX
|
||||
PB13 CAN2_TX CAN AF:CAN2_TX
|
||||
PB14 DRDY2_BMI055_GYRO PASSIVE
|
||||
PB15 DRDY2_BMI055_ACC PASSIVE
|
||||
|
||||
PC00 SCALED_V5 ADC ADC1_IN10
|
||||
PC01 SCALED_3V3_SENSORS ADC ADC1_IN11
|
||||
PC02 HW_VER_SENSE ADC ADC1_IN12
|
||||
PC03 HW_REV_SENSE ADC ADC1_IN13
|
||||
PC04 ADC1_SPARE1 ADC ADC1_IN14
|
||||
PC05 DRDY4_ICM20602 PASSIVE
|
||||
PC06 LED2 LED # LED_GREEN
|
||||
PC07 LED3 LED # LED_BLUE
|
||||
PC08 SDIO_D0 SDIO AF:SDMMC1_D0
|
||||
PC09 SDIO_D1 SDIO AF:SDMMC1_D1
|
||||
PC10 SDIO_D2 SDIO AF:SDMMC1_D2
|
||||
PC11 SDIO_D3 SDIO AF:SDMMC1_D3
|
||||
PC12 SDIO_CK SDIO AF:SDMMC1_CK
|
||||
PC13 DRDY5_BMI055_GYRO PASSIVE
|
||||
|
||||
PD00 UART4_RX UART AF:UART4_RX
|
||||
PD01 UART4_TX UART AF:UART4_TX
|
||||
PD02 SDIO_CMD SDIO AF:SDMMC1_CMD
|
||||
PD03 UART2_CTS PASSIVE
|
||||
PD04 UART2_RTS PASSIVE
|
||||
PD05 UART2_TX UART AF:USART2_TX
|
||||
PD06 UART2_RX UART AF:USART2_RX
|
||||
PD07 SPI1_MOSI SPI AF:SPI1_MOSI
|
||||
PD08 UART3_TX UART AF:USART3_TX
|
||||
PD09 UART3_RX UART AF:USART3_RX
|
||||
PD10 DRDY6_BMI055_ACC PASSIVE
|
||||
PD11 UART3_CTS PASSIVE
|
||||
PD12 UART3_RTS PASSIVE
|
||||
PD13 SERVO5 PWM AF:TIM4_CH2
|
||||
PD14 SERVO6 PWM AF:TIM4_CH3
|
||||
PD15 DRDY7_EXTERNAL1 PASSIVE
|
||||
|
||||
PE00 UART8_RX UART AF:UART8_RX
|
||||
PE01 UART8_TX UART AF:UART8_TX
|
||||
PE02 SPI4_SCK SPI AF:SPI4_SCK
|
||||
PE03 V3V3_SENSORS_EN OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_HIGH
|
||||
PE04 V3V3_SPEKTRUM_EN OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_HIGH
|
||||
PE05 BUZZER PASSIVE
|
||||
PE06 SPI4_MOSI SPI AF:SPI4_MOSI
|
||||
PE07 DRDY8 PASSIVE
|
||||
PE08 UART7_TX UART AF:UART7_TX
|
||||
PE09 SERVO4 PWM AF:TIM1_CH1
|
||||
PE10 SAFETY_SWITCH_IN INPUT PULLDOWN
|
||||
PE11 SERVO3 PWM AF:TIM1_CH2
|
||||
PE12 LED4 LED # SAFTEY_SWITCH_LED
|
||||
PE13 SPI4_MISO SPI AF:SPI4_MISO
|
||||
PE14 SERVO1 PWM AF:TIM1_CH4
|
||||
PE15 V5V_PERIPH_OC PASSIVE
|
||||
|
||||
PF00 I2C2_SDA I2C AF:I2C2_SDA
|
||||
PF01 I2C2_SCL I2C AF:I2C2_SCL
|
||||
PF02 SPI_SLAVE0 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI1_CS1_ICM20689
|
||||
PF03 SPI_SLAVE1 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI1_CS2_ICM20602
|
||||
PF04 SPI_SLAVE2 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI1_CS3_BMI055_GYRO
|
||||
PF05 SPI_SLAVE3 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI2_CS4_FRAM
|
||||
PF06 UART7_RX UART AF:UART7_RX
|
||||
PF07 SPI5_SCK SPI AF:SPI5_SCK
|
||||
PF08 SPI5_MISO SPI AF:SPI5_MISO
|
||||
PF09 SPI5_MOSI SPI AF:SPI5_MOSI
|
||||
PF10 SPI_SLAVE4 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI4_CS1_MS5611
|
||||
PF11 SPI_SLAVE5 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI4_CS2
|
||||
PF12 V5V_HIPOWER_EN OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_LOW
|
||||
PF13 V5V_HIPOWER_OC PASSIVE
|
||||
PF14 I2C4_SCL I2C AF:I2C4_SCL
|
||||
PF15 I2C4_SDA I2C AF:I2C4_SDA
|
||||
|
||||
PG00 HW_VER_DRIVE OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_LOW
|
||||
PG01 POWER_IN_A PASSIVE
|
||||
PG02 POWER_IN_B PASSIVE
|
||||
PG03 POWER_IN_C PASSIVE
|
||||
PG04 V5V_PERIPH_EN OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_LOW
|
||||
PG05 V5V_RC_EN OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_HIGH
|
||||
PG06 V5V_WIFI_EN OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_HIGH
|
||||
PG07 V3V3_SD_CARD_EN OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_HIGH
|
||||
PG08 USART6_RTS PASSIVE
|
||||
PG09 USART6_RX UART AF:USART6_RX
|
||||
PG10 SPI_SLAVE6 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI1_CS4_BMI055_ACC
|
||||
PG11 SPI1_SCK SPI AF:SPI1_SCK
|
||||
PG12 SPI6_MISO SPI AF:SPI6_MISO
|
||||
PG13 SPI6_SCK SPI AF:SPI6_SCK
|
||||
PG14 USART6_TX UART AF:USART6_TX
|
||||
PG15 USART6_CTS PASSIVE
|
||||
|
||||
PH02 CAN1_SILENT_S0 OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_LOW
|
||||
PH03 CAN2_SILENT_S1 OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_LOW
|
||||
PH04 CAN3_SILENT_S2 OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_LOW
|
||||
PH05 SPI_SLAVE7 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI1_CS5_AUX_MEM
|
||||
PH06 SERVO7 PWM AF:TIM12_CH1
|
||||
PH07 I2C3_SCL I2C AF:I2C3_SCL
|
||||
PH08 I2C3_SDA I2C AF:I2C3_SDA
|
||||
PH09 SERVO8 PWM AF:TIM12_CH2
|
||||
PH10 LED5 LED # UI_LED_RED
|
||||
PH11 LED6 LED # UI_LED_GREEN
|
||||
PH12 LED7 LED # UI_LED_BLUE
|
||||
PH13 CAN1_TX CAN AF:CAN1_TX
|
||||
PH14 HW_REV_DRIVE OUTPUT PUSHPULL SPEED_VERYLOW FLOATING LEVEL_LOW
|
||||
PH15 SPI5_SYNC PASSIVE
|
||||
|
||||
PI00 ARMED LED
|
||||
PI01 SPI2_SCK SPI AF:SPI2_SCK
|
||||
PI02 SPI2_MISO SPI AF:SPI2_MISO
|
||||
PI03 SPI2_MOSI SPI AF:SPI2_MOSI
|
||||
PI04 SPI_SLAVE8 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI5_CS1
|
||||
PI05 RC_INPUT PASSIVE
|
||||
PI06 SPI_SLAVE9 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI6_CS1
|
||||
PI07 SPI_SLAVE10 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI6_CS2
|
||||
PI08 SPI_SLAVE11 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI6_CS3
|
||||
PI09 CAN1_RX CAN AF:CAN1_RX
|
||||
PI10 SPI_SLAVE12 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI5_CS2
|
||||
PI11 SPI_SLAVE13 OUTPUT PUSHPULL SPEED_HIGH FLOATING LEVEL_HIGH # SPI5_CS3
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,20 @@
|
||||
#
|
||||
# ChibiOS/RT - Copyright (C) 2006-2013 Giovanni Di Sirio
|
||||
#
|
||||
# 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
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# Required include directories
|
||||
BOARDINC = $(CHIBIOS_BOARD_DIR)
|
||||
|
||||
# List of all the board related files.
|
||||
BOARDSRC = ${BOARDINC}/board.c
|
||||
@@ -0,0 +1,270 @@
|
||||
/* CHIBIOS FIX */
|
||||
#include "ch.h"
|
||||
|
||||
/*---------------------------------------------------------------------------/
|
||||
/ FatFs - FAT file system module configuration file
|
||||
/---------------------------------------------------------------------------*/
|
||||
|
||||
#define FFCONF_DEF 87030 /* Revision ID */
|
||||
|
||||
/*---------------------------------------------------------------------------/
|
||||
/ Function Configurations
|
||||
/---------------------------------------------------------------------------*/
|
||||
|
||||
#define FF_FS_READONLY 0
|
||||
/* This option switches read-only configuration. (0:Read/Write or 1:Read-only)
|
||||
/ Read-only configuration removes writing API functions, f_write(), f_sync(),
|
||||
/ f_unlink(), f_mkdir(), f_chmod(), f_rename(), f_truncate(), f_getfree()
|
||||
/ and optional writing functions as well. */
|
||||
|
||||
|
||||
#define FF_FS_MINIMIZE 0
|
||||
/* This option defines minimization level to remove some basic API functions.
|
||||
/
|
||||
/ 0: All basic functions are enabled.
|
||||
/ 1: f_stat(), f_getfree(), f_unlink(), f_mkdir(), f_truncate() and f_rename()
|
||||
/ are removed.
|
||||
/ 2: f_opendir(), f_readdir() and f_closedir() are removed in addition to 1.
|
||||
/ 3: f_lseek() function is removed in addition to 2. */
|
||||
|
||||
|
||||
#define FF_USE_STRFUNC 0
|
||||
/* This option switches string functions, f_gets(), f_putc(), f_puts() and
|
||||
/ f_printf().
|
||||
/
|
||||
/ 0: Disable string functions.
|
||||
/ 1: Enable without LF-CRLF conversion.
|
||||
/ 2: Enable with LF-CRLF conversion. */
|
||||
|
||||
|
||||
#define FF_USE_FIND 1
|
||||
/* This option switches filtered directory read functions, f_findfirst() and
|
||||
/ f_findnext(). (0:Disable, 1:Enable 2:Enable with matching altname[] too) */
|
||||
|
||||
|
||||
#define FF_USE_MKFS 1
|
||||
/* This option switches f_mkfs() function. (0:Disable or 1:Enable) */
|
||||
|
||||
|
||||
#define FF_USE_FASTSEEK 1
|
||||
/* This option switches fast seek function. (0:Disable or 1:Enable) */
|
||||
|
||||
|
||||
#define FF_USE_EXPAND 1
|
||||
/* This option switches f_expand function. (0:Disable or 1:Enable) */
|
||||
|
||||
|
||||
#define FF_USE_CHMOD 1
|
||||
/* This option switches attribute manipulation functions, f_chmod() and f_utime().
|
||||
/ (0:Disable or 1:Enable) Also FF_FS_READONLY needs to be 0 to enable this option. */
|
||||
|
||||
|
||||
#define FF_USE_LABEL 1
|
||||
/* This option switches volume label functions, f_getlabel() and f_setlabel().
|
||||
/ (0:Disable or 1:Enable) */
|
||||
|
||||
|
||||
#define FF_USE_FORWARD 1
|
||||
/* This option switches f_forward() function. (0:Disable or 1:Enable) */
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------/
|
||||
/ Locale and Namespace Configurations
|
||||
/---------------------------------------------------------------------------*/
|
||||
|
||||
#define FF_CODE_PAGE 850
|
||||
/* This option specifies the OEM code page to be used on the target system.
|
||||
/ Incorrect setting of the code page can cause a file open failure.
|
||||
/
|
||||
/ 1 - ASCII (No extended character. Non-LFN cfg. only)
|
||||
/ 437 - U.S.
|
||||
/ 720 - Arabic
|
||||
/ 737 - Greek
|
||||
/ 771 - KBL
|
||||
/ 775 - Baltic
|
||||
/ 850 - Latin 1
|
||||
/ 852 - Latin 2
|
||||
/ 855 - Cyrillic
|
||||
/ 857 - Turkish
|
||||
/ 860 - Portuguese
|
||||
/ 861 - Icelandic
|
||||
/ 862 - Hebrew
|
||||
/ 863 - Canadian French
|
||||
/ 864 - Arabic
|
||||
/ 865 - Nordic
|
||||
/ 866 - Russian
|
||||
/ 869 - Greek 2
|
||||
/ 932 - Japanese (DBCS)
|
||||
/ 936 - Simplified Chinese (DBCS)
|
||||
/ 949 - Korean (DBCS)
|
||||
/ 950 - Traditional Chinese (DBCS)
|
||||
*/
|
||||
|
||||
|
||||
#define FF_USE_LFN 3
|
||||
#define FF_MAX_LFN 255
|
||||
/* The FF_USE_LFN switches the support of long file name (LFN).
|
||||
/
|
||||
/ 0: Disable support of LFN. _MAX_LFN has no effect.
|
||||
/ 1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
|
||||
/ 2: Enable LFN with dynamic working buffer on the STACK.
|
||||
/ 3: Enable LFN with dynamic working buffer on the HEAP.
|
||||
/
|
||||
/ To enable the LFN, Unicode handling functions (option/unicode.c) must be added
|
||||
/ to the project. The working buffer occupies (_MAX_LFN + 1) * 2 bytes and
|
||||
/ additional 608 bytes at exFAT enabled. _MAX_LFN can be in range from 12 to 255.
|
||||
/ It should be set 255 to support full featured LFN operations.
|
||||
/ When use stack for the working buffer, take care on stack overflow. When use heap
|
||||
/ memory for the working buffer, memory management functions, ff_memalloc() and
|
||||
/ ff_memfree(), must be added to the project. */
|
||||
|
||||
|
||||
#define FF_LFN_UNICODE 0
|
||||
/* This option switches character encoding on the API. (0:ANSI/OEM or 1:UTF-16)
|
||||
/ To use Unicode string for the path name, enable LFN and set _LFN_UNICODE = 1.
|
||||
/ This option also affects behavior of string I/O functions. */
|
||||
|
||||
|
||||
#define FF_STRF_ENCODE 3
|
||||
/* When _LFN_UNICODE == 1, this option selects the character encoding ON THE FILE to
|
||||
/ be read/written via string I/O functions, f_gets(), f_putc(), f_puts and f_printf().
|
||||
/
|
||||
/ 0: ANSI/OEM
|
||||
/ 1: UTF-16LE
|
||||
/ 2: UTF-16BE
|
||||
/ 3: UTF-8
|
||||
/
|
||||
/ This option has no effect when _LFN_UNICODE == 0. */
|
||||
|
||||
|
||||
#define FF_FS_RPATH 1
|
||||
/* This option configures support of relative path.
|
||||
/
|
||||
/ 0: Disable relative path and remove related functions.
|
||||
/ 1: Enable relative path. f_chdir() and f_chdrive() are available.
|
||||
/ 2: f_getcwd() function is available in addition to 1.
|
||||
*/
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------/
|
||||
/ Drive/Volume Configurations
|
||||
/---------------------------------------------------------------------------*/
|
||||
|
||||
#define FF_VOLUMES 1
|
||||
/* Number of volumes (logical drives) to be used. */
|
||||
|
||||
|
||||
#define FF_STR_VOLUME_ID 0
|
||||
#define FF_VOLUME_STRS "RAM","NAND","CF","SD","SD2","USB","USB2","USB3"
|
||||
/* _STR_VOLUME_ID switches string support of volume ID.
|
||||
/ When _STR_VOLUME_ID is set to 1, also pre-defined strings can be used as drive
|
||||
/ number in the path name. _VOLUME_STRS defines the drive ID strings for each
|
||||
/ logical drives. Number of items must be equal to _VOLUMES. Valid characters for
|
||||
/ the drive ID strings are: A-Z and 0-9. */
|
||||
|
||||
|
||||
#define FF_MULTI_PARTITION 0
|
||||
/* This option switches support of multi-partition on a physical drive.
|
||||
/ By default (0), each logical drive number is bound to the same physical drive
|
||||
/ number and only an FAT volume found on the physical drive will be mounted.
|
||||
/ When multi-partition is enabled (1), each logical drive number can be bound to
|
||||
/ arbitrary physical drive and partition listed in the VolToPart[]. Also f_fdisk()
|
||||
/ funciton will be available. */
|
||||
|
||||
|
||||
#define FF_MIN_SS 512
|
||||
#define FF_MAX_SS 512
|
||||
/* These options configure the range of sector size to be supported. (512, 1024,
|
||||
/ 2048 or 4096) Always set both 512 for most systems, all type of memory cards and
|
||||
/ harddisk. But a larger value may be required for on-board flash memory and some
|
||||
/ type of optical media. When _MAX_SS is larger than _MIN_SS, FatFs is configured
|
||||
/ to variable sector size and GET_SECTOR_SIZE command must be implemented to the
|
||||
/ disk_ioctl() function. */
|
||||
|
||||
|
||||
#define FF_USE_TRIM 0
|
||||
/* This option switches support of ATA-TRIM. (0:Disable or 1:Enable)
|
||||
/ To enable Trim function, also CTRL_TRIM command should be implemented to the
|
||||
/ disk_ioctl() function. */
|
||||
|
||||
|
||||
#define FF_FS_NOFSINFO 0
|
||||
/* If you need to know correct free space on the FAT32 volume, set bit 0 of this
|
||||
/ option, and f_getfree() function at first time after volume mount will force
|
||||
/ a full FAT scan. Bit 1 controls the use of last allocated cluster number.
|
||||
/
|
||||
/ bit0=0: Use free cluster count in the FSINFO if available.
|
||||
/ bit0=1: Do not trust free cluster count in the FSINFO.
|
||||
/ bit1=0: Use last allocated cluster number in the FSINFO if available.
|
||||
/ bit1=1: Do not trust last allocated cluster number in the FSINFO.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------/
|
||||
/ System Configurations
|
||||
/---------------------------------------------------------------------------*/
|
||||
|
||||
#define FF_FS_TINY 0
|
||||
/* This option switches tiny buffer configuration. (0:Normal or 1:Tiny)
|
||||
/ At the tiny configuration, size of file object (FIL) is reduced _MAX_SS bytes.
|
||||
/ Instead of private sector buffer eliminated from the file object, common sector
|
||||
/ buffer in the file system object (FATFS) is used for the file data transfer. */
|
||||
|
||||
|
||||
#define FF_FS_EXFAT 1
|
||||
/* This option switches support of exFAT file system. (0:Disable or 1:Enable)
|
||||
/ When enable exFAT, also LFN needs to be enabled. (FF_USE_LFN >= 1)
|
||||
/ Note that enabling exFAT discards C89 compatibility. */
|
||||
|
||||
|
||||
#define FF_FS_NORTC 0
|
||||
#define FF_NORTC_MON 1
|
||||
#define FF_NORTC_MDAY 1
|
||||
#define FF_NORTC_YEAR 2016
|
||||
/* The option FF_FS_NORTC switches timestamp functiton. If the system does not have
|
||||
/ any RTC function or valid timestamp is not needed, set FF_FS_NORTC = 1 to disable
|
||||
/ the timestamp function. All objects modified by FatFs will have a fixed timestamp
|
||||
/ defined by _NORTC_MON, _NORTC_MDAY and _NORTC_YEAR in local time.
|
||||
/ To enable timestamp function (FF_FS_NORTC = 0), get_fattime() function need to be
|
||||
/ added to the project to get current time form real-time clock. _NORTC_MON,
|
||||
/ _NORTC_MDAY and _NORTC_YEAR have no effect.
|
||||
/ These options have no effect at read-only configuration (FF_FS_READONLY = 1). */
|
||||
|
||||
|
||||
#define FF_FS_LOCK 0
|
||||
/* The option FF_FS_LOCK switches file lock function to control duplicated file open
|
||||
/ and illegal operation to open objects. This option must be 0 when FF_FS_READONLY
|
||||
/ is 1.
|
||||
/
|
||||
/ 0: Disable file lock function. To avoid volume corruption, application program
|
||||
/ should avoid illegal open, remove and rename to the open objects.
|
||||
/ >0: Enable file lock function. The value defines how many files/sub-directories
|
||||
/ can be opened simultaneously under file lock control. Note that the file
|
||||
/ lock control is independent of re-entrancy. */
|
||||
|
||||
|
||||
#define FF_FS_REENTRANT 1
|
||||
#define FF_FS_TIMEOUT TIME_MS2I(1000)
|
||||
#define FF_SYNC_t semaphore_t*
|
||||
/* The option FF_FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
|
||||
/ module itself. Note that regardless of this option, file access to different
|
||||
/ volume is always re-entrant and volume control functions, f_mount(), f_mkfs()
|
||||
/ and f_fdisk() function, are always not re-entrant. Only file/directory access
|
||||
/ to the same volume is under control of this function.
|
||||
/
|
||||
/ 0: Disable re-entrancy. FF_FS_TIMEOUT and _SYNC_t have no effect.
|
||||
/ 1: Enable re-entrancy. Also user provided synchronization handlers,
|
||||
/ ff_req_grant(), ff_rel_grant(), ff_del_syncobj() and ff_cre_syncobj()
|
||||
/ function, must be added to the project. Samples are available in
|
||||
/ option/syscall.c.
|
||||
/
|
||||
/ The FF_FS_TIMEOUT defines timeout period in unit of time tick.
|
||||
/ The _SYNC_t defines O/S dependent sync object type. e.g. HANDLE, ID, OS_EVENT*,
|
||||
/ SemaphoreHandle_t and etc.. A header file for O/S definitions needs to be
|
||||
/ included somewhere in the scope of ff.h. */
|
||||
|
||||
/* #include <windows.h> // O/S definitions */
|
||||
|
||||
|
||||
/*--- End of configuration options ---*/
|
||||
@@ -0,0 +1,422 @@
|
||||
/*
|
||||
ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio
|
||||
|
||||
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
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef _MCUCONF_H_
|
||||
#define _MCUCONF_H_
|
||||
|
||||
/*
|
||||
* STM32F4xx drivers configuration.
|
||||
* The following settings override the default settings present in
|
||||
* the various device driver implementation headers.
|
||||
* Note that the settings for each driver only have effect if the whole
|
||||
* driver is enabled in halconf.h.
|
||||
*
|
||||
* IRQ priorities:
|
||||
* 15...0 Lowest...Highest.
|
||||
*
|
||||
* DMA priorities:
|
||||
* 0...3 Lowest...Highest.
|
||||
*/
|
||||
|
||||
#define STM32F7xx_MCUCONF
|
||||
|
||||
/*
|
||||
* HAL driver system settings.
|
||||
*/
|
||||
#define STM32_NO_INIT FALSE
|
||||
#define STM32_HSI_ENABLED TRUE
|
||||
#define STM32_LSI_ENABLED TRUE
|
||||
#define STM32_HSE_ENABLED TRUE
|
||||
#define STM32_LSE_ENABLED FALSE
|
||||
#define STM32_CLOCK48_REQUIRED TRUE
|
||||
#define STM32_SW STM32_SW_PLL
|
||||
#define STM32_PLLSRC STM32_PLLSRC_HSE
|
||||
#define STM32_PLLM_VALUE 8
|
||||
#define STM32_PLLN_VALUE 216
|
||||
#define STM32_PLLP_VALUE 2
|
||||
#define STM32_PLLQ_VALUE 9
|
||||
#define STM32_HPRE STM32_HPRE_DIV1
|
||||
#define STM32_PPRE1 STM32_PPRE1_DIV4
|
||||
#define STM32_PPRE2 STM32_PPRE2_DIV2
|
||||
#define STM32_RTCSEL STM32_RTCSEL_LSI
|
||||
#define STM32_RTCPRE_VALUE 25
|
||||
#define STM32_MCO1SEL STM32_MCO1SEL_HSI
|
||||
#define STM32_MCO1PRE STM32_MCO1PRE_DIV1
|
||||
#define STM32_MCO2SEL STM32_MCO2SEL_SYSCLK
|
||||
#define STM32_MCO2PRE STM32_MCO2PRE_DIV5
|
||||
#define STM32_I2SSRC STM32_I2SSRC_CKIN
|
||||
#define STM32_PLLI2SN_VALUE 192
|
||||
#define STM32_PLLI2SR_VALUE 5
|
||||
#define STM32_PVD_ENABLE FALSE
|
||||
#define STM32_PLS STM32_PLS_LEV0
|
||||
#define STM32_BKPRAM_ENABLE FALSE
|
||||
|
||||
/*
|
||||
* ADC driver system settings.
|
||||
*/
|
||||
#define STM32_ADC_ADCPRE ADC_CCR_ADCPRE_DIV8
|
||||
#define STM32_ADC_USE_ADC1 TRUE
|
||||
#define STM32_ADC_USE_ADC2 FALSE
|
||||
#define STM32_ADC_USE_ADC3 FALSE
|
||||
#define STM32_ADC_ADC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 0)
|
||||
#define STM32_ADC_ADC2_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
|
||||
#define STM32_ADC_ADC3_DMA_STREAM STM32_DMA_STREAM_ID(2, 1)
|
||||
#define STM32_ADC_ADC1_DMA_PRIORITY 2
|
||||
#define STM32_ADC_ADC2_DMA_PRIORITY 2
|
||||
#define STM32_ADC_ADC3_DMA_PRIORITY 2
|
||||
#define STM32_ADC_IRQ_PRIORITY 6
|
||||
#define STM32_ADC_ADC1_DMA_IRQ_PRIORITY 6
|
||||
#define STM32_ADC_ADC2_DMA_IRQ_PRIORITY 6
|
||||
#define STM32_ADC_ADC3_DMA_IRQ_PRIORITY 6
|
||||
|
||||
/*
|
||||
* CAN driver system settings.
|
||||
*/
|
||||
#if USE_CAN1
|
||||
#define STM32_CAN_USE_CAN1 TRUE
|
||||
#else
|
||||
#define STM32_CAN_USE_CAN1 FALSE
|
||||
#endif
|
||||
#if USE_CAN2
|
||||
#define STM32_CAN_USE_CAN2 TRUE
|
||||
#else
|
||||
#define STM32_CAN_USE_CAN2 FALSE
|
||||
#endif
|
||||
#define STM32_CAN_CAN1_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.
|
||||
*/
|
||||
#define STM32_EXT_EXTI0_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI1_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI2_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI3_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI4_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI5_9_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI10_15_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI16_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI17_IRQ_PRIORITY 15
|
||||
#define STM32_EXT_EXTI18_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI19_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI20_IRQ_PRIORITY 6
|
||||
#define STM32_EXT_EXTI21_IRQ_PRIORITY 15
|
||||
#define STM32_EXT_EXTI22_IRQ_PRIORITY 15
|
||||
|
||||
/*
|
||||
* GPT driver system settings.
|
||||
*/
|
||||
#define STM32_GPT_USE_TIM1 FALSE
|
||||
#define STM32_GPT_USE_TIM2 FALSE
|
||||
#define STM32_GPT_USE_TIM3 FALSE
|
||||
#define STM32_GPT_USE_TIM4 FALSE
|
||||
#define STM32_GPT_USE_TIM5 FALSE
|
||||
#define STM32_GPT_USE_TIM6 FALSE
|
||||
#define STM32_GPT_USE_TIM7 FALSE
|
||||
#define STM32_GPT_USE_TIM8 FALSE
|
||||
#define STM32_GPT_USE_TIM9 FALSE
|
||||
#define STM32_GPT_USE_TIM11 FALSE
|
||||
#define STM32_GPT_USE_TIM12 FALSE
|
||||
#define STM32_GPT_USE_TIM14 FALSE
|
||||
#define STM32_GPT_TIM1_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM2_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM3_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM4_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM5_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM6_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM7_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM8_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM9_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM11_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM12_IRQ_PRIORITY 7
|
||||
#define STM32_GPT_TIM14_IRQ_PRIORITY 7
|
||||
|
||||
/*
|
||||
* I2C driver system settings.
|
||||
*/
|
||||
#if USE_I2C1
|
||||
#define STM32_I2C_USE_I2C1 TRUE
|
||||
#else
|
||||
#define STM32_I2C_USE_I2C1 FALSE
|
||||
#endif
|
||||
#if USE_I2C2
|
||||
#define STM32_I2C_USE_I2C2 TRUE
|
||||
#else
|
||||
#define STM32_I2C_USE_I2C2 FALSE
|
||||
#endif
|
||||
#if USE_I2C3
|
||||
#define STM32_I2C_USE_I2C3 TRUE
|
||||
#else
|
||||
#define STM32_I2C_USE_I2C3 FALSE
|
||||
#endif
|
||||
#if USE_I2C4
|
||||
#define STM32_I2C_USE_I2C4 TRUE
|
||||
#else
|
||||
#define STM32_I2C_USE_I2C4 FALSE
|
||||
#endif
|
||||
#define STM32_I2C_BUSY_TIMEOUT 50
|
||||
#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
|
||||
#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
|
||||
#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
|
||||
#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
|
||||
#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
|
||||
#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
|
||||
#define STM32_I2C_I2C4_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
|
||||
#define STM32_I2C_I2C4_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
|
||||
#define STM32_I2C_I2C1_IRQ_PRIORITY 5
|
||||
#define STM32_I2C_I2C2_IRQ_PRIORITY 5
|
||||
#define STM32_I2C_I2C3_IRQ_PRIORITY 5
|
||||
#define STM32_I2C_I2C1_DMA_PRIORITY 3
|
||||
#define STM32_I2C_I2C2_DMA_PRIORITY 3
|
||||
#define STM32_I2C_I2C3_DMA_PRIORITY 3
|
||||
#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
|
||||
|
||||
/*
|
||||
* ICU driver system settings.
|
||||
*/
|
||||
#define STM32_ICU_USE_TIM1 FALSE
|
||||
#define STM32_ICU_USE_TIM2 FALSE
|
||||
#define STM32_ICU_USE_TIM3 FALSE
|
||||
#define STM32_ICU_USE_TIM4 FALSE
|
||||
#define STM32_ICU_USE_TIM5 FALSE
|
||||
#define STM32_ICU_USE_TIM8 FALSE
|
||||
#define STM32_ICU_USE_TIM9 TRUE
|
||||
#define STM32_ICU_TIM1_IRQ_PRIORITY 7
|
||||
#define STM32_ICU_TIM2_IRQ_PRIORITY 7
|
||||
#define STM32_ICU_TIM3_IRQ_PRIORITY 7
|
||||
#define STM32_ICU_TIM4_IRQ_PRIORITY 7
|
||||
#define STM32_ICU_TIM5_IRQ_PRIORITY 7
|
||||
#define STM32_ICU_TIM8_IRQ_PRIORITY 7
|
||||
#define STM32_ICU_TIM9_IRQ_PRIORITY 7
|
||||
|
||||
/*
|
||||
* MAC driver system settings.
|
||||
*/
|
||||
#define STM32_MAC_TRANSMIT_BUFFERS 2
|
||||
#define STM32_MAC_RECEIVE_BUFFERS 4
|
||||
#define STM32_MAC_BUFFERS_SIZE 1522
|
||||
#define STM32_MAC_PHY_TIMEOUT 100
|
||||
#define STM32_MAC_ETH1_CHANGE_PHY_STATE TRUE
|
||||
#define STM32_MAC_ETH1_IRQ_PRIORITY 13
|
||||
#define STM32_MAC_IP_CHECKSUM_OFFLOAD 0
|
||||
|
||||
/*
|
||||
* PWM driver system settings.
|
||||
*/
|
||||
#define STM32_PWM_USE_ADVANCED FALSE
|
||||
#define STM32_PWM_USE_TIM1 TRUE
|
||||
#define STM32_PWM_USE_TIM2 FALSE
|
||||
#define STM32_PWM_USE_TIM3 FALSE
|
||||
#define STM32_PWM_USE_TIM4 TRUE
|
||||
#define STM32_PWM_USE_TIM5 FALSE
|
||||
#define STM32_PWM_USE_TIM8 FALSE
|
||||
#define STM32_PWM_USE_TIM9 FALSE
|
||||
#define STM32_PWM_TIM1_IRQ_PRIORITY 7
|
||||
#define STM32_PWM_TIM2_IRQ_PRIORITY 7
|
||||
#define STM32_PWM_TIM3_IRQ_PRIORITY 7
|
||||
#define STM32_PWM_TIM4_IRQ_PRIORITY 7
|
||||
#define STM32_PWM_TIM5_IRQ_PRIORITY 7
|
||||
#define STM32_PWM_TIM8_IRQ_PRIORITY 7
|
||||
#define STM32_PWM_TIM9_IRQ_PRIORITY 7
|
||||
|
||||
/*
|
||||
* SERIAL driver system settings.
|
||||
*/
|
||||
#if USE_UART1
|
||||
#define STM32_SERIAL_USE_USART1 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_USART1 FALSE
|
||||
#endif
|
||||
#if USE_UART2
|
||||
#define STM32_SERIAL_USE_USART2 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_USART2 FALSE
|
||||
#endif
|
||||
#if USE_UART3
|
||||
#define STM32_SERIAL_USE_USART3 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_USART3 FALSE
|
||||
#endif
|
||||
#if USE_UART4
|
||||
#define STM32_SERIAL_USE_UART4 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_UART4 FALSE
|
||||
#endif
|
||||
#if USE_UART5
|
||||
#define STM32_SERIAL_USE_UART5 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_UART5 FALSE
|
||||
#endif
|
||||
#if USE_UART6
|
||||
#define STM32_SERIAL_USE_USART6 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_USART6 FALSE
|
||||
#endif
|
||||
#if USE_UART7
|
||||
#define STM32_SERIAL_USE_UART7 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_UART7 FALSE
|
||||
#endif
|
||||
#if USE_UART8
|
||||
#define STM32_SERIAL_USE_UART8 TRUE
|
||||
#else
|
||||
#define STM32_SERIAL_USE_UART8 FALSE
|
||||
#endif
|
||||
#define STM32_SERIAL_USART1_PRIORITY 12
|
||||
#define STM32_SERIAL_USART2_PRIORITY 12
|
||||
#define STM32_SERIAL_USART3_PRIORITY 12
|
||||
#define STM32_SERIAL_UART4_PRIORITY 12
|
||||
#define STM32_SERIAL_UART5_PRIORITY 12
|
||||
#define STM32_SERIAL_USART6_PRIORITY 12
|
||||
#define STM32_SERIAL_UART7_PRIORITY 12
|
||||
#define STM32_SERIAL_UART8_PRIORITY 12
|
||||
|
||||
/*
|
||||
* SPI driver system settings.
|
||||
*/
|
||||
#if USE_SPI1
|
||||
#define STM32_SPI_USE_SPI1 TRUE
|
||||
#else
|
||||
#define STM32_SPI_USE_SPI1 FALSE
|
||||
#endif
|
||||
#if USE_SPI2
|
||||
#define STM32_SPI_USE_SPI2 TRUE
|
||||
#else
|
||||
#define STM32_SPI_USE_SPI2 FALSE
|
||||
#endif
|
||||
#if USE_SPI3
|
||||
#define STM32_SPI_USE_SPI3 TRUE
|
||||
#else
|
||||
#define STM32_SPI_USE_SPI3 FALSE
|
||||
#endif
|
||||
#if USE_SPI4
|
||||
#define STM32_SPI_USE_SPI4 TRUE
|
||||
#else
|
||||
#define STM32_SPI_USE_SPI4 FALSE
|
||||
#endif
|
||||
#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
|
||||
#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5)
|
||||
#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
|
||||
#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
|
||||
#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
|
||||
#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
|
||||
#define STM32_SPI_SPI4_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 3)
|
||||
#define STM32_SPI_SPI4_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 4)
|
||||
#define STM32_SPI_SPI1_DMA_PRIORITY 1
|
||||
#define STM32_SPI_SPI2_DMA_PRIORITY 1
|
||||
#define STM32_SPI_SPI3_DMA_PRIORITY 1
|
||||
#define STM32_SPI_SPI4_DMA_PRIORITY 1
|
||||
#define STM32_SPI_SPI1_IRQ_PRIORITY 10
|
||||
#define STM32_SPI_SPI2_IRQ_PRIORITY 10
|
||||
#define STM32_SPI_SPI3_IRQ_PRIORITY 10
|
||||
#define STM32_SPI_SPI4_IRQ_PRIORITY 10
|
||||
#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
|
||||
|
||||
/*
|
||||
* ST driver system settings.
|
||||
*/
|
||||
#define STM32_ST_IRQ_PRIORITY 8
|
||||
#define STM32_ST_USE_TIMER 2
|
||||
|
||||
/*
|
||||
* UART driver system settings.
|
||||
*/
|
||||
#define STM32_UART_USE_USART1 FALSE
|
||||
#define STM32_UART_USE_USART2 FALSE
|
||||
#define STM32_UART_USE_USART3 FALSE
|
||||
#define STM32_UART_USE_UART4 FALSE
|
||||
#define STM32_UART_USE_UART5 FALSE
|
||||
#define STM32_UART_USE_USART6 FALSE
|
||||
#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 5) // Not used: conflict SPI1
|
||||
#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 7)
|
||||
#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5)
|
||||
#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 6)
|
||||
#define STM32_UART_USART3_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
|
||||
#define STM32_UART_USART3_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 3)
|
||||
#define STM32_UART_UART4_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 2)
|
||||
#define STM32_UART_UART4_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4)
|
||||
#define STM32_UART_UART5_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
|
||||
#define STM32_UART_UART5_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 7)
|
||||
#define STM32_UART_USART6_RX_DMA_STREAM STM32_DMA_STREAM_ID(2, 2)
|
||||
#define STM32_UART_USART6_TX_DMA_STREAM STM32_DMA_STREAM_ID(2, 6) // Not used: conflict SDIO
|
||||
#define STM32_UART_USART1_IRQ_PRIORITY 12
|
||||
#define STM32_UART_USART2_IRQ_PRIORITY 12
|
||||
#define STM32_UART_USART3_IRQ_PRIORITY 12
|
||||
#define STM32_UART_UART4_IRQ_PRIORITY 12
|
||||
#define STM32_UART_UART5_IRQ_PRIORITY 12
|
||||
#define STM32_UART_USART6_IRQ_PRIORITY 12
|
||||
#define STM32_UART_USART1_DMA_PRIORITY 1
|
||||
#define STM32_UART_USART2_DMA_PRIORITY 0
|
||||
#define STM32_UART_USART3_DMA_PRIORITY 0
|
||||
#define STM32_UART_UART4_DMA_PRIORITY 0
|
||||
#define STM32_UART_UART5_DMA_PRIORITY 0
|
||||
#define STM32_UART_USART6_DMA_PRIORITY 0
|
||||
#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
|
||||
|
||||
/*
|
||||
* USB driver system settings.
|
||||
*/
|
||||
#define STM32_USB_USE_OTG1 TRUE // FS, DFU_BOOT
|
||||
#define STM32_USB_USE_OTG2 FALSE // HS
|
||||
#define STM32_USB_OTG1_IRQ_PRIORITY 14
|
||||
#define STM32_USB_OTG2_IRQ_PRIORITY 14
|
||||
#define STM32_USB_OTG1_RX_FIFO_SIZE 512
|
||||
#define STM32_USB_OTG2_RX_FIFO_SIZE 512
|
||||
#define STM32_USB_OTG_THREAD_PRIO HIGHPRIO
|
||||
#define STM32_USB_OTG_THREAD_STACK_SIZE 256
|
||||
#define STM32_USB_OTGFIFO_FILL_BASEPRI 0
|
||||
|
||||
/*
|
||||
* SDC driver system settings.
|
||||
*/
|
||||
#define STM32_SDC_USE_SDMMC1 TRUE
|
||||
#define STM32_SDC_SDMMC_UNALIGNED_SUPPORT TRUE
|
||||
#define STM32_SDC_SDMMC_WRITE_TIMEOUT 250
|
||||
#define STM32_SDC_SDMMC_READ_TIMEOUT 25
|
||||
#define STM32_SDC_SDMMC_CLOCK_DELAY 10
|
||||
#define STM32_SDC_SDMMC1_DMA_STREAM STM32_DMA_STREAM_ID(2, 6)
|
||||
#define STM32_SDC_SDMMC1_DMA_PRIORITY 3
|
||||
#define STM32_SDC_SDMMC1_IRQ_PRIORITY 9
|
||||
|
||||
/*
|
||||
sdlog message buffer and queue configuration
|
||||
*/
|
||||
#define SDLOG_QUEUE_BUCKETS 1024
|
||||
#define SDLOG_MAX_MESSAGE_LEN 252
|
||||
#define SDLOG_NUM_FILES 2
|
||||
#define SDLOG_ALL_BUFFERS_SIZE (SDLOG_NUM_FILES*4096*2)
|
||||
|
||||
|
||||
/*
|
||||
* workaround hardware bug in REV.A revision of old STM32F4 (sold in 2012, early 2013)
|
||||
*/
|
||||
|
||||
#define STM32_USE_REVISION_A_FIX 1
|
||||
|
||||
#endif /* _MCUCONF_H_ */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -125,6 +125,10 @@
|
||||
#define SPI_SELECT_SLAVE4_PORT GPIOD
|
||||
#define SPI_SELECT_SLAVE4_PIN GPIO10
|
||||
|
||||
/* MAG_CS on SPI1 */
|
||||
#define SPI_SELECT_SLAVE5_PORT GPIOC
|
||||
#define SPI_SELECT_SLAVE5_PIN GPIO1
|
||||
|
||||
/* SPI3 NSS on microSD connector */
|
||||
/*
|
||||
#define SPI_SELECT_SLAVE3_PORT GPIOA
|
||||
|
||||
Reference in New Issue
Block a user