Unknown object name found in GCC map file

Hi,

I am trying to use a WeAct Studio STM32H723VGT6 board. Into the Mbed Studio 1.4.5 I have selected the Nucleo-H723ZG and the GCC_ARM compiler. The link gives that following messages:

Unknown object name found in GCC map file: load address 0x0801cc48
Unknown object name found in GCC map file: load address 0x0801e428
Unknown object name found in GCC map file: load address 0x0801e488

Any idea ? The generated software seems to be well loaded via STM32 CubeProgrammer but it does not work into the target.

Hello,

not sure if this is related but there were an issue with H723 and was fixed with this Pull Request #15407 , but it is in the master branch and not in any release version.

BR, Jan

Hi Jan,
It is not related… link warning “Unknown object name found in GCC map file”. No idea about the cause. Mapping error somewhere? H723 was added end of 2022 to mbed with the gcc “only” limitation.
Regards,
Alain

sounds strange, the map file cannot be loaded into the target, the .elf, .hex or .bin file must be used.

The full output:

Building project mbed-os-example-blinky (NUCLEO_H723ZG, GCC_ARM)
Scan: mbed-os-example-blinky
Link: mbed-os-example-blinky
Elf2Bin: mbed-os-example-blinky
Unknown object name found in GCC map file: load address 0x0801cc48
Unknown object name found in GCC map file: load address 0x0801e428
Unknown object name found in GCC map file: load address 0x0801e488
Unknown object name found in GCC map file: load address 0x0801cc48
Unknown object name found in GCC map file: load address 0x0801e428
Unknown object name found in GCC map file: load address 0x0801e488

Module .text .data .bss
[fill] 110(+0) 6(+0) 58(+0)
[lib]\c.a 46932(+0) 2474(+0) 89(+0)
[lib]\gcc.a 1920(+0) 0(+0) 0(+0)
[lib]\misc 188(+0) 4(+0) 28(+0)
[lib]\nosys.a 32(+0) 0(+0) 0(+0)
[lib]\stdc++.a 0(+0) 0(+0) 0(+0)
[misc] 0(+0) 0(+0) 0(+0)
main.o 1022(+0) 24(+0) 4954(+0)
mbed-os\cmsis 11118(+0) 168(+0) 6340(+0)
mbed-os\connectivity 5216(+0) 20(+0) 7241(+0)
mbed-os\drivers 3868(+0) 0(+0) 0(+0)
mbed-os\events 1692(+0) 0(+0) 3104(+0)
mbed-os\hal 1658(+0) 8(+0) 114(+0)
mbed-os\platform 5798(+0) 276(+0) 464(+0)
mbed-os\rtos 1298(+0) 0(+0) 8(+0)
mbed-os\targets 25876(+0) 12(+0) 1896(+0)
Subtotals 106728(+0) 2992(+0) 24296(+0)
Total Static RAM memory (data + bss): 27288(+0) bytes
Total Flash memory (text + data): 109720(+0) bytes
Image: BUILD/NUCLEO_H723ZG/GCC_ARM\mbed-os-example-blinky.bin

then this message comes from memmap.py tool that reads the mapfile and produces the memory sections overview. It does not affect the binary file and the messages can be ignored.

Ok. Extra test done. I have compiled (gcc) and downloaded the software into a STM32H743VIT6 board. No message and it works. Same software but H723… warning messages and nothing occurs into the WeAct Studio board. Strange.

Are you sure you are compiling for the correct target? The Nucleo has a H723ZG with 1 MB RAM, for the WeAct I see a version with H723VG with 564 kB RAM. There you need a different linker file, a H723ZG code will not run on a VG version.

No it is not the cause. STM32H723VGT6 and Nucleo-H723ZG are the same except the number of pins. In another project I am using a STM32H743VIT6 with the NUCLEO_H743ZI2 config and it works. When I compile in bare metal mode (as requested) no more link message. The STM32 CubeProgrammer work perfectly with the good cpu config. BUT the current is very low below 20 mA in despite of the red led active. Board failed ?

another problem can be a different clock source configuration, Nucleo boards usually use a clock input from the onboard STLink, the WeAct boards have a xtal.

How I can modify the clock config ?

The current possible clock configurations for H723xG are here and it is configured for external clock from ST-link 8Mhz

  • for a basic test you can enforce the change of clock settings directly in the system_clock.c (first link)
  • ideal could be your own custom target settings for your target
  • you can modified current settings via mbed_app.json file. You need probably something like bellow, but fill correct value of your HSE. This settings will try to use HSE and if will failed then use HSI.
{
    "target_overrides": {
        "*": {
            "target.clock_source": "USE_PLL_HSE|USE_PLL_HSI"
       }
    },
    "config": {
        "hse_value": {
            "value": "8000000",
            "macro_name": "HSE_VALUE"
        }
    }
}

BR, Jan

Great Jan! It works. Thank you very much for your help.

Regards,

Alain