Coder Social home page Coder Social logo

platformio-infineonxmc's Introduction

Infineon XMC: development platform for PlatformIO

Build Status

Infineon has designed the XMC microcontrollers for real-time critical applications with an industry-standard core. The XMC microcontrollers can be integrated with the Arduino platform

  • Home (home page in the PlatformIO Registry)
  • Documentation (advanced usage, packages, boards, frameworks, etc.)

Usage

  1. Install PlatformIO
  2. Create PlatformIO project and configure a platform option in platformio.ini file:

Stable version

[env:stable]
platform = infineonxmc
board = ...
...

Development version

[env:development]
platform = https://github.com/Infineon/platformio-infineonxmc.git
board = ...
...

Configuration

Please navigate to documentation.

platformio-infineonxmc's People

Contributors

imbur avatar ivankravets avatar jaenrig-ifx avatar mtiutiu avatar pablopl avatar sherylll avatar valeros avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

platformio-infineonxmc's Issues

Support for Infineon XMC4200 Sense2Go

Is it possible to easily write support for the Sense2Go board - version 3.1 (circa 2015) - given the support for the 4200 series?

Would be great to use this older board!

//Adam

xmc2go empty does not build

I am just trying to compile an empty main.cpp for the arduino framework for the xmc2go 1100 (core 4.0.0a3). It prompts the following error:

Processing xmc1100_xmc2go (platform: infineonxmc; board: xmc1100_xmc2go; framework: arduino)
------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/infineonxmc/xmc1100_xmc2go.html
PLATFORM: Infineon XMC > XMC1100 XMC2Go
HARDWARE: XMC1100 32MHz 64KB RAM (64KB Flash)
DEBUG: CURRENT(jlink) ON-BOARD(jlink)
Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF MODES: FINDER(chain) COMPATIBILITY(soft)
Collected 14 compatible libraries
Scanning dependencies...
No dependencies
Compiling .pioenvs\xmc1100_xmc2go\src\main.cpp.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduinoVariant\startup_XMC1100.S.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduinoVariant\system_XMC1100.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\HardwareSerial.cpp.o
Archiving .pioenvs\xmc1100_xmc2go\libFrameworkArduinoVariant.a
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\IPAddress.cpp.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\Main.cpp.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\Print.cpp.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\RingBuffer.cpp.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\Stream.cpp.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\Tone.cpp.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\WInterrupts.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\WMath.cpp.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\WString.cpp.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\abi.cpp.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\avr\dtostrf.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\hooks.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\itoa.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\new.cpp.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\reset.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\usblib\Class\Device\CDCClassDevice.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\usblib\Class\Device\HIDClassDevice.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\usblib\Class\Device\MassStorageClassDevice.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\usblib\Common\memcpy.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\usblib\Core\ConfigDescriptors.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\usblib\Core\Events.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\usblib\Core\HostStandardReq.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\usblib\Core\USBTask.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\usblib\Core\XMC4000\EndpointStream_XMC4000.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\usblib\Core\XMC4000\Endpoint_XMC4000.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\usblib\Core\XMC4000\USBController_XMC4000.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\wiring_analog.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\wiring_digital.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\wiring_pulse.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\wiring_shift.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\wiring_time.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\xmc_lib\CMSIS\DSP\Source\arm_abs_f32.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\xmc_lib\CMSIS\DSP\Source\arm_bitreversal.c.o
Compiling .pioenvs\xmc1100_xmc2go\FrameworkArduino\xmc_lib\CMSIS\DSP\Source\arm_bitreversal2.S.o
C:\Users\Enriquez\.platformio\packages\framework-arduinoxmc\cores\xmc_lib\CMSIS\DSP\Source\arm_bitreversal2.S: Assembler
messages:
C:\Users\Enriquez\.platformio\packages\framework-arduinoxmc\cores\xmc_lib\CMSIS\DSP\Source\arm_bitreversal2.S:100: Error: cannot honor width suffix -- `add r2,r0,r2'
C:\Users\Enriquez\.platformio\packages\framework-arduinoxmc\cores\xmc_lib\CMSIS\DSP\Source\arm_bitreversal2.S:101: Error: cannot honor width suffix -- `add r6,r0,r6'
C:\Users\Enriquez\.platformio\packages\framework-arduinoxmc\cores\xmc_lib\CMSIS\DSP\Source\arm_bitreversal2.S:127: Error: cannot honor width suffix -- `add r2,r0,r2'
C:\Users\Enriquez\.platformio\packages\framework-arduinoxmc\cores\xmc_lib\CMSIS\DSP\Source\arm_bitreversal2.S:128: Error: cannot honor width suffix -- `add r6,r0,r6'
*** [.pioenvs\xmc1100_xmc2go\FrameworkArduino\xmc_lib\CMSIS\DSP\Source\arm_bitreversal2.S.o] Error 1
============================================== [ERROR] Took 11.84 seconds ==============================================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

