Unable to compile STM32 Firmware on Manjaro

Post here to get support
Post Reply
comathi
Beginner
Posts: 3
Joined: Wed Sep 29, 2021 5:04 am

Unable to compile STM32 Firmware on Manjaro

Post by comathi »

Hello,

I followed the steps outlined here to build the stm32 firmware on Manjaro.

However, when I run make, I get the errors in the attached screenshot. I have not modified the source code yet.

Any help would be greatly appreciated!
Attachments
43245723-B553-495C-A1DF-636D0B8EF176.png
jonasdn
Expert
Posts: 132
Joined: Mon Mar 01, 2021 3:13 pm

Re: Unable to compile STM32 Firmware on Manjaro

Post by jonasdn »

Hi comathi!

Some questions!
  1. Could you perhaps paste or update the full output of the make command?
  2. Could you tell us the output of $ arm-none-eabi-gcc --version
Thanks Jonas
comathi
Beginner
Posts: 3
Joined: Wed Sep 29, 2021 5:04 am

Re: Unable to compile STM32 Firmware on Manjaro

Post by comathi »

Hello Jonas,

For some reason, I have been unable to post this reply as it was triggering the spam detection, hopefully it works now.

runnning arm-none-eabi-gcc --version outputs the following:

Code: Select all

arm-none-eabi-gcc (Arch Repository) 11.2.0
And the following is the full output of the make command:

Code: Select all

CLEAN_VERSION
  CC    list.o
  CC    tasks.o
  CC    queue.o
  CC    timers.o
  CC    heap_4.o
  CC    port.o
  CC    stm32f4xx_adc.o
  CC    stm32f4xx_dbgmcu.o
  CC    stm32f4xx_dma.o
  CC    stm32f4xx_exti.o
  CC    stm32f4xx_flash.o
  CC    stm32f4xx_gpio.o
  CC    stm32f4xx_i2c.o
  CC    stm32f4xx_iwdg.o
  CC    stm32f4xx_rcc.o
  CC    stm32f4xx_spi.o
  CC    stm32f4xx_tim.o
  CC    stm32f4xx_usart.o
  CC    stm32f4xx_misc.o
  CC    stm32f4xx_syscfg.o
  CC    usb_core.o
  CC    usb_dcd_int.o
  CC    usb_dcd.o
  CC    usbd_ioreq.o
  CC    usbd_req.o
  CC    usbd_core.o
  CC    sensors_mpu9250_lps25h.o
  CC    sensors_bmi088_bmp388.o
  CC    sensors_bmi088_i2c.o
  CC    sensors_bmi088_spi.o
  CC    ff.o
  CC    ffunicode.o
  CC    fatfs_sd.o
  CC    main.o
  CC    platform.o
  CC    platform_utils.o
  CC    platform_cf2.o
  CC    platform_stm32f4.o
  CC    exti.o
  CC    nvic.o
  CC    motors.o
  CC    led.o
  CC    mpu6500.o
  CC    i2cdev.o
  CC    ws2812_cf2.o
  CC    lps25h.o
  CC    i2c_drv.o
  CC    ak8963.o
  CC    eeprom.o
  CC    maxsonar.o
  CC    piezo.o
  CC    uart_syslink.o
  CC    swd.o
  CC    uart1.o
  CC    uart2.o
  CC    watchdog.o
  CC    cppm.o
  CC    bmi055_accel.o
  CC    bmi055_gyro.o
  CC    bmi160.o
  CC    bmp280.o
  CC    bstdr_comm_support.o
  CC    bmm150.o
  CC    bmi088_accel.o
  CC    bmi088_gyro.o
  CC    bmi088_fifo.o
  CC    bmp3.o
  CC    pca9685.o
  CC    vl53l0x.o
  CC    pca95x4.o
  CC    pca9555.o
  CC    vl53l1x.o
  CC    pmw3901.o
  CC    amg8833.o
  CC    lh_bootloader.o
  CC    usb_bsp.o
  CC    usblink.o
  CC    usbd_desc.o
  CC    usb.o
  CC    crtp.o
  CC    ledseq.o
  CC    freeRTOSdebug.o
  CC    buzzer.o
  CC    pm_stm32f4.o
  CC    syslink.o
  CC    radiolink.o
  CC    ow_syslink.o
  CC    proximity.o
  CC    ow_common.o
  CC    usec_time.o
  CC    sensors.o
  CC    storage.o
  CC    libdw1000.o
  CC    libdw1000Spi.o
  CC    vl53l1_api_core.o
  CC    vl53l1_api.o
  CC    vl53l1_core.o
  CC    vl53l1_silicon_core.o
  CC    vl53l1_api_strings.o
  CC    vl53l1_api_calibration.o
  CC    vl53l1_api_debug.o
  CC    vl53l1_api_preset_modes.o
  CC    vl53l1_error_strings.o
  CC    vl53l1_register_funcs.o
  CC    vl53l1_wait.o
  CC    vl53l1_core_support.o
  CC    system.o
  CC    comm.o
  CC    console.o
  CC    pid.o
  CC    crtpservice.o
  CC    param.o
  CC    log.o
  CC    worker.o
  CC    queuemonitor.o
  CC    msp.o
  CC    platformservice.o
  CC    sound_cf2.o
  CC    extrx.o
  CC    sysload.o
  CC    mem.o
  CC    range.o
  CC    app_handler.o
  CC    static_mem.o
  CC    app_channel.o
  CC    eventtrigger.o
  CC    supervisor.o
  CC    commander.o
  CC    crtp_commander.o
  CC    crtp_commander_rpyt.o
  CC    crtp_commander_generic.o
  CC    crtp_localization_service.o
  CC    peer_localization.o
  CC    attitude_pid_controller.o
  CC    sensfusion6.o
  CC    stabilizer.o
  CC    position_estimator_altitude.o
  CC    position_controller_pid.o
  CC    position_controller_indi.o
  CC    estimator.o
  CC    estimator_complementary.o
  CC    controller.o
  CC    controller_pid.o
  CC    controller_mellinger.o
  CC    controller_indi.o
  CC    power_distribution_stock.o
  CC    collision_avoidance.o
  CC    health.o
  CC    estimator_kalman.o
  CC    kalman_core.o
  CC    kalman_supervisor.o
  CC    mm_distance.o
  CC    mm_absolute_height.o
  CC    mm_position.o
  CC    mm_pose.o
  CC    mm_tdoa.o
  CC    mm_flow.o
  CC    mm_tof.o
  CC    mm_yaw_error.o
  CC    mm_sweep_angles.o
  CC    mm_tdoa_robust.o
  CC    mm_distance_robust.o
  CC    crtp_commander_high_level.o
  CC    planner.o
  CC    pptraj.o
  CC    pptraj_compressed.o
  CC    deck.o
  CC    deck_info.o
  CC    deck_drivers.o
  CC    deck_test.o
  CC    deck_memory.o
  CC    deck_constants.o
