More H7 code, incomplete.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11146 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
0f1a6877e8
commit
c4ca86b1c1
|
@ -18,7 +18,7 @@
|
|||
* @file STM32F7xx/stm32_isr.h
|
||||
* @brief STM32F7xx ISR handler code.
|
||||
*
|
||||
* @addtogroup SRM32F7xx_ISR
|
||||
* @addtogroup STM32F7xx_ISR
|
||||
* @{
|
||||
*/
|
||||
|
||||
|
|
|
@ -0,0 +1,305 @@
|
|||
/*
|
||||
ChibiOS - Copyright (C) 2006..2016 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file STM32H7xx/hal_lld.c
|
||||
* @brief STM32H7xx HAL subsystem low level driver source.
|
||||
*
|
||||
* @addtogroup HAL
|
||||
* @{
|
||||
*/
|
||||
|
||||
#include "hal.h"
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local definitions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported variables. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief CMSIS system core clock variable.
|
||||
* @note It is declared in system_stm32f7xx.h.
|
||||
*/
|
||||
uint32_t SystemCoreClock = STM32_HCLK;
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local variables and types. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Initializes the backup domain.
|
||||
* @note WARNING! Changing clock source impossible without resetting
|
||||
* of the whole BKP domain.
|
||||
*/
|
||||
static void hal_lld_backup_domain_init(void) {
|
||||
|
||||
/* Backup domain access enabled and left open.*/
|
||||
PWR->CR1 |= PWR_CR1_DBP;
|
||||
|
||||
/* Reset BKP domain if different clock source selected.*/
|
||||
if ((RCC->BDCR & STM32_RTCSEL_MASK) != STM32_RTCSEL) {
|
||||
/* Backup domain reset.*/
|
||||
RCC->BDCR = RCC_BDCR_BDRST;
|
||||
RCC->BDCR = 0;
|
||||
}
|
||||
|
||||
#if STM32_LSE_ENABLED
|
||||
#if defined(STM32_LSE_BYPASS)
|
||||
/* LSE Bypass.*/
|
||||
RCC->BDCR |= STM32_LSEDRV | RCC_BDCR_LSEON | RCC_BDCR_LSEBYP;
|
||||
#else
|
||||
/* No LSE Bypass.*/
|
||||
RCC->BDCR |= STM32_LSEDRV | RCC_BDCR_LSEON;
|
||||
#endif
|
||||
while ((RCC->BDCR & RCC_BDCR_LSERDY) == 0)
|
||||
; /* Waits until LSE is stable. */
|
||||
#endif
|
||||
|
||||
#if HAL_USE_RTC
|
||||
/* If the backup domain hasn't been initialized yet then proceed with
|
||||
initialization.*/
|
||||
if ((RCC->BDCR & RCC_BDCR_RTCEN) == 0) {
|
||||
/* Selects clock source.*/
|
||||
RCC->BDCR |= STM32_RTCSEL;
|
||||
|
||||
/* RTC clock enabled.*/
|
||||
RCC->BDCR |= RCC_BDCR_RTCEN;
|
||||
}
|
||||
#endif /* HAL_USE_RTC */
|
||||
|
||||
#if STM32_BKPRAM_ENABLE
|
||||
rccEnableBKPSRAM(false);
|
||||
|
||||
PWR->CSR1 |= PWR_CSR1_BRE;
|
||||
while ((PWR->CSR1 & PWR_CSR1_BRR) == 0)
|
||||
; /* Waits until the regulator is stable */
|
||||
#else
|
||||
PWR->CSR1 &= ~PWR_CSR1_BRE;
|
||||
#endif /* STM32_BKPRAM_ENABLE */
|
||||
}
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver interrupt handlers. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Low level HAL driver initialization.
|
||||
*
|
||||
* @notapi
|
||||
*/
|
||||
void hal_lld_init(void) {
|
||||
|
||||
/* Reset of all peripherals. AHB3 is not reseted because it could have
|
||||
been initialized in the board initialization file (board.c).
|
||||
Note, GPIOs are not reset because initialized before this point in
|
||||
board files.*/
|
||||
rccResetAHB1(~STM32_GPIO_EN_MASK);
|
||||
rccResetAHB2(~0);
|
||||
rccResetAPB1(~RCC_APB1RSTR_PWRRST);
|
||||
rccResetAPB2(~0);
|
||||
|
||||
/* Initializes the backup domain.*/
|
||||
hal_lld_backup_domain_init();
|
||||
|
||||
/* DMA subsystems initialization.*/
|
||||
#if defined(STM32_DMA_REQUIRED)
|
||||
dmaInit();
|
||||
#endif
|
||||
|
||||
/* IRQ subsystem initialization.*/
|
||||
irqInit();
|
||||
|
||||
#if STM32_SRAM2_NOCACHE
|
||||
/* The SRAM2 bank can optionally made a non cache-able area for use by
|
||||
DMA engines.*/
|
||||
mpuConfigureRegion(MPU_REGION_7,
|
||||
SRAM2_BASE,
|
||||
MPU_RASR_ATTR_AP_RW_RW |
|
||||
MPU_RASR_ATTR_NON_CACHEABLE |
|
||||
MPU_RASR_SIZE_16K |
|
||||
MPU_RASR_ENABLE);
|
||||
mpuEnable(MPU_CTRL_PRIVDEFENA);
|
||||
|
||||
/* Invalidating data cache to make sure that the MPU settings are taken
|
||||
immediately.*/
|
||||
SCB_CleanInvalidateDCache();
|
||||
#endif
|
||||
|
||||
/* Programmable voltage detector enable.*/
|
||||
#if STM32_PVD_ENABLE
|
||||
PWR->CR1 |= PWR_CR1_PVDE | (STM32_PLS & STM32_PLS_MASK);
|
||||
#endif /* STM32_PVD_ENABLE */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief STM32F2xx clocks and PLL initialization.
|
||||
* @note All the involved constants come from the file @p board.h.
|
||||
* @note This function should be invoked just after the system reset.
|
||||
*
|
||||
* @special
|
||||
*/
|
||||
void stm32_clock_init(void) {
|
||||
|
||||
#if !STM32_NO_INIT
|
||||
/* PWR clock enabled.*/
|
||||
#if defined(HAL_USE_RTC) && defined(RCC_APB1ENR_RTCEN)
|
||||
RCC->APB1ENR = RCC_APB1ENR_PWREN | RCC_APB1ENR_RTCEN;
|
||||
#else
|
||||
RCC->APB1ENR = RCC_APB1ENR_PWREN;
|
||||
#endif
|
||||
|
||||
/* PWR initialization.*/
|
||||
PWR->CR1 = STM32_VOS;
|
||||
|
||||
/* HSI setup, it enforces the reset situation in order to handle possible
|
||||
problems with JTAG probes and re-initializations.*/
|
||||
RCC->CR |= RCC_CR_HSION; /* Make sure HSI is ON. */
|
||||
while (!(RCC->CR & RCC_CR_HSIRDY))
|
||||
; /* Wait until HSI is stable. */
|
||||
|
||||
/* HSI is selected as new source without touching the other fields in
|
||||
CFGR. Clearing the register has to be postponed after HSI is the
|
||||
new source.*/
|
||||
RCC->CFGR &= ~RCC_CFGR_SW; /* Reset SW */
|
||||
RCC->CFGR |= RCC_CFGR_SWS_HSI; /* Select HSI as internal*/
|
||||
while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSI)
|
||||
; /* Wait until HSI is selected. */
|
||||
|
||||
/* Registers finally cleared to reset values.*/
|
||||
RCC->CR &= RCC_CR_HSITRIM | RCC_CR_HSION; /* CR Reset value. */
|
||||
RCC->CFGR = 0; /* CFGR reset value. */
|
||||
|
||||
#if STM32_HSE_ENABLED
|
||||
/* HSE activation.*/
|
||||
#if defined(STM32_HSE_BYPASS)
|
||||
/* HSE Bypass.*/
|
||||
RCC->CR |= RCC_CR_HSEON | RCC_CR_HSEBYP;
|
||||
#else
|
||||
/* No HSE Bypass.*/
|
||||
RCC->CR |= RCC_CR_HSEON;
|
||||
#endif
|
||||
while ((RCC->CR & RCC_CR_HSERDY) == 0)
|
||||
; /* Waits until HSE is stable. */
|
||||
#endif
|
||||
|
||||
#if STM32_LSI_ENABLED
|
||||
/* LSI activation.*/
|
||||
RCC->CSR |= RCC_CSR_LSION;
|
||||
while ((RCC->CSR & RCC_CSR_LSIRDY) == 0)
|
||||
; /* Waits until LSI is stable. */
|
||||
#endif
|
||||
|
||||
#if STM32_ACTIVATE_PLL
|
||||
/* PLL activation.*/
|
||||
RCC->PLLCFGR = STM32_PLLQ | STM32_PLLSRC | STM32_PLLP | STM32_PLLN |
|
||||
STM32_PLLM;
|
||||
RCC->CR |= RCC_CR_PLLON;
|
||||
|
||||
/* Synchronization with voltage regulator stabilization.*/
|
||||
while ((PWR->CSR1 & PWR_CSR1_VOSRDY) == 0)
|
||||
; /* Waits until power regulator is stable. */
|
||||
|
||||
#if STM32_OVERDRIVE_REQUIRED
|
||||
/* Overdrive activation performed after activating the PLL in order to save
|
||||
time as recommended in RM in "Entering Over-drive mode" paragraph.*/
|
||||
PWR->CR1 |= PWR_CR1_ODEN;
|
||||
while (!(PWR->CSR1 & PWR_CSR1_ODRDY))
|
||||
;
|
||||
PWR->CR1 |= PWR_CR1_ODSWEN;
|
||||
while (!(PWR->CSR1 & PWR_CSR1_ODSWRDY))
|
||||
;
|
||||
#endif /* STM32_OVERDRIVE_REQUIRED */
|
||||
|
||||
/* Waiting for PLL lock.*/
|
||||
while (!(RCC->CR & RCC_CR_PLLRDY))
|
||||
;
|
||||
#endif /* STM32_OVERDRIVE_REQUIRED */
|
||||
|
||||
#if STM32_ACTIVATE_PLLI2S
|
||||
/* PLLI2S activation.*/
|
||||
RCC->PLLI2SCFGR = STM32_PLLI2SR | STM32_PLLI2SN;
|
||||
RCC->CR |= RCC_CR_PLLI2SON;
|
||||
|
||||
/* Waiting for PLL lock.*/
|
||||
while (!(RCC->CR & RCC_CR_PLLI2SRDY))
|
||||
;
|
||||
#endif
|
||||
|
||||
#if STM32_ACTIVATE_PLLSAI
|
||||
/* PLLSAI activation.*/
|
||||
RCC->PLLSAICFGR = STM32_PLLSAIR | STM32_PLLSAIQ | STM32_PLLSAIP |
|
||||
STM32_PLLSAIN;
|
||||
RCC->CR |= RCC_CR_PLLSAION;
|
||||
|
||||
/* Waiting for PLL lock.*/
|
||||
while (!(RCC->CR & RCC_CR_PLLSAIRDY))
|
||||
;
|
||||
#endif
|
||||
|
||||
/* Other clock-related settings (dividers, MCO etc).*/
|
||||
RCC->CFGR = STM32_MCO2SEL | STM32_MCO2PRE | STM32_MCO1PRE | STM32_I2SSRC |
|
||||
STM32_MCO1SEL | STM32_RTCPRE | STM32_PPRE2 | STM32_PPRE1 |
|
||||
STM32_HPRE;
|
||||
|
||||
/* DCKCFGR1 register initialization, note, must take care of the _OFF
|
||||
pseudo settings.*/
|
||||
{
|
||||
uint32_t dckcfgr1 = STM32_PLLI2SDIVQ | STM32_PLLSAIDIVQ | STM32_PLLSAIDIVR;
|
||||
#if STM32_SAI2SEL != STM32_SAI2SEL_OFF
|
||||
dckcfgr1 |= STM32_SAI2SEL;
|
||||
#endif
|
||||
#if STM32_SAI1SEL != STM32_SAI1SEL_OFF
|
||||
dckcfgr1 |= STM32_SAI1SEL;
|
||||
#endif
|
||||
RCC->DCKCFGR1 = dckcfgr1;
|
||||
}
|
||||
|
||||
/* Peripheral clock sources.*/
|
||||
RCC->DCKCFGR2 = STM32_SDMMCSEL | STM32_CK48MSEL | STM32_CECSEL |
|
||||
STM32_LPTIM1SEL | STM32_I2C4SEL | STM32_I2C3SEL |
|
||||
STM32_I2C2SEL | STM32_I2C1SEL | STM32_UART8SEL |
|
||||
STM32_UART7SEL | STM32_USART6SEL | STM32_UART5SEL |
|
||||
STM32_UART4SEL | STM32_USART3SEL | STM32_USART2SEL |
|
||||
STM32_USART1SEL;
|
||||
|
||||
/* Flash setup.*/
|
||||
FLASH->ACR = FLASH_ACR_ARTEN | FLASH_ACR_PRFTEN | STM32_FLASHBITS;
|
||||
|
||||
/* Switching to the configured clock source if it is different from HSI.*/
|
||||
#if (STM32_SW != STM32_SW_HSI)
|
||||
RCC->CFGR |= STM32_SW; /* Switches on the selected clock source. */
|
||||
while ((RCC->CFGR & RCC_CFGR_SWS) != (STM32_SW << 2))
|
||||
;
|
||||
#endif
|
||||
#endif /* STM32_NO_INIT */
|
||||
|
||||
/* SYSCFG clock enabled here because it is a multi-functional unit shared
|
||||
among multiple drivers.*/
|
||||
rccEnableAPB2(RCC_APB2ENR_SYSCFGEN, TRUE);
|
||||
}
|
||||
|
||||
/** @} */
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,29 @@
|
|||
# Required platform files.
|
||||
PLATFORMSRC := $(CHIBIOS)/os/hal/ports/common/ARMCMx/nvic.c \
|
||||
$(CHIBIOS)/os/hal/ports/STM32/STM32H7xx/stm32_isr.c \
|
||||
$(CHIBIOS)/os/hal/ports/STM32/STM32H7xx/hal_lld.c
|
||||
|
||||
# Required include directories.
|
||||
PLATFORMINC := $(CHIBIOS)/os/hal/ports/common/ARMCMx \
|
||||
$(CHIBIOS)/os/hal/ports/STM32/STM32H7xx
|
||||
|
||||
# Optional platform files.
|
||||
ifeq ($(USE_SMART_BUILD),yes)
|
||||
|
||||
# Configuration files directory
|
||||
ifeq ($(CONFDIR),)
|
||||
CONFDIR = .
|
||||
endif
|
||||
|
||||
HALCONF := $(strip $(shell cat $(CONFDIR)/halconf.h | egrep -e "\#define"))
|
||||
|
||||
else
|
||||
endif
|
||||
|
||||
# Drivers compatible with the platform.
|
||||
include $(CHIBIOS)/os/hal/ports/STM32/LLD/GPIOv2/driver.mk
|
||||
include $(CHIBIOS)/os/hal/ports/STM32/LLD/USARTv2/driver.mk
|
||||
|
||||
# Shared variables
|
||||
ALLCSRC += $(PLATFORMSRC)
|
||||
ALLINC += $(PLATFORMINC)
|
|
@ -0,0 +1,255 @@
|
|||
/*
|
||||
ChibiOS - Copyright (C) 2006..2016 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file STM32H7xx/stm32_isr.h
|
||||
* @brief STM32H7xx ISR handler code.
|
||||
*
|
||||
* @addtogroup STM32H7xx_ISR
|
||||
* @{
|
||||
*/
|
||||
|
||||
#include "hal.h"
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local definitions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported variables. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local variables. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
#define exti_serve_irq(pr, channel) { \
|
||||
\
|
||||
if ((pr) & (1U << (channel))) { \
|
||||
_pal_isr_code(channel); \
|
||||
} \
|
||||
}
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver interrupt handlers. */
|
||||
/*===========================================================================*/
|
||||
|
||||
#if (HAL_USE_PAL && (PAL_USE_WAIT || PAL_USE_CALLBACKS)) || defined(__DOXYGEN__)
|
||||
#if !defined(STM32_DISABLE_EXTI0_HANDLER)
|
||||
/**
|
||||
* @brief EXTI[0] interrupt handler.
|
||||
*
|
||||
* @isr
|
||||
*/
|
||||
OSAL_IRQ_HANDLER(Vector58) {
|
||||
uint32_t pr;
|
||||
|
||||
OSAL_IRQ_PROLOGUE();
|
||||
|
||||
pr = EXTI->PR;
|
||||
pr &= EXTI->IMR & (1U << 0);
|
||||
EXTI->PR = pr;
|
||||
|
||||
exti_serve_irq(pr, 0);
|
||||
|
||||
OSAL_IRQ_EPILOGUE();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(STM32_DISABLE_EXTI1_HANDLER)
|
||||
/**
|
||||
* @brief EXTI[1] interrupt handler.
|
||||
*
|
||||
* @isr
|
||||
*/
|
||||
OSAL_IRQ_HANDLER(Vector5C) {
|
||||
uint32_t pr;
|
||||
|
||||
OSAL_IRQ_PROLOGUE();
|
||||
|
||||
pr = EXTI->PR;
|
||||
pr &= EXTI->IMR & (1U << 1);
|
||||
EXTI->PR = pr;
|
||||
|
||||
exti_serve_irq(pr, 1);
|
||||
|
||||
OSAL_IRQ_EPILOGUE();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(STM32_DISABLE_EXTI2_HANDLER)
|
||||
/**
|
||||
* @brief EXTI[2] interrupt handler.
|
||||
*
|
||||
* @isr
|
||||
*/
|
||||
OSAL_IRQ_HANDLER(Vector60) {
|
||||
uint32_t pr;
|
||||
|
||||
OSAL_IRQ_PROLOGUE();
|
||||
|
||||
pr = EXTI->PR;
|
||||
pr &= EXTI->IMR & (1U << 2);
|
||||
EXTI->PR = pr;
|
||||
|
||||
exti_serve_irq(pr, 2);
|
||||
|
||||
OSAL_IRQ_EPILOGUE();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(STM32_DISABLE_EXTI3_HANDLER)
|
||||
/**
|
||||
* @brief EXTI[3] interrupt handler.
|
||||
*
|
||||
* @isr
|
||||
*/
|
||||
OSAL_IRQ_HANDLER(Vector64) {
|
||||
uint32_t pr;
|
||||
|
||||
OSAL_IRQ_PROLOGUE();
|
||||
|
||||
pr = EXTI->PR;
|
||||
pr &= EXTI->IMR & (1U << 3);
|
||||
EXTI->PR = pr;
|
||||
|
||||
exti_serve_irq(pr, 3);
|
||||
|
||||
OSAL_IRQ_EPILOGUE();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(STM32_DISABLE_EXTI4_HANDLER)
|
||||
/**
|
||||
* @brief EXTI[4] interrupt handler.
|
||||
*
|
||||
* @isr
|
||||
*/
|
||||
OSAL_IRQ_HANDLER(Vector68) {
|
||||
uint32_t pr;
|
||||
|
||||
OSAL_IRQ_PROLOGUE();
|
||||
|
||||
pr = EXTI->PR;
|
||||
pr &= EXTI->IMR & (1U << 4);
|
||||
EXTI->PR = pr;
|
||||
|
||||
exti_serve_irq(pr, 4);
|
||||
|
||||
OSAL_IRQ_EPILOGUE();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(STM32_DISABLE_EXTI5_9_HANDLER)
|
||||
/**
|
||||
* @brief EXTI[5]...EXTI[9] interrupt handler.
|
||||
*
|
||||
* @isr
|
||||
*/
|
||||
OSAL_IRQ_HANDLER(Vector9C) {
|
||||
uint32_t pr;
|
||||
|
||||
OSAL_IRQ_PROLOGUE();
|
||||
|
||||
pr = EXTI->PR;
|
||||
pr &= EXTI->IMR & ((1U << 5) | (1U << 6) | (1U << 7) | (1U << 8) |
|
||||
(1U << 9));
|
||||
EXTI->PR = pr;
|
||||
|
||||
exti_serve_irq(pr, 5);
|
||||
exti_serve_irq(pr, 6);
|
||||
exti_serve_irq(pr, 7);
|
||||
exti_serve_irq(pr, 8);
|
||||
exti_serve_irq(pr, 9);
|
||||
|
||||
OSAL_IRQ_EPILOGUE();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(STM32_DISABLE_EXTI10_15_HANDLER)
|
||||
/**
|
||||
* @brief EXTI[10]...EXTI[15] interrupt handler.
|
||||
*
|
||||
* @isr
|
||||
*/
|
||||
OSAL_IRQ_HANDLER(VectorE0) {
|
||||
uint32_t pr;
|
||||
|
||||
OSAL_IRQ_PROLOGUE();
|
||||
|
||||
pr = EXTI->PR;
|
||||
pr &= EXTI->IMR & ((1U << 10) | (1U << 11) | (1U << 12) | (1U << 13) |
|
||||
(1U << 14) | (1U << 15));
|
||||
EXTI->PR = pr;
|
||||
|
||||
exti_serve_irq(pr, 10);
|
||||
exti_serve_irq(pr, 11);
|
||||
exti_serve_irq(pr, 12);
|
||||
exti_serve_irq(pr, 13);
|
||||
exti_serve_irq(pr, 14);
|
||||
exti_serve_irq(pr, 15);
|
||||
|
||||
OSAL_IRQ_EPILOGUE();
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* HAL_USE_PAL && (PAL_USE_WAIT || PAL_USE_CALLBACKS) */
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Enables IRQ sources.
|
||||
*
|
||||
* @notapi
|
||||
*/
|
||||
void irqInit(void) {
|
||||
|
||||
#if HAL_USE_PAL
|
||||
nvicEnableVector(EXTI0_IRQn, STM32_IRQ_EXTI0_PRIORITY);
|
||||
nvicEnableVector(EXTI1_IRQn, STM32_IRQ_EXTI1_PRIORITY);
|
||||
nvicEnableVector(EXTI2_IRQn, STM32_IRQ_EXTI2_PRIORITY);
|
||||
nvicEnableVector(EXTI3_IRQn, STM32_IRQ_EXTI3_PRIORITY);
|
||||
nvicEnableVector(EXTI4_IRQn, STM32_IRQ_EXTI4_PRIORITY);
|
||||
nvicEnableVector(EXTI9_5_IRQn, STM32_IRQ_EXTI5_9_PRIORITY);
|
||||
nvicEnableVector(EXTI15_10_IRQn, STM32_IRQ_EXTI10_15_PRIORITY);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Disables IRQ sources.
|
||||
*
|
||||
* @notapi
|
||||
*/
|
||||
void irqDeinit(void) {
|
||||
|
||||
#if HAL_USE_PAL
|
||||
nvicDisableVector(EXTI0_IRQn);
|
||||
nvicDisableVector(EXTI1_IRQn);
|
||||
nvicDisableVector(EXTI2_IRQn);
|
||||
nvicDisableVector(EXTI3_IRQn);
|
||||
nvicDisableVector(EXTI4_IRQn);
|
||||
nvicDisableVector(EXTI9_5_IRQn);
|
||||
nvicDisableVector(EXTI15_10_IRQn);
|
||||
#endif
|
||||
}
|
||||
|
||||
/** @} */
|
|
@ -0,0 +1,173 @@
|
|||
/*
|
||||
ChibiOS - Copyright (C) 2006..2016 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file STM32F7xx/stm32_isr.h
|
||||
* @brief STM32F7xx ISR handler header.
|
||||
*
|
||||
* @addtogroup STM32F7xx_ISR
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifndef STM32_ISR_H
|
||||
#define STM32_ISR_H
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver constants. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver pre-compile time settings. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @name Configuration options
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
* @brief EXTI0 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI0_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI0_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI1 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI1_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI1_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI2 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI2_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI2_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI3 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI3_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI3_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI4 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI4_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI4_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI9..5 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI5_9_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI5_9_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI15..10 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI10_15_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI10_15_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI16 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI16_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI16_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI17 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI17_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI17_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI18 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI18_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI18_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI19 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI19_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI19_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI20 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI20_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI20_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI21 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI21_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI21_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI22 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI22_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI22_PRIORITY 6
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief EXTI23 interrupt priority level setting.
|
||||
*/
|
||||
#if !defined(STM32_IRQ_EXTI23_PRIORITY) || defined(__DOXYGEN__)
|
||||
#define STM32_IRQ_EXTI23_PRIORITY 6
|
||||
#endif
|
||||
/** @} */
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Derived constants and error checks. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver data structures and types. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver macros. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* External declarations. */
|
||||
/*===========================================================================*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
void irqInit(void);
|
||||
void irqDeinit(void);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* STM32_ISR_H */
|
||||
|
||||
/** @} */
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,318 @@
|
|||
/*
|
||||
ChibiOS - Copyright (C) 2006..2016 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file STM32H7xx/stm32_registry.h
|
||||
* @brief STM32H7xx capabilities registry.
|
||||
*
|
||||
* @addtogroup HAL
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifndef STM32_REGISTRY_H
|
||||
#define STM32_REGISTRY_H
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Platform capabilities. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @name STM32F7xx capabilities
|
||||
* @{
|
||||
*/
|
||||
/*===========================================================================*/
|
||||
/* STM32F745xx, STM32F746xx, STM32F756xx. */
|
||||
/*===========================================================================*/
|
||||
#if defined(STM32H743xx) || defined(STM32H753xx) || \
|
||||
defined(__DOXYGEN__)
|
||||
/* ADC attributes.*/
|
||||
#define STM32_ADC12_HANDLER Vector88
|
||||
#define STM32_ADC12_NUMBER 18
|
||||
#define STM32_ADC3_HANDLER Vector23C
|
||||
#define STM32_ADC3_NUMBER 127
|
||||
|
||||
#define STM32_HAS_ADC1 TRUE
|
||||
|
||||
#define STM32_HAS_ADC2 TRUE
|
||||
|
||||
#define STM32_HAS_ADC3 TRUE
|
||||
|
||||
#define STM32_HAS_ADC4 FALSE
|
||||
|
||||
#define STM32_HAS_SDADC1 FALSE
|
||||
#define STM32_HAS_SDADC2 FALSE
|
||||
#define STM32_HAS_SDADC3 FALSE
|
||||
|
||||
/* CAN attributes.*/
|
||||
#define STM32_HAS_CAN1 FALSE
|
||||
#define STM32_HAS_CAN2 FALSE
|
||||
#define STM32_HAS_CAN3 FALSE
|
||||
|
||||
/* DAC attributes.*/
|
||||
#define STM32_HAS_DAC1_CH1 FALSE
|
||||
#define STM32_HAS_DAC1_CH2 FALSE
|
||||
#define STM32_HAS_DAC2_CH1 FALSE
|
||||
#define STM32_HAS_DAC2_CH2 FALSE
|
||||
|
||||
/* DMA attributes.*/
|
||||
#define STM32_HAS_DMA1 FALSE
|
||||
#define STM32_HAS_DMA2 FALSE
|
||||
|
||||
/* ETH attributes.*/
|
||||
#define STM32_HAS_ETH TRUE
|
||||
#define STM32_ETH_HANDLER Vector134
|
||||
#define STM32_ETH_NUMBER 61
|
||||
|
||||
/* EXTI attributes.*/
|
||||
|
||||
/* GPIO attributes.*/
|
||||
#define STM32_HAS_GPIOA TRUE
|
||||
#define STM32_HAS_GPIOB TRUE
|
||||
#define STM32_HAS_GPIOC TRUE
|
||||
#define STM32_HAS_GPIOD TRUE
|
||||
#define STM32_HAS_GPIOE TRUE
|
||||
#define STM32_HAS_GPIOH TRUE
|
||||
#define STM32_HAS_GPIOF TRUE
|
||||
#define STM32_HAS_GPIOG TRUE
|
||||
#define STM32_HAS_GPIOI TRUE
|
||||
#define STM32_HAS_GPIOJ TRUE
|
||||
#define STM32_HAS_GPIOK TRUE
|
||||
#define STM32_GPIO_EN_MASK (RCC_AHB4ENR_GPIOAEN | \
|
||||
RCC_AHB4ENR_GPIOBEN | \
|
||||
RCC_AHB4ENR_GPIOCEN | \
|
||||
RCC_AHB4ENR_GPIODEN | \
|
||||
RCC_AHB4ENR_GPIOEEN | \
|
||||
RCC_AHB4ENR_GPIOFEN | \
|
||||
RCC_AHB4ENR_GPIOGEN | \
|
||||
RCC_AHB4ENR_GPIOHEN | \
|
||||
RCC_AHB4ENR_GPIOIEN | \
|
||||
RCC_AHB4ENR_GPIOJEN | \
|
||||
RCC_AHB4ENR_GPIOKEN)
|
||||
|
||||
/* I2C attributes.*/
|
||||
#define STM32_HAS_I2C1 FALSE
|
||||
#define STM32_HAS_I2C2 FALSE
|
||||
#define STM32_HAS_I2C3 FALSE
|
||||
#define STM32_HAS_I2C4 FALSE
|
||||
|
||||
/* QUADSPI attributes.*/
|
||||
#define STM32_HAS_QUADSPI1 FALSE
|
||||
|
||||
/* RTC attributes.*/
|
||||
#define STM32_HAS_RTC TRUE
|
||||
#define STM32_RTC_HAS_SUBSECONDS TRUE
|
||||
#define STM32_RTC_HAS_PERIODIC_WAKEUPS TRUE
|
||||
#define STM32_RTC_NUM_ALARMS 2
|
||||
#define STM32_RTC_HAS_INTERRUPTS FALSE
|
||||
|
||||
/* SDMMC attributes.*/
|
||||
#define STM32_HAS_SDMMC1 FALSE
|
||||
#define STM32_HAS_SDMMC2 FALSE
|
||||
|
||||
/* SPI attributes.*/
|
||||
#define STM32_HAS_SPI1 FALSE
|
||||
#define STM32_HAS_SPI2 FALSE
|
||||
#define STM32_HAS_SPI3 FALSE
|
||||
#define STM32_HAS_SPI4 FALSE
|
||||
#define STM32_HAS_SPI5 FALSE
|
||||
#define STM32_HAS_SPI6 FALSE
|
||||
|
||||
/* TIM attributes.*/
|
||||
#define STM32_TIM_MAX_CHANNELS 6
|
||||
|
||||
#define STM32_HAS_TIM1 TRUE
|
||||
#define STM32_TIM1_IS_32BITS FALSE
|
||||
#define STM32_TIM1_CHANNELS 6
|
||||
#define STM32_TIM1_UP_HANDLER VectorA4
|
||||
#define STM32_TIM1_CC_HANDLER VectorAC
|
||||
#define STM32_TIM1_UP_NUMBER 25
|
||||
#define STM32_TIM1_CC_NUMBER 27
|
||||
|
||||
#define STM32_HAS_TIM2 TRUE
|
||||
#define STM32_TIM2_IS_32BITS TRUE
|
||||
#define STM32_TIM2_CHANNELS 4
|
||||
#define STM32_TIM2_HANDLER VectorB0
|
||||
#define STM32_TIM2_NUMBER 28
|
||||
|
||||
#define STM32_HAS_TIM3 TRUE
|
||||
#define STM32_TIM3_IS_32BITS FALSE
|
||||
#define STM32_TIM3_CHANNELS 4
|
||||
#define STM32_TIM3_HANDLER VectorB4
|
||||
#define STM32_TIM3_NUMBER 29
|
||||
|
||||
#define STM32_HAS_TIM4 TRUE
|
||||
#define STM32_TIM4_IS_32BITS FALSE
|
||||
#define STM32_TIM4_CHANNELS 4
|
||||
#define STM32_TIM4_HANDLER VectorB8
|
||||
#define STM32_TIM4_NUMBER 30
|
||||
|
||||
#define STM32_HAS_TIM5 TRUE
|
||||
#define STM32_TIM5_IS_32BITS TRUE
|
||||
#define STM32_TIM5_CHANNELS 4
|
||||
#define STM32_TIM5_HANDLER Vector108
|
||||
#define STM32_TIM5_NUMBER 50
|
||||
|
||||
#define STM32_HAS_TIM6 TRUE
|
||||
#define STM32_TIM6_IS_32BITS FALSE
|
||||
#define STM32_TIM6_CHANNELS 0
|
||||
#define STM32_TIM6_HANDLER Vector118
|
||||
#define STM32_TIM6_NUMBER 54
|
||||
|
||||
#define STM32_HAS_TIM7 TRUE
|
||||
#define STM32_TIM7_IS_32BITS FALSE
|
||||
#define STM32_TIM7_CHANNELS 0
|
||||
#define STM32_TIM7_HANDLER Vector11C
|
||||
#define STM32_TIM7_NUMBER 55
|
||||
|
||||
#define STM32_HAS_TIM12 TRUE
|
||||
#define STM32_TIM12_IS_32BITS FALSE
|
||||
#define STM32_TIM12_CHANNELS 2
|
||||
#define STM32_TIM12_HANDLER VectorEC
|
||||
#define STM32_TIM12_NUMBER 43
|
||||
|
||||
#define STM32_HAS_TIM13 TRUE
|
||||
#define STM32_TIM13_IS_32BITS FALSE
|
||||
#define STM32_TIM13_CHANNELS 1
|
||||
#define STM32_TIM13_HANDLER VectorF0
|
||||
#define STM32_TIM13_NUMBER 44
|
||||
|
||||
#define STM32_HAS_TIM14 TRUE
|
||||
#define STM32_TIM14_IS_32BITS FALSE
|
||||
#define STM32_TIM14_CHANNELS 1
|
||||
#define STM32_TIM14_HANDLER VectorF4
|
||||
#define STM32_TIM14_NUMBER 45
|
||||
|
||||
#define STM32_HAS_TIM15 FALSE
|
||||
#define STM32_TIM15_IS_32BITS FALSE
|
||||
#define STM32_TIM15_CHANNELS 2
|
||||
#define STM32_TIM15_HANDLER Vector210
|
||||
#define STM32_TIM15_NUMBER 116
|
||||
|
||||
#define STM32_HAS_TIM16 FALSE
|
||||
#define STM32_TIM16_IS_32BITS FALSE
|
||||
#define STM32_TIM16_CHANNELS 1
|
||||
#define STM32_TIM16_HANDLER Vector214
|
||||
#define STM32_TIM16_NUMBER 117
|
||||
|
||||
#define STM32_HAS_TIM17 FALSE
|
||||
#define STM32_TIM17_IS_32BITS FALSE
|
||||
#define STM32_TIM17_CHANNELS 1
|
||||
#define STM32_TIM17_HANDLER Vector218
|
||||
#define STM32_TIM17_NUMBER 118
|
||||
|
||||
#define STM32_HAS_TIM8 FALSE
|
||||
#define STM32_HAS_TIM9 FALSE
|
||||
#define STM32_HAS_TIM10 FALSE
|
||||
#define STM32_HAS_TIM11 FALSE
|
||||
#define STM32_HAS_TIM18 FALSE
|
||||
#define STM32_HAS_TIM19 FALSE
|
||||
#define STM32_HAS_TIM20 FALSE
|
||||
#define STM32_HAS_TIM21 FALSE
|
||||
#define STM32_HAS_TIM22 FALSE
|
||||
|
||||
/* USART attributes.*/
|
||||
#define STM32_HAS_USART1 TRUE
|
||||
#define STM32_USART1_HANDLER VectorD4
|
||||
#define STM32_USART1_NUMBER 37
|
||||
|
||||
#define STM32_HAS_USART2 TRUE
|
||||
#define STM32_USART2_HANDLER VectorD8
|
||||
#define STM32_USART2_NUMBER 38
|
||||
|
||||
#define STM32_HAS_USART3 TRUE
|
||||
#define STM32_USART3_HANDLER VectorDC
|
||||
#define STM32_USART3_NUMBER 39
|
||||
|
||||
#define STM32_HAS_UART4 TRUE
|
||||
#define STM32_UART4_HANDLER Vector110
|
||||
#define STM32_UART4_NUMBER 52
|
||||
|
||||
#define STM32_HAS_UART5 TRUE
|
||||
#define STM32_UART5_HANDLER Vector114
|
||||
#define STM32_UART5_NUMBER 53
|
||||
|
||||
#define STM32_HAS_USART6 TRUE
|
||||
#define STM32_USART6_HANDLER Vector15C
|
||||
#define STM32_USART6_NUMBER 71
|
||||
|
||||
#define STM32_HAS_UART7 TRUE
|
||||
#define STM32_UART7_HANDLER Vector188
|
||||
#define STM32_UART7_NUMBER 82
|
||||
|
||||
#define STM32_HAS_UART8 TRUE
|
||||
#define STM32_UART8_HANDLER Vector18C
|
||||
#define STM32_UART8_NUMBER 83
|
||||
|
||||
#define STM32_HAS_LPUART1 FALSE
|
||||
|
||||
/* USB attributes.*/
|
||||
#define STM32_OTG_STEPPING 2
|
||||
#define STM32_HAS_OTG1 TRUE
|
||||
#define STM32_OTG1_ENDPOINTS 8
|
||||
#define STM32_OTG1_HANDLER Vector1D4
|
||||
#define STM32_OTG1_EP1OUT_HANDLER Vector1C8
|
||||
#define STM32_OTG1_EP1IN_HANDLER Vector1CC
|
||||
#define STM32_OTG1_NUMBER 101
|
||||
#define STM32_OTG1_EP1OUT_NUMBER 98
|
||||
#define STM32_OTG1_EP1IN_NUMBER 99
|
||||
|
||||
#define STM32_HAS_OTG2 TRUE
|
||||
#define STM32_OTG2_ENDPOINTS 8
|
||||
#define STM32_OTG2_HANDLER Vector174
|
||||
#define STM32_OTG2_EP1OUT_HANDLER Vector168
|
||||
#define STM32_OTG2_EP1IN_HANDLER Vector16C
|
||||
#define STM32_OTG2_NUMBER 77
|
||||
#define STM32_OTG2_EP1OUT_NUMBER 74
|
||||
#define STM32_OTG2_EP1IN_NUMBER 75
|
||||
|
||||
#define STM32_HAS_USB FALSE
|
||||
|
||||
/* IWDG attributes.*/
|
||||
#define STM32_HAS_IWDG TRUE
|
||||
#define STM32_IWDG_IS_WINDOWED TRUE
|
||||
|
||||
/* LTDC attributes.*/
|
||||
#define STM32_HAS_LTDC TRUE
|
||||
|
||||
/* DMA2D attributes.*/
|
||||
#define STM32_HAS_DMA2D TRUE
|
||||
|
||||
/* FSMC attributes.*/
|
||||
#define STM32_HAS_FSMC TRUE
|
||||
#define STM32_FSMC_IS_FMC TRUE
|
||||
#define STM32_FSMC_HANDLER Vector100
|
||||
#define STM32_FSMC_NUMBER 48
|
||||
|
||||
/* LTDC attributes.*/
|
||||
#define STM32_LTDC_EV_HANDLER Vector1A0
|
||||
#define STM32_LTDC_ER_HANDLER Vector1A4
|
||||
#define STM32_LTDC_EV_NUMBER 88
|
||||
#define STM32_LTDC_ER_NUMBER 89
|
||||
|
||||
/* DMA2D attributes.*/
|
||||
#define STM32_DMA2D_HANDLER Vector1A8
|
||||
#define STM32_DMA2D_NUMBER 90
|
||||
|
||||
/* CRC attributes.*/
|
||||
#define STM32_HAS_CRC TRUE
|
||||
#define STM32_CRC_PROGRAMMABLE FALSE
|
||||
|
||||
#endif /* defined(STM32H743xx) || defined(STM32H753xx) */
|
||||
/** @} */
|
||||
|
||||
#endif /* STM32_REGISTRY_H */
|
||||
|
||||
/** @} */
|
Loading…
Reference in New Issue