Packages, Tools and Resources

Used packages

SoftConsole v2022.2-RISC-V uses several, mostly free and/or open source, packages. Microchip acknowledges and thanks those organization, communities and individual developers who work on these projects and make them available to others for reuse under the relevant license conditions.

Eclipse and additional packages

Version:

JustJ 17 JRE

Note: Previous SoftConsole releases were shipped with a full Java SDK

Home page:

https://www.eclipse.org/justj/

Documentation:

https://www.eclipse.org/justj/?page=documentation

License:

The GNU General Public License (GPL), see:

<SC_INSTALL_DIR>\eclipse\jre\legal\java.base\LICENSE

Notes:

JustJ provides the base Java platform on which Eclipse/CDT and other Eclipse plugins run.

Credit/thanks to Eclipse, JustJ and the OpenJDK open source development community.

Version:

Eclipse 4.22 2021-12 (SimRel) + CDT 10.5

Home page:

https://www.eclipse.org/downloads/packages/release/2021-12/r

https://projects.eclipse.org/projects/tools.cdt/releases/10.5.0

Documentation:

https://help.eclipse.org/2021-12/index.jsp

License:

License Eclipse Public License v2.0

https://www.eclipse.org/legal/epl-2.0/

Notes:

Eclipse/CDT - in conjunction with the GNU MCU Eclipse plugins - provide the main SoftConsole GUI/IDE (Graphical User Interface/Integrated Development Environment). The Windows Eclipse/CDT starter.exe has been modified by Microchip to allow for graceful termination of OpenOCD or other external executables launched from Eclipse. SoftConsole builds from the Eclipse Platform Runtime Binary (PRB) package and only adds those plugins that are absolutely necessary for Microchip target development/debug to avoid unnecessary bloat. Users can still install any additional plugins that they see fit. Credit/thanks to the Eclipse/CDT developer community

Version:

Eclipse Embedded CDT (formerly known GNU MCU Eclipse) v5.2.1

https://github.com/eclipse-embed-cdt/eclipse-plugins/releases/tag/v5.2.1

Home page:

https://projects.eclipse.org/projects/iot.embed-cdt

Documentation:

https://eclipse-embed-cdt.github.io/

License:

Eclipse Public License v2.0

https://projects.eclipse.org/license/epl-2.0

The copyright owner for all the GNU MCU Eclipse plug-ins is Liviu Ionescu and all rights are reserved.

Notes:

Only the following Eclipse Embedded CDT plugins are used:

Embedded C/C++ RISC-V Cross Compiler: provides specific support for RISCV targets by way of custom project properties pages and integration with the back end RISC-V GNU Toolchain.

Embedded C/C++ OpenOCD Debugging: provides specific support for debugging Arm and RISC-V targets using OpenOCD from within the Eclipse environment.

Credit/thanks to Liviu Ionescu and the GNU MCU Eclipse project and development community

Version:

v0.10.0+dev based on the SiFive fork of OpenOCD with additional SoftConsole mods

Home page:

https://openocd.org/

Documentation:

https://openocd.org/pages/documentation.html

License:

License GNU General Public License v2

https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html

Notes:

