cancel
Showing results for 
Search instead for 
Did you mean: 

Undeclared EXTI_0_IRQn & EXTI15_4_IRQn

Bill_GC
Associate II

Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code. Please read this post: How to insert source code.

Hello to all,

I'm coding a simple project for STM32WL55IC7 MCU, for the NUCLEO-WL55JC2 board. I didn't use the BSP for the board, in other words i didn't select the NUCLEO board option, but I started the project using the MCU.

The Project name is STM32WL55IC7_foo. The CubeIDE build the following 3 projects:

1. STM32WL55IC7_foo 

2. STM32WL55IC7_foo_CM0PLUS (the code for Cortex M0+ code)

3. STM32WL55IC7_foo_CM4 (the code for Cortex M4 code)

When I try to compile the project, while the CM4 core code is compiled without any error, the code for the M0PLUS core issued errors, on the following snippet during the EXTI interrupt initialization:

/* EXTI interrupt init*/

HAL_NVIC_SetPriority(EXTI1_0_IRQn, 1, 0);

HAL_NVIC_EnableIRQ(EXTI1_0_IRQn);



HAL_NVIC_SetPriority(EXTI15_4_IRQn, 1, 0);

HAL_NVIC_EnableIRQ(EXTI15_4_IRQn);

 

The issued error messages are:

Description Resource Path Location Type
'EXTI1_0_IRQn' undeclared (first use in this function); did you mean 'EXTI15_10_IRQn'? main.c /STM32WL55IC7_foo_CM0PLUS/Core/Src line 142 C/C++ Problem

Description Resource Path Location Type
'EXTI15_4_IRQn' undeclared (first use in this function); did you mean 'EXTI15_10_IRQn'? main.c /STM32WL55IC7_foo_CM0PLUS/Core/Src line 145 C/C++ Problem

But the interrupts numbers are already defined on the file stm32wl55xx.h (by the CubeIDE):

 

/************* STM32WLxx specific Interrupt Numbers on M0 core ************************************************/

EXTI1_0_IRQn = 4, /*!< EXTI Line 1:0 Interrupt */

EXTI3_2_IRQn = 5, /*!< EXTI Line 3:2 Interrupt */

EXTI15_4_IRQn = 6, /*!< EXTI Line 15:4 interrupt */

This file is on project path STM32WL55IC7_foo/Drivers/CMSIS/Device/STM32WLxx/Include/stm32wl55.h

It should be valuable if someone have any idea about this issue

 

Thanks

Bill_GC

1 ACCEPTED SOLUTION

Accepted Solutions

Hello @Bill_GC 

Thank you for your valuable contribution.

As a workaround :Right click on the CM0+ and go to Properties -> C/C++ Build-> Settings -> MCU/MPU GCC Compiler -> Preprocessor -> Change the CORE_CM0+ to CORE_CM0PLUS

GhofraneGSOURI_0-1762857593463.png

This issue has been already identified and escalated to dev team under internal ticket number  217503 and it will be fixed as soon as possible .

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

4 REPLIES 4
Ghofrane GSOURI
ST Employee

Hello @Bill_GC 

Could you please provide your IOC file so that we can double-check your configuration and help identify what might have gone wrong?

THX

Ghofrane

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Bill_GC
Associate II

Hello Ghofrane,

thanks for your immediate response. Off course I do it. Pls find attached here

 

Best Regards

Bill_GC

Hello @Bill_GC 

Thank you for your valuable contribution.

As a workaround :Right click on the CM0+ and go to Properties -> C/C++ Build-> Settings -> MCU/MPU GCC Compiler -> Preprocessor -> Change the CORE_CM0+ to CORE_CM0PLUS

GhofraneGSOURI_0-1762857593463.png

This issue has been already identified and escalated to dev team under internal ticket number  217503 and it will be fixed as soon as possible .

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

Bill_GC
Associate II

Many thanks Ghofrane, now it works perfect!!!!

I suppose that thie very specific preprocessor modification form CM0+ to CM0PLUS should be carried out in every dual core project.

 

BR

Bill_GC