Skip to content

Commit

Permalink
Merge develop for 1.6.0 release
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
jaenrig-ifx committed Sep 20, 2021
2 parents 0dcbd58 + 6a8cee3 commit 318e421
Show file tree
Hide file tree
Showing 65 changed files with 2,572 additions and 1,584 deletions.
184 changes: 184 additions & 0 deletions .github/workflows/compile-platform-examples.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@

name: Compile Examples

# See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows
on:
push:
paths:
- ".github/workflows/compile-platform-examples.ya?ml"
- "cores/**"
- "libraries/**"
- "variants/**"
- "boards.txt"
- "platform.txt"
pull_request:
paths:
- ".github/workflows/compile-platform-examples.ya?ml"
- "cores/**"
- "libraries/**"
- "variants/**"
- "boards.txt"
- "platform.txt"
workflow_dispatch:
repository_dispatch:

jobs:
build:
name: ${{ matrix.board.fqbn }}
runs-on: ubuntu-latest

env:
SKETCHES_REPORTS_PATH: sketches-reports

strategy:
fail-fast: false

matrix:
board:
- fqbn: Infineon:arm:XMC1100_Boot_Kit
i2s: true
dieTemp: true
heapMem: true
sleep1100: true
sleep4700 : false
stackMem: true
multiSerial: false
dma: false
alarmRtc: false
- fqbn: Infineon:arm:XMC1100_XMC2GO
i2s: true
dieTemp: true
heapMem: true
sleep1100: true
sleep4700 : false
stackMem: true
multiSerial: false
dma: false
alarmRtc: false
- fqbn: Infineon:arm:XMC1100_H_BRIDGE2GO
i2s: false
dieTemp: true
heapMem: true
sleep1100: true
sleep4700 : false
stackMem: true
multiSerial: false
dma: false
alarmRtc: false
- fqbn: Infineon:arm:XMC1300_Boot_Kit
i2s: false
dieTemp: true
heapMem: true
sleep1100: true
sleep4700 : false
stackMem: true
multiSerial: false
dma: false
alarmRtc: false
# - fqbn: Infineon:arm:XMC1300_Sense2GoL
# serial: true
- fqbn: Infineon:arm:XMC4400_Platform2GO
i2s: false
dieTemp: false
heapMem: false
sleep1100: false
sleep4700 : false
stackMem: true
multiSerial: false
dma: false
alarmRtc: true
- fqbn: Infineon:arm:XMC4700_Relax_Kit
i2s: true
dieTemp: true
heapMem: true
sleep1100: false
sleep4700 : true
stackMem: true
multiSerial: true
dma: true
alarmRtc: true

# Make board type-specific customizations to the matrix jobs
include:
- board:
i2s: true
i2s-sketch-paths: |
- libraries/I2S
- board:
dieTemp: true
dieTemp-sketch-paths: |
- libraries/DeviceControlXMC/examples/DieTemperatureMeasurement
- board:
heapMem: true
heapMem-sketch-paths: |
- libraries/DeviceControlXMC/examples/HeapMemoryMeasurement
- board:
sleep1100: true
sleep1100-sketch-paths: |
- libraries/DeviceControlXMC/examples/SleepModeXMC1100
- board:
sleep4700: true
sleep4700-sketch-paths: |
- libraries/DeviceControlXMC/examples/SleepModeXMC4700
- board:
stackMem: true
stackMem-sketch-paths: |
- libraries/DeviceControlXMC/examples/StackMemoryMeasurement
- board:
multiSerial: true
multiSerial-sketch-paths: |
- libraries/Multi-Serial
- board:
dma: true
dma-sketch-paths: |
- libraries/DMA
- board:
alarmRtc: true
alarmRtc-sketch-paths: |
- libraries/RTC/examples/AlarmRTC
steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Compile examples
uses: arduino/compile-sketches@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
fqbn: ${{ matrix.board.fqbn }}
platforms: |
# Use Boards Manager to install the latest release of the platform to get the toolchain.
- name: Infineon:arm
source-url: https://github.com/Infineon/XMC-for-Arduino/releases/latest/download/package_infineon_index.json
- source-path: ./
name: Infineon:arm
sketch-paths: |
# Compile these sketches for all boards
- libraries/IFX9201
- libraries/LED
- libraries/OneWire
- libraries/RTC/examples/SimpleRTC
- libraries/SPI
- libraries/Sense2Go
- libraries/Ultrasonic
- libraries/Wire
# Board-specific sketches
${{ matrix.i2s-sketch-paths }}
${{ matrix.dieTemp-sketch-paths }}
${{ matrix.heapMem-sketch-paths }}
${{ matrix.sleep1100-sketch-paths }}
${{ matrix.sleep4700-sketch-paths }}
${{ matrix.stackMem-sketch-paths }}
${{ matrix.multiSerial-sketch-paths }}
${{ matrix.dma-sketch-paths }}
${{ matrix.alarmRtc-sketch-paths }}
enable-deltas-report: true
sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }}

