Skip to main content
Kurt Alber
Associate II
February 22, 2018
Question

Compiler Warning onLL_CRC_FeedData16 and LL_SPI_TransmitData16

  • February 22, 2018
  • 2 replies
  • 896 views
Posted on February 22, 2018 at 09:49

Hi! When I compile LL code from STM32CubeMX I get following warnings:

In file included from ../Inc/main.h:45:0,

                 from ../Inc/stm32f0xx_it.h:46,

                 from ..\Src\stm32f0xx_it.c:35:

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_crc.h: In function 'LL_CRC_FeedData16':

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_crc.h:371:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

   *(uint16_t __IO *)(&CRCx->DR) = (uint16_t) InData;

   ^

In file included from ../Inc/main.h:55:0,

                 from ../Inc/stm32f0xx_it.h:46,

                 from ..\Src\stm32f0xx_it.c:35:

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_spi.h: In function 'LL_SPI_TransmitData16':

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_spi.h:1388:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

   *((__IO uint16_t *)&SPIx->DR) = TxData;

I don't use those functions therefore I comment them out, but should be fixed.

Tools:

STM32CubeMx 4.24.0 (STM32Cube V1.0)

TrueStudio V.9.0.0

Windows 7

Console Output:

**** Incremental Build of configuration Debug for project cameraApplication ****

Info: Internal Builder is used for build

arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m0 -std=gnu11 -DUSE_FULL_LL_DRIVER -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -DSTM32F030x6 -I../Inc -IInc -ISrc -I../Drivers/STM32F0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -g -fstack-usage -Wall -specs=nano.specs -o Src\hal.o ..\Src\hal.c

arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m0 -std=gnu11 -DUSE_FULL_LL_DRIVER -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -DSTM32F030x6 -I../Inc -IInc -ISrc -I../Drivers/STM32F0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -g -fstack-usage -Wall -specs=nano.specs -o Src\stm32f0xx_it.o ..\Src\stm32f0xx_it.c

In file included from ../Inc/main.h:45:0,

                 from ..\Src\hal.c:2:

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_crc.h: In function 'LL_CRC_FeedData16':

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_crc.h:371:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

   *(uint16_t __IO *)(&CRCx->DR) = (uint16_t) InData;

   ^

arm-atollic-eabi-gcc -c -mthumb -mcpu=cortex-m0 -std=gnu11 -DUSE_FULL_LL_DRIVER -D__weak=__attribute__((weak)) -D__packed=__attribute__((__packed__)) -DSTM32F030x6 -I../Inc -IInc -ISrc -I../Drivers/STM32F0xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I../Drivers/CMSIS/Include -Os -ffunction-sections -fdata-sections -g -fstack-usage -Wall -specs=nano.specs -o Src\epc611.o ..\Src\epc611.c

In file included from ../Inc/main.h:55:0,

                 from ..\Src\hal.c:2:

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_spi.h: In function 'LL_SPI_TransmitData16':

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_spi.h:1388:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

   *((__IO uint16_t *)&SPIx->DR) = TxData;

   ^

In file included from ../Inc/main.h:45:0,

                 from ../Inc/stm32f0xx_it.h:46,

                 from ..\Src\stm32f0xx_it.c:35:

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_crc.h: In function 'LL_CRC_FeedData16':

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_crc.h:371:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

   *(uint16_t __IO *)(&CRCx->DR) = (uint16_t) InData;

   ^

In file included from ../Inc/main.h:55:0,

                 from ../Inc/stm32f0xx_it.h:46,

                 from ..\Src\stm32f0xx_it.c:35:

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_spi.h: In function 'LL_SPI_TransmitData16':

../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_ll_spi.h:1388:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

   *((__IO uint16_t *)&SPIx->DR) = TxData;

   ^

arm-atollic-eabi-gcc -o cameraApplication.elf Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_crc.o Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_dma.o Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_exti.o Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_gpio.o Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_pwr.o Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_rcc.o Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_spi.o Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_tim.o Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_usart.o Drivers\STM32F0xx_HAL_Driver\Src\stm32f0xx_ll_utils.o Src\epc611.o Src\fsm.o Src\hal.o Src\main.o Src\spi.o Src\stm32f0xx_it.o Src\system_stm32f0xx.o Src\uart.o startup\startup_stm32f030x6.o -mthumb -mcpu=cortex-m0 -T../STM32F030F4_FLASH.ld -specs=nosys.specs -static -Wl,-Map=cameraApplication.map -Wl,--gc-sections -Wl,--defsym=malloc_getpagesize_P=0x80 -Wl,--start-group -lc -lm -Wl,--end-group -specs=nano.specs

C:\TrueSTUDIO for STM32 9.0.0\ide\jre\bin\java -jar C:\TrueSTUDIO for STM32 9.0.0\Tools\arm-atollic-reports.jar sizeinfo list cameraApplication.elf

Generate build reports...

Print size information

   text       data        bss        dec        hex    filename

   5560         16       2688       8264       2048    cameraApplication.elf

Print size information done

Generate listing file

Output sent to: cameraApplication.list

Generate listing file done

Generate build reports done

Info: Parallel threads used: 3
    This topic has been closed for replies.

    2 replies

    Tesla DeLorean
    Guru
    February 23, 2018
    Posted on February 23, 2018 at 14:11

    GNU is being overly fussy, it is explicitly casting an otherwise 32-bit access on the memory to a 16-bit one (CRC depends on width of bus transaction). I remember another thread on this.

    Tips, Buy me a coffee, or three.. PayPal Venmo (See Profile) Up vote any posts that you find helpful, it shows what's working..
    ST Technical Moderator
    February 23, 2018
    Posted on February 23, 2018 at 14:25

    Hello,

    Please refer to this discussion that can be helpful for you:

    https://community.st.com/0D50X00009XkXPESA3

     

    Best Regards,

    Imen

    In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks