Skip to content

Commit 02cdac5

Browse files
committed
Update HAL/LL EXTI to have default API applied on current core and nott CPU1
1 parent 48aba33 commit 02cdac5

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

targets/TARGET_STM/TARGET_STM32H7/device/stm32h7xx_hal_gpio.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,15 +173,23 @@ typedef enum
173173
* This parameter can be GPIO_PIN_x where x can be(0..15)
174174
* @retval The new state of __EXTI_LINE__ (SET or RESET).
175175
*/
176+
#if defined(DUAL_CORE) && defined(CORE_CM4)
177+
#define __HAL_GPIO_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI_D2->PR1 & (__EXTI_LINE__))
178+
#else
176179
#define __HAL_GPIO_EXTI_GET_FLAG(__EXTI_LINE__) (EXTI_D1->PR1 & (__EXTI_LINE__))
180+
#endif
177181

178182
/**
179183
* @brief Clears the EXTI's line pending flags.
180184
* @param __EXTI_LINE__: specifies the EXTI lines flags to clear.
181185
* This parameter can be any combination of GPIO_PIN_x where x can be (0..15)
182186
* @retval None
183187
*/
188+
#if defined(DUAL_CORE) && defined(CORE_CM4)
189+
#define __HAL_GPIO_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI_D2->PR1 = (__EXTI_LINE__))
190+
#else
184191
#define __HAL_GPIO_EXTI_CLEAR_FLAG(__EXTI_LINE__) (EXTI_D1->PR1 = (__EXTI_LINE__))
192+
#endif
185193

186194
/**
187195
* @brief Checks whether the specified EXTI line is asserted or not.

targets/TARGET_STM/TARGET_STM32H7/device/stm32h7xx_ll_exti.h

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,11 @@ typedef struct
330330
*/
331331
__STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
332332
{
333+
#if defined(DUAL_CORE) && defined(CORE_CM4)
334+
SET_BIT(EXTI->C2IMR1, ExtiLine);
335+
#else
333336
SET_BIT(EXTI->IMR1, ExtiLine);
337+
#endif
334338
}
335339

336340
/**
@@ -373,7 +377,11 @@ __STATIC_INLINE void LL_EXTI_EnableIT_0_31(uint32_t ExtiLine)
373377
*/
374378
__STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine)
375379
{
380+
#if defined(DUAL_CORE) && defined(CORE_CM4)
381+
SET_BIT(EXTI->C2IMR2, ExtiLine);
382+
#else
376383
SET_BIT(EXTI->IMR2, ExtiLine);
384+
#endif
377385
}
378386

379387

@@ -408,7 +416,11 @@ __STATIC_INLINE void LL_EXTI_EnableIT_32_63(uint32_t ExtiLine)
408416
*/
409417
__STATIC_INLINE void LL_EXTI_EnableIT_64_95(uint32_t ExtiLine)
410418
{
419+
#if defined(DUAL_CORE) && defined(CORE_CM4)
420+
SET_BIT(EXTI->C2IMR3, ExtiLine);
421+
#else
411422
SET_BIT(EXTI->IMR3, ExtiLine);
423+
#endif
412424
}
413425

414426

@@ -453,7 +465,11 @@ __STATIC_INLINE void LL_EXTI_EnableIT_64_95(uint32_t ExtiLine)
453465
*/
454466
__STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
455467
{
468+
#if defined(DUAL_CORE) && defined(CORE_CM4)
469+
CLEAR_BIT(EXTI->C2IMR1, ExtiLine);
470+
#else
456471
CLEAR_BIT(EXTI->IMR1, ExtiLine);
472+
#endif
457473
}
458474

459475

@@ -497,7 +513,11 @@ __STATIC_INLINE void LL_EXTI_DisableIT_0_31(uint32_t ExtiLine)
497513
*/
498514
__STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine)
499515
{
516+
#if defined(DUAL_CORE) && defined(CORE_CM4)
517+
CLEAR_BIT(EXTI->C2IMR2, ExtiLine);
518+
#else
500519
CLEAR_BIT(EXTI->IMR2, ExtiLine);
520+
#endif
501521
}
502522

503523
/**
@@ -531,7 +551,11 @@ __STATIC_INLINE void LL_EXTI_DisableIT_32_63(uint32_t ExtiLine)
531551
*/
532552
__STATIC_INLINE void LL_EXTI_DisableIT_64_95(uint32_t ExtiLine)
533553
{
554+
#if defined(DUAL_CORE) && defined(CORE_CM4)
555+
CLEAR_BIT(EXTI->C2IMR3, ExtiLine);
556+
#else
534557
CLEAR_BIT(EXTI->IMR3, ExtiLine);
558+
#endif
535559
}
536560

537561

@@ -576,7 +600,11 @@ __STATIC_INLINE void LL_EXTI_DisableIT_64_95(uint32_t ExtiLine)
576600
*/
577601
__STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
578602
{
603+
#if defined(DUAL_CORE) && defined(CORE_CM4)
604+
return ((READ_BIT(EXTI->C2IMR1, ExtiLine) == (ExtiLine)) ? 1U : 0U);
605+
#else
579606
return ((READ_BIT(EXTI->IMR1, ExtiLine) == (ExtiLine)) ? 1U : 0U);
607+
#endif
580608
}
581609

582610

@@ -620,7 +648,11 @@ __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_0_31(uint32_t ExtiLine)
620648
*/
621649
__STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)
622650
{
651+
#if defined(DUAL_CORE) && defined(CORE_CM4)
652+
return ((READ_BIT(EXTI->C2IMR2, ExtiLine) == (ExtiLine)) ? 1U : 0U);
653+
#else
623654
return ((READ_BIT(EXTI->IMR2, ExtiLine) == (ExtiLine)) ? 1U : 0U);
655+
#endif
624656
}
625657

626658

@@ -655,7 +687,11 @@ __STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_32_63(uint32_t ExtiLine)
655687
*/
656688
__STATIC_INLINE uint32_t LL_EXTI_IsEnabledIT_64_95(uint32_t ExtiLine)
657689
{
690+
#if defined(DUAL_CORE) && defined(CORE_CM4)
691+
return ((READ_BIT(EXTI->C2IMR3, ExtiLine) == (ExtiLine)) ? 1U : 0U);
692+
#else
658693
return ((READ_BIT(EXTI->IMR3, ExtiLine) == (ExtiLine)) ? 1U : 0U);
694+
#endif
659695
}
660696

661697
#if defined(DUAL_CORE)

0 commit comments

Comments
 (0)