- name: Save sketches report as workflow artifact
uses: actions/upload-artifact@v2
with:
if-no-files-found: error
path: ${{ env.SKETCHES_REPORTS_PATH }}
name: ${{ env.SKETCHES_REPORTS_PATH }}
86 changes: 0 additions & 86 deletions .travis.yml

This file was deleted.

15 changes: 15 additions & 0 deletions Contributors.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# XMC-for-Arduino
## Contributing to XMC-for-Arduino Project
First important point **All Contributions** are welcomed.

Please contribute and raise issues via the [github repository](https://github.com/Infineon/XMC-for-Arduino/tree/develop)

Check the **develop** branch for any Beta releases fixes for any issues you may find.

General points on repository branches and flow

1. _master_ branch is intended to be copy of release version
2. Please make Pull Requests to _develop_ branch for review, inclusion and availability for others
3. At next release _develop_ is merged into _master_ for release
4. Other branches are for other tests and not to be treated as anything but work in progress for now
5. Check [XMC-for-Arduino Wiki](https://github.com/Infineon/XMC-for-Arduino/wiki) for any additional information
36 changes: 36 additions & 0 deletions Libraries.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# XMC-for-Arduino
## Creating and Maintaining Third Party Libraries
### Background
The Arduino IDE allows for external libraries to be added to support devices and functions
not in the core setup. For details on creating libraries see the
[Arduino Library Specifications](https://arduino.github.io/arduino-cli/library-specification/)
### XMC-for-Arduino Configuration
In order that a library, that is specific to one architecture or board type is only
compiled when a supporting board is setup, this specification has a setting for the
*architecture* the library will work on. The *library.properties* file *architecture*
setting is shortly going to be changed from a confusing *arm* name to a less confusing
name of *xmc*, to avoid any confusions for those using multiple boards and architectures
for third party libraries compatibility.
### XMC-for-Arduino Architecture Settings to use
Currently third party and other external libraries use the *library.properties*
*architecture* setting to define which board architecture the library is compiled for
The XMC-for-Arduino **current** setting for **up to V1.50** is -
~~~
architecture=arm
~~~

When creating or maintaining third party or external libraries please use *library.properties*
*architecture* setting for versions **V1.5.0 and above** -
~~~
architecture=xmc,arm
~~~
The Arduino IDE on compilation will work out which one to use automatically, avoiding any strange updating issues.
At a later stage to be announced, it will be recommended to change to
~~~
architecture=xmc
~~~
As all newer versions will be using architecture *xmc*.

If your library ALSO supports other boards and architectures, obviously leave those in as well.

Check [XMC-for-Arduino Wiki](https://github.com/Infineon/XMC-for-Arduino/wiki) for any additional information
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ In the boards list **Tools** > **Board**, the XMC microcontroller boards are add
* The XMC1100 Boot Kit has limitations if compared to the official Arduino boards (consult the [XMC-for-Arduino Wiki](https://github.com/Infineon/XMC-for-Arduino/wiki) for more information)
* Refer also to the LICENSE.md/txt file for further information
* Arduino 1.8.0 IDE might have problems with the XMC-for-Arduino releases
* XMC-for-Arduino support for 'arm-linux-gnueabihf' only until version 1.1.

### Using PlatformIO IDE

Expand All @@ -97,6 +98,13 @@ In the boards list **Tools** > **Board**, the XMC microcontroller boards are add
Cloud9, Codeanywhere, Eclipse Che (Codenvy), Atom, CLion, Eclipse, Emacs, NetBeans, Qt Creator, Sublime Text, VIM, Visual Studio, and VSCode
- [Project Examples](https://github.com/Infineon/platformio-infineonxmc/tree/master/examples)

## Contributing and Third Party Libraries
To contribute enhancements, fixes and the like see *Contributors.md*. in root folder

Third Party or external library maintainers see *Libraries.md*. in root folder

Also see [Wiki](https://github.com/Infineon/XMC-for-Arduino/wiki) for any additional information

## Additional Contributors

* [Paul Carpenter](https://github.com/techpaul)
Loading

0 comments on commit 318e421

Please sign in to comment.