OpenOCD sits between GDB and the target hardware (JTAG debug probe, target board and CPU) to allow for program download and debug using real hardware. When debugging Eclipse launches GDB and then uses GDB’s GDB/MI (Machine Interface) to communicate with the debugger. Meanwhile GDB communicates with OpenOCD using OpenOCD’s Remote Serial Protocol interface. GDB debug operations are translated into JTAG operations by OpenOCD which communicates with the target hardware/CPU using JTAG via the relevant JTAG debug probe. OpenOCD also has knowledge of specific CPU target debug frameworks (e.g. Arm CoreSight, RISC-V Debug Modules v0.11 and v0.13 – https://github.com/riscv/riscv-debug-spec) so that it can communicate with and debug supported RISC-V CPUs.

SoftConsole’s version of OpenOCD is built using slightly modified versions of the xPack OpenOCD (https://xpack.github.io/openocd/) build scripts.

Credit/thanks to the OpenOCD development community, SiFive and Liviu Ionescu and the xPack and GNU MCU Eclipse projects and development communities.

Complementary tools for building projects

Version:

v2.12-20190422

https://gnu-mcu-eclipse.github.io/windows-build-tools/releases/

Home page:

https://gnu-mcu-eclipse.github.io/windows-build-tools/

Documentation:

https://gnu-mcu-eclipse.github.io/windows-build-tools/

License:

https://gnu-mcu-eclipse.github.io/licenses/tools/

make:

GNU General Public License v3

http://www.gnu.org/copyleft/gpl.html

BusyBox:

GNU General Public License v2

https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html

Notes:

Provides common Unix style utilities such as cp, echo, make etc. for Windows and busybox for Windows and Linux.

Credit/thanks to Liviu Ionescu and the GNU MCU Eclipse project and development community

Version:

v3.8.2

Home page:

https://www.python.org/

Documentation:

https://docs.python.org/3/

License:

License Python Software Foundation License

https://docs.python.org/3/license.html

Notes:

The shipped version is built statically, therefore is limited what libraries it can import and can’t be used with pip.

Also note there might be slight differences between Windows and Linux python therefore the scripts should be tested on both platforms to make sure they work correctly.

Due to atypical constrains and limitations of the bundled Python framework, it is not recommended to be used by any user’s scripts.

Credit/thanks to the Python development community.

Toolchains

Version:

xPack GNU RISC-V Embedded GCC toolchain v8.3.0-1.1 build with additional multilibs

Home Page:

https://xpack.github.io/riscv-none-embed-gcc/

Documentation:

https://xpack.github.io/riscv-none-embed-gcc/

License:

https://github.com/riscv/riscv-gnu-toolchain/blob/master/LICENSE

https://gnu-mcu-eclipse.github.io/licenses/plug-ins/#eclipse-public-license

The copyright owner for all the Embedded CDT (GNU MCU Eclipse) plug-ins is Liviu Ionescu and all rights are reserved.

Notes:

The riscv64-unknown-elf prefixed tools support 32-bit and 64-bit targets and multilibs for all architectures (“native” ABI only) excluding any E architectures. Slightly modified versions of the xPack GNU RISC-V Embedded GCC build scripts (https://xpack.github.io/riscv-none-embed-gcc/) are used to build the SoftConsole GNU RISC-V Embedded GCC Toolchain. Multilibs are provided for the following RISC-V arch (architecture) and ABI tuples:

Supported Architecture / ABI combinations:

This is a full list of supported multilibs. Arch/ABI tuples not listed (such as RV32E) are not supported.

march mabi
rv32i ilp32
rv32ia ilp32
rv32iac ilp32
rv32iaf ilp32f
rv32iafc ilp32f
rv32ic ilp32
rv32if ilp32f
rv32ifc ilp32f
rv32im ilp32
rv32ima ilp32
rv32imac ilp32
rv32imaf ilp32f
rv32imafc ilp32f
rv32imc ilp32
rv32imf ilp32f
rv32imfc ilp32f
rv64i lp64
rv64ia lp64
rv64iac lp64
rv64iaf lp64f
rv64iafc lp64f
rv64iafd lp64d
rv64iafdc lp64d
rv64ic lp64
rv64if lp64f
rv64ifc lp64f
rv64ifd lp64d
rv64ifdc lp64d
rv64im lp64
rv64ima lp64
rv64imac lp64
rv64imaf lp64f
rv64imafc lp64f
rv64imafd lp64d
rv64imafdc lp64d
rv64imc lp64
rv64imf lp64f
rv64imfc lp64f
rv64imfd lp64d
rv64imfdc lp64d

Note

This suite of multilibs supports the “natural” ABI for each architecture. If an RV64G (rv64imafd or more specifically rv64imafdZicsr_Zifencei) architecture is chosen, but not the natural ABI lp64f (natural would be in this case lp64d), then the resulting multilib is not supported. However, choosing the rv64imaf with its natural ABI lp64f will work. Instead of selecting architecture and then ABI a reversed approach might be better. Select an ABI to fulfil application’s requirements and then the select the minimal architecture that can handle that given ABI.

The “default/native” mode of the tools is RV64GC in the absence of any -march/-mabi flags being passed to the tools. Credit/thanks to the RISC-V development community and Liviu Ionescu and the xPack and GNU MCU Eclipse projects and development communities.

This version of SoftConsole doesn’t have support for Arm targets. Feel free to use SoftConsole v2021.2 which has support for both Arm and RISC-V.

Emulation and trace

Version:

v1.13.1

Home page:

https://github.com/renode

https://renode.io/

Documentation:

<SC_INSTALL_DIR>/documentation/renode/

https://renode.readthedocs.io/en/latest/

License:

License MIT License:

https://github.com/renode/renode/blob/master/LICENSE

Notes:

Notes Renode can emulate physical hardware systems - including the CPU, peripherals, sensors, environment, and wireless medium between nodes.

Credit/thanks to Antmicro and the Renode development community.

Warning

UltraSoC and UltraDevelop components are not supported in SoftConsole v2021.3 and later.

Static code analysis

Version:

v1.83

Home page:

http://cppcheck.sourceforge.net/

Documentation:

https://sourceforge.net/p/cppcheck/wiki/Home/

License:

License GNU Public License v3

http://www.gnu.org/copyleft/gpl.html

Notes:

Cppcheck is a static analysis tool for C/C++ code. It detects the types of bugs that the compilers normally fail to detect. The goal is no false positives.

Credit/thanks to Daniel Marjamäki and the cppcheck development community.

Version:

v1.1.1-20180105 – build based from commit 7bae5b2

Home page:

https://github.com/kwin/cppcheclipse

Documentation:

https://github.com/kwin/cppcheclipse/wiki

License:

License Apache 2.0 https://github.com/kwin/cppcheclipse/blob/master/LICENSE

Notes:

Cppcheclipse is an Eclipse plugin which integrates cppcheck with a CDT project.

Cppcheclipse can run/configure cppcheck from the Eclipse UI.

Credit/thanks to the Cppcheck development community.

Deployment

Version:

v21.6.0

Home page:

https://installbuilder.com/

Documentation:

https://clients.bitrock.com/installbuilder/docs/installbuilder-userguide/index.html

License:

Commercial: https://installbuilder.com/purchase.html

VMware/BitRock have kindly provided an open source license:

https://kb.vmware.com/s/article/2961920

And allowing InstallBuilder to be used to create the SoftConsole installers for Windows and Linux.

Notes:

Credit/thanks to VMware (formerly BitRock).