adding support for new MCU (Infineon PSOC-6) along with new board (PSOC-6 AI Kit)#22178
Draft
fjrdev wants to merge 5 commits intoRIOT-OS:masterfrom
Draft
adding support for new MCU (Infineon PSOC-6) along with new board (PSOC-6 AI Kit)#22178fjrdev wants to merge 5 commits intoRIOT-OS:masterfrom
fjrdev wants to merge 5 commits intoRIOT-OS:masterfrom
Conversation
Contributor
|
I think it would be good if you could split out the BMI270 driver as a separate PR too. Also this still includes the guide, which is already covered by #22173. |
Contributor
|
Sorry, hit the wrong button 👀 Let me know once you want a (preliminary) review. This is still marked as Draft, so it's WIP I guess? |
Author
Will do, thank you! Yes, this is WIP currently, although I’m unsure how much time I’ll have to continue working on this.. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contribution description
This PR adds support for a new board (Infineon PSoC 6 AI Kit) as well as for the MCU (PSOC-62) to RIOT.
The contribution includes:
boards/infineon-cy8ckit-062s2-aicpu/psoc6drivers/bmi270tests/drivers/The PSoC 6 is a dual-core MCU. The device contains a Cortex-M0+ core and a Cortex-M4 core. In the RIOT setup used here, the Cortex-M0+ is used as the boot core and immediately starts the Cortex-M4 application core, which is the core used to run RIOT applications. This is also reflected in the build and flashing flow, where the M0+ boot image and the M4 application image are handled separately. Required features in the Makefile and the main functions therefore are only build for the M4 and separated from the CM0+ by macros.
In addition, the board flashing setup was integrated via OpenOCD using a board-specific configuration file. This target requires the Infineon / ModusToolbox OpenOCD build, because the stock OpenOCD versions commonly shipped by Linux distributions do not provide the PSoC-specific target and flash support needed for this board. To make flashing easier without hardcoding host-local tool paths, the board support adds the
MTB_OPENOCD_BASEoption, which allows users to point RIOT to their local ModusToolbox OpenOCD installation.Testing procedure
The port was tested on the
infineon-cy8ckit-062s2-aiboard for both basic peripheral bring-up and board-specific device integration.The following applications / tests were built successfully for the Cortex-M4 core:
examples/basic/hello-worldto validate UARTexamples/basic/blinkyto validate GPIOtests/drivers/bmi270to validate I2C support together with BMI720 IMU initialization and sensor accesstests/drivers/cyw43439to validate external CYW43439 BLE controller integration via UART H4 transport and NimBLE hostThe tested procedure for dual-core support is:
srec_catFor example:
However, its also possible to only build for the Cortex M0+. This is done by not enabling the Cortex M4 in the
cpu_init()and by expanding the ROM/RAM regions of the Cortex M0+ incpu/psoc6/Makefile.include.Issues/PRs references
This port was creating along with the MCU porting guide of #22173 .
Declaration of AI-Tools / LLMs usage:
AI-Tools / LLMs that were used are: