Skip to main content
PBull
Associate II
May 2, 2019
Solved

ARM6 Compiler Support

  • May 2, 2019
  • 31 replies
  • 9919 views

Hello,

I tried to port an TouchGFX-Application from ARM5-Compiler (ARMCC) to ARM6 (ARMCLANG). Both compilers are from KEIL (µVision).

Well it does compile, but it doesn't link:

Warning: L6869W: abstractpainter.o requested the Rogue Wave Standard C++ Library which has been removed from the product. This might cause link errors because libc++ is used instead.

Error: L6242E: Cannot link object abstractshape.o as its attributes are incompatible with the image attributes.

(There are a lot more linker errors)

I do believe the provided TouchGFX-Library is not compatible with ARMCLANG (and there is no other library supplied in ...\TouchGFX\4.10.0\touchgfx\lib\core\cortex_m7\Keil)

Is that the case, or did I miss something else?

This topic has been closed for replies.
Best answer by Martin KJELDSEN

Hi @PBull​,

You're correct - We do not provide an ARMCLANG compatible library.

Edit: I created one anyway here, for Cortex-M7.

http://sw-center-st-com.s3-eu-west-1.amazonaws.com/touchgfx/TouchGFX/Patches/4.13.0/touchgfx_core_clang.zip

Edit 11/06/2020: ARMCLANG support will be out for 4.14.0 which we're working on now. This release will also see an ARMCLANG lib for Cortex-M33.

Best regards,

Martin

31 replies

Martin KJELDSEN
Martin KJELDSENBest answer
Principal III
May 3, 2019

Hi @PBull​,

You're correct - We do not provide an ARMCLANG compatible library.

Edit: I created one anyway here, for Cortex-M7.

http://sw-center-st-com.s3-eu-west-1.amazonaws.com/touchgfx/TouchGFX/Patches/4.13.0/touchgfx_core_clang.zip

Edit 11/06/2020: ARMCLANG support will be out for 4.14.0 which we're working on now. This release will also see an ARMCLANG lib for Cortex-M33.

Best regards,

Martin

jimmii
Senior II
January 28, 2020

Hi @Martin KJELDSEN​ 

Any news on this?

PBull
PBullAuthor
Associate II
January 30, 2020

Adding my two cents:

ARMCC is no longer being actively developed by Keil.

It contains many features of C++11, but the STL is still C++03 (so no std::array etc ...).

ARMCLANG supports newer C++ standards.

If your project depends on the middleware from Keil, you are stucked to ARMCC, because of TouchGFX (Lib).

I would like to see it on the roadmap.

Best regards,

Peter

jimmii
Senior II
January 31, 2020

My words exactly.

And we would like to develop a new product, but not with an old compiler...

So, I also would like to see it on the roadmap.

Regards, jimmii

Martin KJELDSEN
Principal III
January 31, 2020
jimmii
Senior II
January 31, 2020

thanks, unfortunately following linker errors occur:

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object abstractpartition.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object lcd16bpp.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object application.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object bitmap.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object constfont.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object dma.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object font.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object fontmanager.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object hal.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object lcd.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object screen.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object textprovider.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object typedtext.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object unicode.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object utils.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object container.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object displaytransformation.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object drawable.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object gestures.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object stm32_crc_lock.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object texturemaptypes.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

TestCompiler\TestCompiler.axf: Error: L6242E: Cannot link object touchcalibration.o as its attributes are incompatible with the image attributes.

  ... wchart-16 clashes with wchart-32.

  ... packed-enum clashes with enum_is_int.

PBull
PBullAuthor
Associate II
February 1, 2020

Hi Martin,

thanks for the library!

I created a new project from scratch (with the stm32f746-disco board)

and TouchGFX works fine with ARMCLANG, as long as you don't use the Middleware from Keil (at least the File System & USB libary).

Then linker error occurs.

I figured out that:

TouchGFX only links when "Short enums/wchar" is disabled

Middleware only links when "Short enums/wchar" is enabled

Keil mentioned : "The wchar_t type must be the same in all source and libraries to successfully link."

Can you build the library with "Short enums/wchar" enabled? This should fix the problem.

0690X00000BxScFQAV.png

Detailed information here:

http://www.keil.com/support/docs/3975.htm

Martin KJELDSEN
Principal III
February 3, 2020

Thanks for the heads up!

I'll try to get around to it today.

/Martin

aroni525
Associate III
March 31, 2020

Hi Martin,

I would like to refresh this topic and ask you if there are any plans regarding library for ARMCLANG?

I have been developing an app with touchGFX, but I prefer rather STM32CubeIDE than Keil as an developement enviroment. Everything worked fine for a long time of testing and evaluating. But when I moved to the Keil (because I have to use certified compiler in production) I hit this problem. I can't and I don't want to use ARM5 compiler, because I use C++14, therefore the best option is to use ARM6.

The library you compiled with arm6 works nice, but I am wondering if there will be any support for the future releases? I would like to be updated with all touchGFX features ( you do a great job), without an updated lib it can be harmful. I will have to ask you to compile it again one day :squinting_face_with_tongue:

@Edit.

Okay, I didn't notice the small button "More answers" at the bottom so I didn't read all posts. Now I can see that you plan to add this into the next version. I worked to much today that I missed it...

Arek

Martin KJELDSEN
Principal III
April 1, 2020

There will most definitely be support in the next release :) And yeah, this forum software isn't the best at getting an overview, haha.

/Martin

aroni525
Associate III
March 31, 2020

Sorry for a duplicate, but I cant remove this post...