Known Bugs

In VS Code:

  • For versions v1.0.1 and newer the Project Wizard from PIO home returns following error:
PIO Core Call Error: No JSON object could be decoded

However it is still possible to create a project manually and compile/upload it.

  • Travis currently stalled on
platformio platform install -f file://.
  • Linux support to be offered

Travis CI Integration with Codecov.io for Platform.Io Library

Hello @ivankravets ,
As part of development and maintaining Arduino Compatible Libraries for Infineon Sensors, we wanted to integrate code coverage with our travis ci.
We are using python 3.7 and platformio ci for the build but could not integrate codecov.io.
As a test, I created a branch “test” in repository “DPS310-Pressure-Sensor” DPS310-Pressure-Sensor: branch-test.
The current travis.yml file is attached below:

language: python
python:
- 3.7

sudo: required

cache: pip
    
branches:
  - master
  - dps310
  - test

env:
   
   
matrix:
    - PLATFORMIO_CI_SRC=examples/i2c_background
    - PLATFORMIO_CI_SRC=examples/i2c_command
    - PLATFORMIO_CI_SRC=examples/i2c_interrupt
    - PLATFORMIO_CI_SRC=examples/spi_background
    - PLATFORMIO_CI_SRC=examples/spi_command
    - PLATFORMIO_CI_SRC=examples/spi_interrupt

before_install:
  - python3 -m pip install -U coverage codecov mypy

install:
# build with stable core    
- pip install -U platformio
- platformio platform install -f infineonxmc

script:
-  platformio ci --lib="."  --board=xmc1100_xmc2go --board=xmc1100_boot_kit --board=xmc4700_relax_kit --board=uno --board nodemcuv2

#after_success:
#  - codecov

I tried finding any available resource but unfortunately, it is just not working.
Any help or guide to point me in the right direction would be highly appreciated.
Thanks & Regards,
Arka

XMC4200 Projects fail to compile

Pre-requisites
Windows 11 & Visual Studio 64 bit

XMC4200 directory is not created!
image

Can you reproduce the problem reliably?
Yes

Did you check current release notes for known issues?
Yes

If this is not the latest release, have you checked newer releases?
Latest release
Description:

A clear and concise description of what the bug is.

Steps to Reproduce:

  1. Install VS Code + PlatformIO extension
  2. Create a new Project using XMC4200_Distance2Go
  3. Attempt to build

Expected Result:
As per XMC1300 (which works)
image

Actual Result:
image

Frequency (1/1, 1/50, 1/100):
5/5

Build/Commit:

Target:
XMC4200_Distance2Go

Host OS and Version:
MacOS + Virtual Box

Compiler:
VS Code

Porting from DAVE

We have developed a custom board using the XMC4700 and DAVE. It's part of a larger project involving other computers and languages. The team would prefer to do all development with VSCode if possible.

I'm trying to assess what would need to be done to extract the source code we presently have in DAVE and build/debug it under VSCode.

Apologies if this isn't the right place to ask this question.

Thanks!

Getting Linker error on build

Prerequisites

Anytime I try to build the continuous-mode example, I get a Linker error.

Description:

When building it exits with ld returned 1 exit status

Error:

