This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Shutting down debug session

Hi,

I genareted a basic test project with stm32MXcube. I2C is active only. But i can not debug this project. After remap command (__HAL_AFIO_REMAP_I2C1_ENABLE();) shutting down debug session.

MCU: STM32F103VCT6
Debugger: ST-LINK/V2

I am using this wires:

1-PA14/SWCLK
2-PA13/SWDIO
3-NRST
4-VDD
5-VSS

PB9/SDA
PB8/SCL

If i don't use remap command ( PB7/SDA, PB6/SCL ) there is no any problem.

Please help me.

Thank you.

  • Did you check what is in "__HAL_AFIO_REMAP_I2C1_ENABLE"? Did you debugged this code?
    (as I know this are very buggy libraries)

    You have to do 2 things:
    1. Enable AFIO:

    RCC->APB2ENR |= RCC_APB2ENR_AFIOEN;
    

    2. Remap I2C1:

    AFIO->MAPR |= AFIO_MAPR_I2C1_REMAP;
    

    Check what this procesure changes more than this.

  • Hi,
    When i try debug "__HAL_AFIO_REMAP_I2C1_ENABLE();" line, debugger is disconnecting.

    #define __HAL_AFIO_REMAP_I2C1_ENABLE() SET_BIT(AFIO->MAPR, AFIO_MAPR_I2C1_REMAP)

    My all codes auto generated by STM32CubeMX. But I can not debug it.

    HAL_MspInit function includes __HAL_RCC_AFIO_CLK_ENABLE() line command.
    HAL_I2C_MspInit function includes __HAL_AFIO_REMAP_I2C1_ENABLE() line command.

    My CubeMX and Aouto generated Keil MDK5 Projects:
    yadi.sk/.../qxGw7dPW3EgrVz
    yadi.sk/.../qxGw7dPW3EgrVz

    Firmware Package Name and Version:
    FW_F1 V1.4.0

    MCU: STM32F103VCT6

    Thank You

  • When i generate same project for STM32f103RBT6 using MXcube, the problem does not occur on STM32f103RBT6 board. But same code download to STM32F103VCT6 boards shutting down debug session. I have different STM32F103VCT6 boards. Thanks

  • I have a similar problem with a board with an STM32F100RC.
    The debugger stops when MX_I2C1_Init() is called.

    __HAL_AFIO_REMAP_I2C1_ENABLE();

    is expanded to

    SET_BIT(AFIO->MAPR, AFIO_MAPR_I2C1_REMAP)

    but the SET_BIT macro can't be called with the register AFIO->MAPR
    Bits 24-26 of this register are write only so you can't use a read/modify/write instruction on this register.

    I solved the problem using this instruction instead:

    AFIO->MAPR = (AFIO->MAPR & (!AFIO_MAPR_SWJ_CFG_Msk)) | AFIO_MAPR_SWJ_CFG_JTAGDISABLE | AFIO_MAPR_I2C1_REMAP;

    Use at your own risk ;-)

    P.S.
    or instead of SET_BIT/CLEAR_BIT a MODIFY_REG macro should always be used with register AFIO->MAPR