Start complete new Platform type exemplarily for Infineon's XMC family

Hello there,

while searching a new build and development environment, I was very pleased to finally stumble upon PlatformIO. Interesting approach, making development that much easier.

As I already chose XMC as my target platform, I am now facing the problem, that it is not supported at all. And here is the main question: How do I at best start, when I need to integrate a complete new platform?

As an example, of course, I’d like to contribute integration of this XMC platform, and more specific, getting the XMC4700_RELAX_KIT ready to run with PlatformIO. The integration is quite near to what was done for StSTM32, or even more simple.

Additional Sources needed: CMSIS + XMLlib
Buildscript: the basearm buildscript should do, maybe with some additional options
Tools: Equiped with RELAX_KIT is a SEGGER JLink debugger which can be used via gdb interface

I already started with adding a board definition to Framework CMSIS, adding a Board definition as described and adding the Platform, all locally. I have also tried to register XMClib as a Library, downloading the public .zip from Infineon, but it still does not show up. And I guess I also need additional info here.

I would like to contribute all that is necessary to get complete XMC family supported and also maintain this part, if you help me getting started.

So far, regards, Stefan

Hi Stefan,

Thanks a lot that you decided to use PlatformIO for the new development platform. I want to emphasize that we are working on the PlatformIO 3.0. It is totally new PlatformIO with new decentralized architecture for development platforms. The aim idea of PlatformIO 3.0 to allows developers/users to create own development platform in a few steps.

Currently, there is development build that supports new PlatformIO 3.0 based development platforms. Now, development platforms, build scripts, embedded boards, LD scripts, package requirements are the part of development platform (not PlatformIO). PlatformIO 3.0 has new Build System and you can use PlatformIO Build System API to create an own platform.

See full list with PlatformIO 3.0 compatible platforms. Also, I want to note that PlatformIO 3.0 is still in development. If yo usee any errors and etc, please report me.

Ok, let’s create a new development platform for Infineon.

  1. Install PlatformIO 3.0.
  2. platformio platform install ststm32
  3. Rename all places with “ststm32” to “infineonxmc”
  4. Correct boards, package requirements in platform.json.

… I propose to start from this point and discuss further steps later.

I saw it… I don’t see sense to add it when we don’t have instruments to build this library. Let’s create development platform and then I’ll approve that library.

Thanks a lot!

Are there any update to this?
There’s also a Library for Arduino Integretation, maybe this can help in development:

Sorry to say, but unfortunately I had to stop going on with this, and it seems I wasted all work already done. I was trying to get the mbed library to run on my xmc, but it never worked, as there seem to be rather changes between Infineons delivered material and the library coming with PIO.

If you want to try and need any help, don’t hesitate to contact me.

We will have an official support by Infineon in the next weeks. Stay tuned with us at :bird:


I’m working with VSCode and PIO for an Infineon XMC Board (xmc4700_relax_kit), I imported an example project (Example XMC 4700) and when I build the project in the terminal returns:
C:\Users\JuanMacias.platformio\packages\framework-arduinoxmc\variants\XMC4700\startup_XMC4700.S: Assembler messages:
C:\Users\JuanMacias.platformio\packages\framework-arduinoxmc\variants\XMC4700\startup_XMC4700.S:211: Error: cannot honor width suffix – ldr sp,=__initial_sp' C:\Users\JuanMacias\.platformio\packages\framework-arduinoxmc\variants\XMC4700\startup_XMC4700.S:215: Error: selected processor does not support blx r0’ in Thumb mode
C:\Users\JuanMacias.platformio\packages\framework-arduinoxmc\variants\XMC4700\startup_XMC4700.S:240: Error: selected processor does not support ittt ge' in Thumb mode C:\Users\JuanMacias\.platformio\packages\framework-arduinoxmc\variants\XMC4700\startup_XMC4700.S:241: Error: thumb conditional instruction should be in IT block -- ldrge r0,[r1,r3]’
C:\Users\JuanMacias.platformio\packages\framework-arduinoxmc\variants\XMC4700\startup_XMC4700.S:242: Error: thumb conditional instruction should be in IT block – strge r0,[r2,r3]' C:\Users\JuanMacias\.platformio\packages\framework-arduinoxmc\variants\XMC4700\startup_XMC4700.S:271: Error: selected processor does not support itt ge’ in Thumb mode
C:\Users\JuanMacias.platformio\packages\framework-arduinoxmc\variants\XMC4700\startup_XMC4700.S:272: Error: thumb conditional instruction should be in IT block – strge r0,[r1,r2]' C:\Users\JuanMacias\.platformio\packages\framework-arduinoxmc\variants\XMC4700\startup_XMC4700.S:282: Error: selected processor does not support blx r0’ in Thumb mode
C:\Users\JuanMacias.platformio\packages\framework-arduinoxmc\variants\XMC4700\startup_XMC4700.S:286: Error: selected processor does not support `blx r0’ in Thumb mode
*** [.pioenvs\xmc4700_relax_kit\FrameworkArduinoVariant\startup_XMC4700.S.o] Error 1
Can you help me?



Fixed in the latest release. Please open PlatformIO IDE > PIO Home > Platforms > Updates.