Im using PIO with target platform STM32L4R5ZIT6 and have been testing some of the example code from the mbed website, specifically an analog loop (https://os.mbed.com/teams/ST/code/Nucleo_analog_loop/)
I have tested the online mbed compiler with this example, and exported the code directly to the bootloader. The analog input reads the analog output with high accuracy
When I transfer this code to PIO and compile the analog input is not correct, as shown in this output:
(out:0.5000) - (in:0.4840) = (0.0160) OK
ā[1A(out:0.6000) - (in:0.4842) = (0.1158) FAIL
(out:0.7000) - (in:0.4842) = (0.2158) FAIL
(out:0.8000) - (in:0.4842) = (0.3158) FAIL
(out:0.9000) - (in:0.4842) = (0.4158) FAIL
(out:1.0000) - (in:0.4842) = (0.5158) FAIL
(out:0.0000) - (in:0.4835) = (0.4835) FAIL
(out:0.1000) - (in:0.4840) = (0.3840) FAIL
(out:0.2000) - (in:0.4840) = (0.2840) FAIL
(out:0.3000) - (in:0.4840) = (0.1840) FAIL
(out:0.4000) - (in:0.4840) = (0.0840) FAIL
I have measured the analog output with a scope and a voltmeter to confirm that it is outputting the correct voltages - this is fine. The analog input does not seem to be configured correctly.
Even if the analog input is connected to GND the voltage is floating.
Here is my PIO config:
[env:nucleo_l4r5zi]
platform = https://github.com/platformio/platform-ststm32.git
board = nucleo_l4r5zi
framework = mbed
upload_protocol = mbed
board_build.mcu = stm32l4r5zit6
I have tried this with the standard platform as well, same error.
Here is the code:
#include "mbed.h"
AnalogIn in(A0);
#if !DEVICE_ANALOGOUT
#error You cannot use this example as the AnalogOut is not supported on this device.
#else
AnalogOut out(PA_4);
#endif
DigitalOut led(LED1);
int main()
{
printf("\nAnalog loop example\n");
printf("*** Connect A0 and PA_4 pins together ***\n");
while(1) {
for (float out_value = 0.0f; out_value < 1.1f; out_value += 0.1f) {
// Output value using DAC
out.write(out_value);
wait(0.5);
// Read ADC input
float in_value = in.read();
// Display difference between two values
float diff = fabs(out_value - in_value);
printf("(out:%.4f) - (in:%.4f) = (%.4f) ", out_value, in_value, diff);
if (diff > 0.05f) {
printf("FAIL\n");
} else {
printf("OK\n");
printf("\033[1A"); // Moves cursor up of 1 line
}
led = !led;
}
}
}
And here is the compilation output log:
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/nucleo_l4r5zi.html
PLATFORM: ST STM32 > ST Nucleo L4R5ZI
HARDWARE: STM32L4R5ZIT6 120MHz 640KB RAM (2MB Flash)
DEBUG: CURRENT(stlink) ON-BOARD(stlink) EXTERNAL(blackmagic, jlink)
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 8 compatible libraries
Scanning dependencies...
No dependencies
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/cmsis/TARGET_CORTEX_M/TOOLCHAIN_GCC/except.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/cmsis/TARGET_CORTEX_M/mbed_fault_handler.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/cmsis/TARGET_CORTEX_M/mbed_tz_context.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/AnalogIn.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/BusIn.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/BusInOut.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/BusOut.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/CAN.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/Ethernet.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/FlashIAP.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/I2C.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/I2CSlave.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/InterruptIn.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/InterruptManager.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/MbedCRC.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/QSPI.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/RawSerial.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/SPI.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/SPISlave.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/Serial.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/SerialBase.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/TableCRC.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/Ticker.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/Timeout.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/Timer.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/TimerEvent.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/drivers/UARTSerial.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/events/EventQueue.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/events/equeue/equeue.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/events/equeue/equeue_mbed.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/events/equeue/equeue_posix.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/events/mbed_shared_queues.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/LowPowerTickerWrapper.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/mbed_critical_section_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/mbed_flash_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/mbed_gpio.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/mbed_itm_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/mbed_lp_ticker_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/mbed_lp_ticker_wrapper.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/mbed_pinmap_common.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/mbed_ticker_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/mbed_us_ticker_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/mpu/mbed_mpu_v7m.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/hal/mpu/mbed_mpu_v8m.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/ATCmdParser.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/CThunkBase.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/CallChain.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/FileBase.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/FileHandle.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/FilePath.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/FileSystemHandle.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/LocalFileSystem.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/Stream.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_alloc_wrappers.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_application.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_assert.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_board.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_critical.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_error.o
/Users/nic/.platformio/packages/framework-mbed/platform/mbed_board.c: In function 'mbed_error_vprintf':
/Users/nic/.platformio/packages/framework-mbed/platform/mbed_board.c:67:9: warning: implicit declaration of function 'memcpy'; did you mean 'fmemopen'? [-Wimplicit-function-declaration]
memcpy(&buffer[sizeof buffer - sizeof ellipsis], ellipsis, sizeof ellipsis);
^~~~~~
fmemopen
/Users/nic/.platformio/packages/framework-mbed/platform/mbed_board.c: In function 'mbed_error_puts':
/Users/nic/.platformio/packages/framework-mbed/platform/mbed_board.c:88:31: warning: implicit declaration of function 'strlen'; did you mean 'stdin'? [-Wimplicit-function-declaration]
write(STDERR_FILENO, str, strlen(str));
^~~~~~
stdin
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_error_hist.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_interface.o
/Users/nic/.platformio/packages/framework-mbed/platform/mbed_error.c:434:20: warning: 'name_or_unnamed' defined but not used [-Wunused-function]
static const char *name_or_unnamed(const char *name)
^~~~~~~~~~~~~~~
/Users/nic/.platformio/packages/framework-mbed/platform/mbed_error.c:70:21: warning: 'compute_crc32' defined but not used [-Wunused-function]
static unsigned int compute_crc32(const void *data, int datalen)
^~~~~~~~~~~~~
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_mem_trace.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_mktime.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_mpu_mgmt.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_poll.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_retarget.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_rtc_time.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_sdk_boot.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_semihost_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_sleep_manager.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_stats.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_wait_api_no_rtos.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/platform/mbed_wait_api_rtos.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R5xI/TARGET_NUCLEO_L4R5ZI/PeripheralPins.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R5xI/TARGET_NUCLEO_L4R5ZI/system_clock.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/TARGET_STM32L4R5xI/device/TOOLCHAIN_GCC_ARM/startup_stm32l4r5xx.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/analogin_device.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/analogout_device.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_adc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_adc_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_can.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_can_legacy.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_comp.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_cortex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_crc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_crc_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_cryp.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_cryp_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_dac.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_dac_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_dcmi.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_dfsdm.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_dfsdm_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_dma.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_dma2d.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_dma_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_dsi.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_firewall.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_flash.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_flash_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_flash_ramfunc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_gfxmmu.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_gpio.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_hash.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_hash_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_hcd.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_i2c.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_i2c_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_irda.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_iwdg.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_lcd.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_lptim.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_ltdc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_ltdc_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_nand.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_nor.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_opamp.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_opamp_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_ospi.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_pcd.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_pcd_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_pwr.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_pwr_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_qspi.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_rcc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_rcc_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_rng.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_rtc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_rtc_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_sai.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_sai_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_sd.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_sd_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_smartcard.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_smartcard_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_smbus.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_spi.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_spi_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_sram.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_swpmi.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_tim.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_tim_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_tsc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_uart.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_uart_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_usart.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_usart_ex.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_hal_wwdg.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_adc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_comp.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_crc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_crs.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_dac.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_dma.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_dma2d.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_exti.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_fmc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_gpio.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_i2c.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_lptim.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_lpuart.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_opamp.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_pwr.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_rcc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_rng.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_rtc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_sdmmc.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_spi.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_swpmi.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_tim.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_usart.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_usb.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/stm32l4xx_ll_utils.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/device/system_stm32l4xx.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/flash_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/gpio_irq_device.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/l4_retarget.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/pwmout_device.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/serial_device.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/TARGET_STM32L4/spi_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/analogin_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/analogout_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/can_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/gpio_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/gpio_irq_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/hal_tick_overrides.o
/Users/nic/.platformio/packages/framework-mbed/targets/TARGET_STM/can_api.c: In function 'can_frequency':
/Users/nic/.platformio/packages/framework-mbed/targets/TARGET_STM/can_api.c:746:38: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Wformat=]
error("can ESR 0x%04x.%04x + timeout status %d", (can->ESR & 0xFFFF0000) >> 16, (can->ESR & 0xFFFF), status);
~~~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%04lx
/Users/nic/.platformio/packages/framework-mbed/targets/TARGET_STM/can_api.c:746:43: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Wformat=]
error("can ESR 0x%04x.%04x + timeout status %d", (can->ESR & 0xFFFF0000) >> 16, (can->ESR & 0xFFFF), status);
~~~^ ~~~~~~~~~~~~~~~~~~~
%04lx
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/i2c_api.o
/Users/nic/.platformio/packages/framework-mbed/targets/TARGET_STM/gpio_irq_api.c: In function 'handle_interrupt_in':
/Users/nic/.platformio/packages/framework-mbed/targets/TARGET_STM/gpio_irq_api.c:125:50: warning: format '%d' expects argument of type 'int', but argument 2 has type 'uint32_t {aka long unsigned int}' [-Wformat=]
error("Unexpected Spurious interrupt, index %d\r\n", irq_index);
~^
%ld
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/lp_ticker.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/mbed_crc_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/mbed_overrides.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/pinmap.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/port_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/pwmout_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/qspi_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/rtc_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/serial_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/sleep.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/stm_spi_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/trng_api.o
Compiling .pioenvs/nucleo_l4r5zi/FrameworkMbed/targets/TARGET_STM/us_ticker.o
Compiling .pioenvs/nucleo_l4r5zi/src/main.o
Generating LD script .pioenvs/nucleo_l4r5zi/stm32l4r5xx.ld.link_script.ld
Linking .pioenvs/nucleo_l4r5zi/firmware.elf
Building .pioenvs/nucleo_l4r5zi/firmware.bin
Checking size .pioenvs/nucleo_l4r5zi/firmware.elf
Memory Usage -> http://bit.ly/pio-memory-usage
DATA: [ ] 0.7% (used 4488 bytes from 655360 bytes)
PROGRAM: [ ] 2.5% (used 52604 bytes from 2097152 bytes)
Configuring upload protocol...
AVAILABLE: blackmagic, jlink, mbed, stlink
CURRENT: upload_protocol = mbed
Looking for upload disk...
Auto-detected: /Volumes/NODE_L4R5ZI
Uploading .pioenvs/nucleo_l4r5zi/firmware.bin
Firmware has been successfully uploaded.
(Some boards may require manual hard reset)
========================================================================================== [SUCCESS] Took 38.03 seconds =========================================================================================
Terminal will be reused by tasks, press any key to close it.