cancel
Showing results for 
Search instead for 
Did you mean: 

GFX01M2_HelloWorld application on X-Nucleo-GFX01M2 w/ STM32G071 Nucleo. IAR makes, I can build, but attempts to download/debug do not work. Basic G071 demos work.

PFabi.1
Associate II

My Debug Log =

Thu Dec 29, 2022 14:43:39: IAR Embedded Workbench 9.32.1 (C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm\bin\armPROC.dll) 

Thu Dec 29, 2022 14:43:39: Loaded macro file: C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm/config/debugger/ST/STM32G0xx.dmac 

Thu Dec 29, 2022 14:43:39: Flash download warning: 806400 out of 806400 bytes from data record CODE:[0x9000'0000,0x900c'4dff] will not be flashed 

Thu Dec 29, 2022 14:43:39: There were warnings while generating flash loader input. 

Thu Dec 29, 2022 14:43:39: See the Debug Log window for details. 

Thu Dec 29, 2022 14:43:41: Loaded macro file: C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm/config/flashloader/ST/FlashSTM32G0xxx.mac 

Thu Dec 29, 2022 14:43:41: Connected to ST-LINK/V2-1 [SWD mode 1800 kHz] [Access port: 0] Firmware V2.J40.S27 (Probe no: 066AFF505250827867063937) 

Thu Dec 29, 2022 14:43:41: Hardware reset with strategy 0 was performed 

Thu Dec 29, 2022 14:43:41: Initial reset was performed 

Thu Dec 29, 2022 14:43:41: DMAC: Watchdog timers will freeze while the core is halted. 

Thu Dec 29, 2022 14:43:41: DMAC: Debugging will be allowed during power saving modes. 

Thu Dec 29, 2022 14:43:41: Loaded debugee: C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm/config/flashloader/ST/FlashSTM32G0xxx_RAM32KB.out 

Thu Dec 29, 2022 14:43:41: Target reset 

Thu Dec 29, 2022 14:43:42: Unloaded macro file: C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm/config/flashloader/ST/FlashSTM32G0xxx.mac 

Thu Dec 29, 2022 14:43:42: Downloaded C:\Users\pfabian\OneDrive - Banner Engineering\Banner\ST LCD\en.X-CUBE-DISPLAY-V2_2\Projects\NUCLEO-G071RB\Applications\GFX01M2_HelloWorld\EWARM\GFX01M2_HelloWorld\Exe\ 

GFX01M2_HelloWorld.out to flash memory. 

Thu Dec 29, 2022 14:43:42: 17024 bytes downloaded into FLASH (6.14 Kbytes/sec) 

Thu Dec 29, 2022 14:43:42: ELF/DWARF Error: Unknown 

Thu Dec 29, 2022 14:43:42: Failed to load debugee: C:\Users\pfabian\OneDrive - Banner Engineering\Banner\ST LCD\en.X-CUBE-DISPLAY-V2_2\Projects\NUCLEO-G071RB\Applications\GFX01M2_HelloWorld\EWARM\GFX01M2_HelloWorld\Exe\ 

GFX01M2_HelloWorld.out 

Thu Dec 29, 2022 14:43:42: Unloaded macro file: C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm/config/debugger/ST/STM32G0xx.dmac 

Thu Dec 29, 2022 14:43:42: IAR Embedded Workbench 9.32.1 (C:\Program Files\IAR Systems\Embedded Workbench 9.1\arm\bin\armPROC.dll) 

Thu Dec 29, 2022 14:43:43: Loading the ST-LINK Driver driver 

7 REPLIES 7

Well it's going to need a loader configured for it to push the QSPI content.

Really not sure how well that's supported on NUCLEO-64 platform, at least in a memory-mapped, execute-in-place sense.

The QPSI is better / appropriately wired on the NUCLEO-144 board

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
PFabi.1
Associate II

It was my understanding that the GFX01M2 came preloaded with some images. A .hex file is generated and there is a batch file that I 'think' can use the STM32CubeProgrammer to upload those.

BUT - If I squint it appears the culprit is related to these two lines (see below) in the debug log related to the unknown ELF/DWARF Error Thoughts on that?

Thu Dec 29, 2022 14:43:42: ELF/DWARF Error: Unknown 