.//src/deck/core/deck_test.c: In function 'decktestSaveGPIOStatesABC':
.//src/deck/core/deck_test.c:61:3: error: 'memcpy' offset [0, 39] is out of the bounds [0, 0] [-Werror=array-bounds]
   61 |   memcpy(&gpioRegBuf->gpioBuffA, GPIOA, sizeof(GPIO_TypeDef));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.//src/deck/core/deck_test.c:62:3: error: 'memcpy' offset [0, 39] is out of the bounds [0, 0] [-Werror=array-bounds]
   62 |   memcpy(&gpioRegBuf->gpioBuffB, GPIOB, sizeof(GPIO_TypeDef));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.//src/deck/core/deck_test.c:63:3: error: 'memcpy' offset [0, 39] is out of the bounds [0, 0] [-Werror=array-bounds]
   63 |   memcpy(&gpioRegBuf->gpioBuffC, GPIOC, sizeof(GPIO_TypeDef));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.//src/deck/core/deck_test.c: In function 'decktestRestoreGPIOStatesABC':
.//src/deck/core/deck_test.c:69:3: error: 'memcpy' offset [0, 39] is out of the bounds [0, 0] [-Werror=array-bounds]
   69 |   memcpy(GPIOA, &gpioRegBuf->gpioBuffA, sizeof(GPIO_TypeDef));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.//src/deck/core/deck_test.c:70:3: error: 'memcpy' offset [0, 39] is out of the bounds [0, 0] [-Werror=array-bounds]
   70 |   memcpy(GPIOB, &gpioRegBuf->gpioBuffB, sizeof(GPIO_TypeDef));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.//src/deck/core/deck_test.c:71:3: error: 'memcpy' offset [0, 39] is out of the bounds [0, 0] [-Werror=array-bounds]
   71 |   memcpy(GPIOC, &gpioRegBuf->gpioBuffC, sizeof(GPIO_TypeDef));
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC    deck_digital.o
cc1: all warnings being treated as errors
  CC    deck_analog.o
make[1]: *** [tools/make/targets.mk:27: deck_test.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:393: build] Error 2
Thank you,
comathi
jonasdn
Expert
Posts: 132
Joined: Mon Mar 01, 2021 3:13 pm

Re: Unable to compile STM32 Firmware on Manjaro

Post by jonasdn »

Hi comathi!

I think the issue is that you have a quite new GCC version, that has added a new warning. (-Werror=array-bounds).

You could try to add the following line to the Makefile:

Code: Select all

CFLAGS += -Wno-array-bounds
You can look for similar lines!
Post Reply