[...]
Indexing .pio/build/xmc1100_xmc2go/libFrameworkArduino.a
Linking .pio/build/xmc1100_xmc2go/program.elf
~/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/libc_nano.a(lib_a-abort.o): In function `abort':
abort.c:(.text.abort+0xa): undefined reference to `_exit'
~/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/libc_nano.a(lib_a-signalr.o): In function `_kill_r':
signalr.c:(.text._kill_r+0xe): undefined reference to `_kill'
~/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/libc_nano.a(lib_a-signalr.o): In function `_getpid_r':
signalr.c:(.text._getpid_r+0x2): undefined reference to `_getpid'
~/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/libc_nano.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text._write_r+0x10): undefined reference to `_write'
~/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/libc_nano.a(lib_a-closer.o): In function `_close_r':
closer.c:(.text._close_r+0xc): undefined reference to `_close'
~/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/libc_nano.a(lib_a-fstatr.o): In function `_fstat_r':
fstatr.c:(.text._fstat_r+0xe): undefined reference to `_fstat'
~/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/libc_nano.a(lib_a-isattyr.o): In function `_isatty_r':
isattyr.c:(.text._isatty_r+0xc): undefined reference to `_isatty'
~/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/libc_nano.a(lib_a-lseekr.o): In function `_lseek_r':
lseekr.c:(.text._lseek_r+0x10): undefined reference to `_lseek'
~/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/7.2.1/../../../../arm-none-eabi/lib/thumb/v6-m/libc_nano.a(lib_a-readr.o): In function `_read_r':
readr.c:(.text._read_r+0x10): undefined reference to `_read'
collect2: error: ld returned 1 exit status
*** [.pio/build/xmc1100_xmc2go/program.elf] Error 1
============================================================= [FAILED] Took 2.29 seconds =============================================================

 *  The terminal process "platformio 'run', '--environment', 'xmc1100_xmc2go'" terminated with exit code: 1.

Steps to Reproduce:

  1. Setup continuous-mode example in platformio (I append my config files)

  2. Try to build

Expected Result:

Should build

Actual Result:

Does not build

Build/Commit:

infineon/XENSIV PAS CO2@^3.1.0

Target:

xmc2go

Host OS and Version:

Linux

Compiler:

PLATFORM: Infineon XMC (1.2.0) > XMC1100 XMC2Go
HARDWARE: XMC1100 32MHz, 16KB RAM, 64KB Flash
DEBUG: Current (jlink) On-board (jlink)
PACKAGES:

  • framework-arduinoxmc @ 1.4.0
  • toolchain-gccarmnoneeabi @ 1.70201.0 (7.2.1)
    LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 17 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- XENSIV PAS CO2 @ 3.1.0

Environment

platformio.ini

[env:xmc1100_xmc2go]
platform = infineon/infineonxmc@^1.2.0
board = xmc1100_xmc2go
framework = arduino
lib_deps = 
    infineon/XENSIV PAS CO2

main.cpp exactly like Example

THANKS!

no Wire.h in XMC4700?

Hello,

I am trying to compile an Arduino / PlatformIO project that uses SPI for the XMC4700 and it fails over not finding Wire.h:
.platformio\packages\framework-arduinoxmc\libraries\SPI\src\HW_SPI.cpp:28:10: fatal error: Wire.h: No such file or directory

Can we please get an update to https://github.com/Infineon/XMC-for-Arduino/releases/tag/V3.0.0 ?

Also, the link to the documentation is dead:
https://docs.platformio.org/page/platforms/infineonxmc.html

And Infineon XMC is not listed here:
https://docs.platformio.org/en/latest/platforms/index.html

Problem with the Variants of the XMC library

I think there is a verison problem.
I'm working with the XMC4700 right now and I found out that the variants files are not up to date.

In my particular case I'm using the XMC-for-Arduino/arm/variants/XMC4700/config/XMC4700_Relax_Kit/pins_arduino.h and that part is missing:

extern uint8_t SS; 
extern uint8_t MOSI;
extern uint8_t MISO;
extern uint8_t SCK;

I also tried to update my platform, but PIO is saying that everything is up to date.
Maybe you can take a look at that issue.

Thanks in advance.

Best Regards
Dominik

XMC4700 Relax Kit. Serial1 was not declared in this scope.

Hi, guys!

We are writing some code for the XMC4700 Relax Kit. The project requires two serial interfaces.

Trying to use the second serial interface (Serial1)

#include <Arduino.h>

void setup()
{
    Serial.begin(115200);
    Serial1.begin(115200);
    Serial.println("Hello world");
}
void loop()
{
}

throws the following error on PlatformIO compiler :

'Serial1' was not declared in this scope.

How can we access the additional Serial Interface?

PlatformIO core version: 6.0.1

platformio-infineonxmc version: We have test stable and Upstream versions with the same result.

Thanks in advance!

Updated core library to 1.4.0 fails

Hi @ivankravets ,

I have tried to update the project to version 1.4.0 of the xmc-for-arduino core.
I played it by ear checking some previous updates, since I am new to this project.
It seems we are still missing some step. This the error when trying to compile with the last changes and release made:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 257: invalid start byte:
  File "C:\Users\GernertD\.platformio\penv\lib\site-packages\platformio\builder\main.py", line 156:
    env.SConscript("$BUILD_SCRIPT")
  File "C:\Users\GernertD\.platformio\packages\tool-scons\script\..\engine\SCons\Script\SConscript.py", line 597:
    return _SConscript(self.fs, *files, **subst_kw)
  File "C:\Users\GernertD\.platformio\packages\tool-scons\script\..\engine\SCons\Script\SConscript.py", line 286:
    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
  File "C:\Users\GernertD\.platformio\platforms\infineonxmc\builder\main.py", line 142:
    target_elf = env.BuildProgram()
  File "C:\Users\GernertD\.platformio\packages\tool-scons\script\..\engine\SCons\Environment.py", line 219:
    return self.method(*nargs, **kwargs)
  File "C:\Users\GernertD\.platformio\penv\lib\site-packages\platformio\builder\tools\platformio.py", line 62:
    env.ProcessProjectDeps()
  File "C:\Users\GernertD\.platformio\packages\tool-scons\script\..\engine\SCons\Environment.py", line 219:
    return self.method(*nargs, **kwargs)
  File "C:\Users\GernertD\.platformio\penv\lib\site-packages\platformio\builder\tools\platformio.py", line 131:
    project_lib_builder = env.ConfigureProjectLibBuilder()
  File "C:\Users\GernertD\.platformio\packages\tool-scons\script\..\engine\SCons\Environment.py", line 219:
    return self.method(*nargs, **kwargs)
  File "C:\Users\GernertD\.platformio\penv\lib\site-packages\platformio\builder\tools\piolib.py", line 1037:
    lib_builders = env.GetLibBuilders()
  File "C:\Users\GernertD\.platformio\packages\tool-scons\script\..\engine\SCons\Environment.py", line 219:
    return self.method(*nargs, **kwargs)
  File "C:\Users\GernertD\.platformio\penv\lib\site-packages\platformio\builder\tools\piolib.py", line 962:
    lb = LibBuilderFactory.new(env, lib_dir)
  File "C:\Users\GernertD\.platformio\penv\lib\site-packages\platformio\builder\tools\piolib.py", line 58:
    obj = getattr(sys.modules[__name__], clsname)(env, path, verbose=verbose)
  File "C:\Users\GernertD\.platformio\penv\lib\site-packages\platformio\builder\tools\piolib.py", line 117:
    self._manifest = manifest if manifest else self.load_manifest()
  File "C:\Users\GernertD\.platformio\penv\lib\site-packages\platformio\builder\tools\piolib.py", line 469:
    return ManifestParserFactory.new_from_file(manifest_path).as_dict()
  File "c:\users\gernertd\.platformio\penv\lib\site-packages\platformio\package\manifest\parser.py", line 74:
    cls.read_manifest_contents(path), type_from_uri, remote_url
  File "c:\users\gernertd\.platformio\penv\lib\site-packages\platformio\package\manifest\parser.py", line 64:
    return fp.read()
  File "C:\Users\GernertD\AppData\Local\Programs\Python\Python36-32\lib\codecs.py", line 321:
    (result, consumed) = self._buffer_decode(data, self.errors, final) 

Any idea? Thanks a lot!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.