Thu Dec 29, 2022 14:43:42: Failed to load debugee: C:\Users\pfabian\OneDrive - Banner Engineering\Banner\ST LCD\en.X-CUBE-DISPLAY-V2_2\Projects\NUCLEO-G071RB\Applications\GFX01M2_HelloWorld\EWARM\GFX01M2_HelloWorld\Exe\ 

GFX01M2_HelloWorld.out 

I'm #TeamKEIL so can't really help you with idiosyncrasies with IAR tools

These are presumably objects that IAR itself generated?

The memory might have existing content, but your build is generating other content, I'm not sure how similar / identical they are.

The X-NUCLEO-GFX01M2 uses SPI, and a mishmash of routing options, if I'm not mistaken.

Can STM32 Cube Programmer deal with this .ELF or .HEX ?

The X-NUCLEO-GFX02Z1 uses QSPI and maps to 0x90000000, not sure if the G071 facilitates that or not, or if the 0x90000000 on the linker side is just a convenient method of constructing content, and not actually addressable in that space, but rather fetched at a byte stream / blob level.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
PFabi.1
Associate II

Everything I am trying is "supposed" to work out of the box. At least this is how it is advertised by ST. I have downloaded the cube package for the GFX01M2 and the IAR workspace. It does include an extra process where they create the .hex file too. I will see if I can get things working using the cube programmer.

The G071 Nucleo board is one of about 5 demo application included with the cube package, so it certainly appears they are saying it works with the GFX01M2. It is also listed on the website as compatible.

Thanks for the help. I'll respond back if I figure something out.

BTW - I also tried the Keil workspace, and that one too had it's out-of-box issues. If I continue to fail using IAR I will try the Keil again and let you know the failure points on that one!

Arg.

PFabi.1
Associate II

Keil is just as unfriendly as IAR -

Rebuild started: Project: GFX01M2_HelloWorld

*** Using Compiler 'V6.19', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin'

Rebuild target 'GFX01M2_HelloWorld'

compiling stm32g0xx_it.c...

compiling stm32g0xx_hal_msp.c...

assembling startup_stm32g071xx.s...

compiling lcd_os.c...

compiling stm32g0xx_nucleo_bus.c...

compiling mem_os.c...

compiling main.c...

compiling mem_io.c...

compiling lcd_io.c...

compiling key_io.c...

compiling st7789v_reg.c...

compiling mx25l6433f.c...

compiling st7789v.c...

compiling stm32g0xx_ll_rcc.c...

compiling stm32g0xx_hal_spi_ex.c...

compiling stm32g0xx_hal_rcc.c...

compiling stm32g0xx_hal_rcc_ex.c...

compiling stm32g0xx_hal_flash.c...

compiling stm32g0xx_hal_gpio.c...

compiling stm32g0xx_hal_flash_ex.c...

compiling stm32g0xx_hal_spi.c...

compiling stm32g0xx_hal_dma_ex.c...

compiling stm32g0xx_ll_dma.c...

compiling stm32g0xx_hal_dma.c...

compiling stm32g0xx_hal_pwr.c...

compiling stm32g0xx_hal_pwr_ex.c...

compiling stm32g0xx_hal_cortex.c...

compiling stm32g0xx_hal.c...

compiling stm32g0xx_hal_exti.c...

compiling stm32g0xx_hal_crc.c...

compiling stm32g0xx_hal_crc_ex.c...

compiling stm32g0xx_hal_tim.c...

compiling app_display.c...

compiling stm32g0xx_hal_tim_ex.c...

compiling system_stm32g0xx.c...

linking...

Program Size: Code=18292 RO-data=806880 RW-data=112 ZI-data=18472  

FromELF: creating hex file...

"GFX01M2_HelloWorld\GFX01M2_HelloWorld.axf" - 0 Error(s), 0 Warning(s).

Build Time Elapsed: 00:00:06

Load "GFX01M2_HelloWorld\\GFX01M2_HelloWorld.axf" 

No Algorithm found for: 90000000H - 9000FFFFH

No Algorithm found for: 90010000H - 9001FFFFH

No Algorithm found for: 90020000H - 9002FFFFH

