cancel
Showing results for 
Search instead for 
Did you mean: 

STM32L4 JTAG + interrupt => Break at address "0x1fff2d58" outside of program code + overcurrent

mich35
Associate III

Hello,

I am using a sTM32L430 with a JTAG access throgh ST LINK V2 and STM32CubeIDE. The project has a few GPIO to debug and an USART to generate interrupts:

mich35_0-1699882454696.png

 

To try to undersand my problem I build a small project with STM32CubeMX to have code genrated by STM and not by me.

I added a few code to remove data from the USART BX buffer and to toggle debug pins.

 

 

void USART3_IRQHandler(void)
{
  /* USER CODE BEGIN USART3_IRQn 0 */
  int val;

  /* USER CODE END USART3_IRQn 0 */
  /* USER CODE BEGIN USART3_IRQn 1 */
    LL_GPIO_TogglePin(GPIOH, LL_GPIO_PIN_0);
	val = LL_USART_ReceiveData8(USART3);        //read byte to clear RXNE flag
    val++;
  /* USER CODE END USART3_IRQn 1 */
}
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SYSCFG);
  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_PWR);

  /* System interrupt init*/
  NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);

  /* SysTick_IRQn interrupt configuration */
  NVIC_SetPriority(SysTick_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),15, 0));

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART3_UART_Init();
  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
        __delay_cycles(1000000);
        LL_GPIO_TogglePin(GPIOH, LL_GPIO_PIN_1);  // Green led
    }
  /* USER CODE END 3 */
}

 

 

I load and run the program. If an interrupt occurs during debugging I have the following issue:

Program stops (led do not toggles) and current consumption increases from 2mA to 14mA. If I click on the suspend button I have the following message:

Break at address "0x1fff3f36" with no debug information available, or outside of program code.

This address is inside the System memory.

When I have interrupts while not in debugging mode there is no issue at all.

Do you have any suggestion for this issue which prevents me of debugging capabilities?

Best regards

Mich

 

 

 

This discussion is locked. Please start a new topic to ask your question.
1 ACCEPTED SOLUTION

Accepted Solutions
mich35
Associate III

It seems to be linked to a solder issue around the LSE quartz.

The microC reacts differently when started from JTAG or from power on...

View solution in original post

3 REPLIES 3
AScha.3
Super User

boot0 pin (PH3 ?) needs pulldown. or gnd . otherwise jumping to system bootloader mode...

If you feel a post has answered your question, please click "Accept as Solution".

PH3 has a pull-down

mich35
Associate III

It seems to be linked to a solder issue around the LSE quartz.

The microC reacts differently when started from JTAG or from power on...