151 lines
3.8 KiB
C
151 lines
3.8 KiB
C
/*
|
|
* This file is part of Cleanflight and Betaflight.
|
|
*
|
|
* Cleanflight and Betaflight are free software. You can redistribute
|
|
* this software and/or modify this software 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.
|
|
*
|
|
* Cleanflight and Betaflight are distributed in the hope that they
|
|
* will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
* See the GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this software.
|
|
*
|
|
* If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#define NOINLINE __attribute__((noinline))
|
|
|
|
#if !defined(UNIT_TEST) && !defined(SIMULATOR_BUILD) && !(USBD_DEBUG_LEVEL > 0)
|
|
#pragma GCC poison sprintf snprintf
|
|
#endif
|
|
|
|
#if defined(STM32F722xx) || defined(STM32F745xx) || defined(STM32F746xx) || defined(STM32F765xx)
|
|
#include "stm32f7xx.h"
|
|
#include "stm32f7xx_hal.h"
|
|
#include "system_stm32f7xx.h"
|
|
|
|
#include "stm32f7xx_ll_spi.h"
|
|
#include "stm32f7xx_ll_gpio.h"
|
|
#include "stm32f7xx_ll_dma.h"
|
|
#include "stm32f7xx_ll_rcc.h"
|
|
#include "stm32f7xx_ll_bus.h"
|
|
#include "stm32f7xx_ll_tim.h"
|
|
#include "stm32f7xx_ll_system.h"
|
|
#include "drivers/stm32f7xx_ll_ex.h"
|
|
|
|
// Chip Unique ID on F7
|
|
#if defined(STM32F722xx)
|
|
#define U_ID_0 (*(uint32_t*)0x1ff07a10)
|
|
#define U_ID_1 (*(uint32_t*)0x1ff07a14)
|
|
#define U_ID_2 (*(uint32_t*)0x1ff07a18)
|
|
#else
|
|
#define U_ID_0 (*(uint32_t*)0x1ff0f420)
|
|
#define U_ID_1 (*(uint32_t*)0x1ff0f424)
|
|
#define U_ID_2 (*(uint32_t*)0x1ff0f428)
|
|
#endif
|
|
|
|
#ifndef STM32F7
|
|
#define STM32F7
|
|
#endif
|
|
|
|
#elif defined(STM32F40_41xxx) || defined (STM32F411xE) || defined (STM32F446xx)
|
|
|
|
#include "stm32f4xx.h"
|
|
|
|
// Chip Unique ID on F405
|
|
#define U_ID_0 (*(uint32_t*)0x1fff7a10)
|
|
#define U_ID_1 (*(uint32_t*)0x1fff7a14)
|
|
#define U_ID_2 (*(uint32_t*)0x1fff7a18)
|
|
|
|
#ifndef STM32F4
|
|
#define STM32F4
|
|
#endif
|
|
|
|
#elif defined(STM32F303xC)
|
|
#include "stm32f30x_conf.h"
|
|
#include "stm32f30x_rcc.h"
|
|
#include "stm32f30x_gpio.h"
|
|
#include "core_cm4.h"
|
|
|
|
// Chip Unique ID on F303
|
|
#define U_ID_0 (*(uint32_t*)0x1FFFF7AC)
|
|
#define U_ID_1 (*(uint32_t*)0x1FFFF7B0)
|
|
#define U_ID_2 (*(uint32_t*)0x1FFFF7B4)
|
|
|
|
#ifndef STM32F3
|
|
#define STM32F3
|
|
#endif
|
|
|
|
#elif defined(STM32F10X)
|
|
|
|
#include "stm32f10x_conf.h"
|
|
#include "stm32f10x_gpio.h"
|
|
#include "core_cm3.h"
|
|
|
|
// Chip Unique ID on F103
|
|
#define U_ID_0 (*(uint32_t*)0x1FFFF7E8)
|
|
#define U_ID_1 (*(uint32_t*)0x1FFFF7EC)
|
|
#define U_ID_2 (*(uint32_t*)0x1FFFF7F0)
|
|
|
|
#ifndef STM32F1
|
|
#define STM32F1
|
|
#endif
|
|
|
|
#elif defined(SIMULATOR_BUILD)
|
|
|
|
// Nop
|
|
|
|
#else // STM32F10X
|
|
#error "Invalid chipset specified. Update platform.h"
|
|
#endif
|
|
|
|
// MCU type names and IDs.
|
|
// IDs are permanent as it has dependency to configurator through MSP reporting
|
|
|
|
#if defined(SIMULATOR_BUILD)
|
|
#define MCU_TYPE_ID 0
|
|
#define MCU_TYPE_NAME "SIMULATOR"
|
|
#elif defined(STM32F1)
|
|
#define MCU_TYPE_ID 1
|
|
#define MCU_TYPE_NAME "F103"
|
|
#elif defined(STM32F3)
|
|
#define MCU_TYPE_ID 2
|
|
#define MCU_TYPE_NAME "F303"
|
|
#elif defined(STM32F40_41xxx)
|
|
#define MCU_TYPE_ID 3
|
|
#define MCU_TYPE_NAME "F40X"
|
|
#elif defined(STM32F411xE)
|
|
#define MCU_TYPE_ID 4
|
|
#define MCU_TYPE_NAME "F411"
|
|
#elif defined(STM32F446)
|
|
#define MCU_TYPE_ID 5
|
|
#define MCU_TYPE_NAME "F446"
|
|
#elif defined(STM32F722xx)
|
|
#define MCU_TYPE_ID 6
|
|
#define MCU_TYPE_NAME "F722"
|
|
#elif defined(STM32F745xx)
|
|
#define MCU_TYPE_ID 7
|
|
#define MCU_TYPE_NAME "F745"
|
|
#elif defined(STM32F746xx)
|
|
#define MCU_TYPE_ID 8
|
|
#define MCU_TYPE_NAME "F746"
|
|
#elif defined(STM32F765xx)
|
|
#define MCU_TYPE_ID 9
|
|
#define MCU_TYPE_NAME "F765"
|
|
#else
|
|
#define MCU_TYPE_ID 255
|
|
#define MCU_TYPE_NAME "Unknown MCU"
|
|
#endif
|
|
|
|
#include "target/common_pre.h"
|
|
#include "target.h"
|
|
#include "target/common_post.h"
|
|
#include "target/common_defaults_post.h"
|