No Algorithm found for: 90030000H - 9003FFFFH

No Algorithm found for: 90040000H - 9004FFFFH

No Algorithm found for: 90050000H - 9005FFFFH

No Algorithm found for: 90060000H - 9006FFFFH

No Algorithm found for: 90070000H - 9007FFFFH

No Algorithm found for: 90080000H - 9008FFFFH

No Algorithm found for: 90090000H - 9009FFFFH

No Algorithm found for: 900A0000H - 900AFFFFH

No Algorithm found for: 900B0000H - 900BFFFFH

No Algorithm found for: 900C0000H - 900C4DFFH

Partial Erase Done (areas with no algorithms skipped!)

No Algorithm found for: 90000000H - 9000FFFFH

No Algorithm found for: 90010000H - 9001FFFFH

No Algorithm found for: 90020000H - 9002FFFFH

No Algorithm found for: 90030000H - 9003FFFFH

No Algorithm found for: 90040000H - 9004FFFFH

No Algorithm found for: 90050000H - 9005FFFFH

No Algorithm found for: 90060000H - 9006FFFFH

No Algorithm found for: 90070000H - 9007FFFFH

No Algorithm found for: 90080000H - 9008FFFFH

No Algorithm found for: 90090000H - 9009FFFFH

No Algorithm found for: 900A0000H - 900AFFFFH

No Algorithm found for: 900B0000H - 900BFFFFH

No Algorithm found for: 900C0000H - 900C4DFFH

Partial Programming Done (areas with no algorithms skipped!)

Partial Verify OK (areas with no algorithms skipped!)

Flash Load finished at 08:48:07

Error: Could not load file 'GFX01M2_HelloWorld\GFX01M2_HelloWorld.axf'. Debugger aborted !

Karim BEN BELGACEM
ST Employee

Hi All,

The X-CUBE-DISPLAY software expansion pack is providing external loaders only for the STM32CubePpogrammer tool. And only for the listed Projects of NUCLEO + X-NUCLEO-GFX combinations inside the pack.

Sorry, but we're not providing external loaders for IAR and Keil.

However, it is still possible to debug also with these IDEs if you follow below steps:

  1. Compile with your IDE (IAR / Keil / STM32CubeIDE)
  2. Copy your generated .hex file into the folder Binary/.
  3. Execute the programming script batch file in the same folder Binary
  4. Attach your debugger or start it without downloading the program file

Next release X-CUBE-DISPLAY.3.0.0 will contain source code and Projects for the used external loaders. So you will be able to recompile them for your toolchain also.

Best Regards,

Karim

PFabi.1
Associate II

Hi Karim,

Thanks for the response.

I have the STM32CubePpogrammer tool loaded and have tried using the 'GFX01M2_HelloWorld.bat' batch file. I placed 'MX25L6433F_GFX01M2_STM32G0.stldr' into the Binary directory. I still get an error. See log below

-----

Using C:\Users\pfabian\OneDrive - Banner Engineering\Banner\ST LCD\en.X-CUBE-DISPLAY-V2_2\Projects\NUCLEO-G071RB\Applications\GFX01M2_HelloWorld\Binary\MX25L6433F_GFX01M2_STM32G0.stldr

   -------------------------------------------------------------------

            STM32CubeProgrammer v2.12.0

   -------------------------------------------------------------------

ST-LINK SN : 066AFF505250827867063937

ST-LINK FW : V2J40M27

Board    : NUCLEO-G071RB

Voltage   : 3.22V

SWD freq  : 4000 KHz

Connect mode: Under Reset

Reset mode : Hardware reset

Device ID  : 0x460

Revision ID : Rev B

Device name : STM32G07x/STM32G08x

Flash size : 128 KBytes

Device type : MCU

Device CPU : Cortex-M0+

BL Version : 0xB2

Debug in Low Power mode enabled

Error: Wrong command - "banner engineering\banner\st LCD\en.X-CUBE-DISPLAY-V2_2\Projects\NUCLEO-G071RB\Applications\GFX01M2_HelloWorld\Binary\MX25L6433F_GFX01M2_STM32G0.stldr": Unknown command or command missed some parameters, please refer to the help to see the supported commands.

Press any key to continue . . .