Toolkits
About
This page provides an introduction to the CDP Studio toolkits
What is a Toolkit?
A toolkit is what is needed by CDP Studio to build an application for a target platform. It consists of a collection of tools, libraries and headers for building CDP Studio applications. Each toolkit targets a unique platform, including a hardware architecture, an operating system (OS), and runtime libraries.
Note: After a toolkit has been released, it is only updated with non-breaking bug-fixes and security updates. In some cases, after careful consideration and risk-analysis, new functionality that does not change what is already installed in the toolkit may be added to the toolkit.
Available Toolkits
Different toolkits may be available depending on the Operating System that CDP Studio runs on.
CDP Studio Windows x86 64-bit Edition
From a Windows development environment, CDP 4.10 (and later) applications can be deployed onto the following target operating systems:
- Toolkit 1.3 - Windows x86 64-bit - can be used for Windows 10 or newer x86 64-bit target device
- Toolkit 1.3 - Linux x86 64-bit - can be used for Linux x86 64-bit target device
- Toolkit 1.3 - Raspberry Pi ARMv6 32-bit (Debian 10) - can be used for 32-bit Raspberry Pi ARMv6 or compatible target device
- Toolkit 1.3 - Raspberry Pi ARMv8 32-bit (Debian 11) - can be used for 32-bit Raspberry Pi ARMv8 or compatible target device
- Toolkit 1.3 - WAGO PFC ARMv7 32-bit (Gen.1) - can be used for WAGO PFC (Gen.1) Linux based target
- Toolkit 1.3 - WAGO ARMv7 32-bit - can be used with CDP 4.12 and later for WAGO TP 600, WAGO Edge Controller (752-8303), WAGO CC100, WAGO PFC 100/200 Gen.2 controllers.
- Toolkit 1.3 - INSYS SmartBox ARMv7 32-bit - can be used for INSYS SmartBox Linux based target
- Toolkit 1.3 - PLCnext ARMv7 32-bit - can be used for the PLCnext 2152 controller from Phoenix Contact
- Toolkit 1.3 - ARMv8 64-bit (Debian 11) - can be used for ARMv8 64-bit compatible target devices
CDP Studio Linux x86 64-bit Edition
From a Linux development environment, CDP 4.10 (and later) applications can be deployed onto the following operating systems:
- Toolkit 1.3 - Linux x86 64-bit - can be used for Linux x86 64-bit target device
- Toolkit 1.3 - Raspberry Pi ARMv6 32-bit (Debian 10) - can be used for 32-bit Raspberry Pi ARMv6 or compatible target device
- Toolkit 1.3 - Raspberry Pi ARMv8 32-bit (Debian 11) - can be used for 32-bit Raspberry Pi ARMv8 or compatible target device
- Toolkit 1.3 - WAGO PFC ARMv7 32-bit (Gen.1) - can be used for WAGO PFC (Gen.1) Linux based target
- Toolkit 1.3 - WAGO ARMv7 32-bit - can be used with CDP 4.12 and later for WAGO TP 600, WAGO Edge Controller (752-8303), WAGO CC100, WAGO PFC 100/200 Gen.2 controllers.
- Toolkit 1.3 - INSYS SmartBox ARMv7 32-bit - can be used for INSYS SmartBox Linux based target
- Toolkit 1.3 - PLCnext ARMv7 32-bit - can be used for the PLCnext 2152 controller from Phoenix Contact
- Toolkit 1.3 - ARMv8 64-bit (Debian 11) - can be used for ARMv8 64-bit compatible target devices
Note: Since new toolkits may be added at any time, the above list may not reflect the full selection of toolkits. The full selection of toolkits can be seen in the Maintenance tool as explained in the next section.
Installing a Toolkit
Toolkits can be added and removed by opening the CDP Studio Maintenance tool. The Maintenance tool is a part of the CDP Studio installation, and is located in the CDP Studio installation directory. It can be started from the CDP Studio Help Menu, by clicking on the Package Manager... menu item. In the Maintenance tool, select Add or remove CDP versions and click Next. A list of all the available toolkits for all the versions that CDP Studio supports is presented, where the installed toolkits have a tick mark in front of the toolkit name:
It is possible to add or remove toolkits by ticking or unticking the box in front of the toolkit name. Adding a toolkit will cause the Package Manager to download and install the toolkit into the CDP Studio installation directory (See Toolkit Location below). Removing a toolkit will remove it from the installation directory.
Note: Removing a toolkit will make you unable to build any projects that use that toolkit until either the toolkit is installed again, or an available toolkit is selected in its place.
Building with a Toolkit
CDP Studio applications and libraries are only built for the selected toolkit(s); see the Deploy Configuration and how to Build the Library for more information about this.
Toolkit Location
The toolkits are located within the CDP Studio installation in a directory named, toolkits. In Windows, the default path is something like this:
C:\CDPStudio\toolkits
and in Linux:
/home/username/CDPStudio/toolkits
Toolkit Compatibility
Each toolkit lists which devices it supports. In general, users should always select a toolkit that matches their target. However, some projects might require specific targets that are not identical to any of the toolkits in CDP Studio. By examining the supported devices and the Dependencies for a toolkit, it should be possible to find out if a toolkit can be used for a given device. In Linux, for instance, newer glibc versions might often be compatible with older glibc versions as long as there are no breaking API or ABI changes.
Performance
The performance of CDP Studio applications depends on target hardware and OS. To achieve the best possible performance, the user should select a Linux target and make sure that it has a kernel configured with RT capabilities. The user doesn't have to select a different toolkit due to kernel configuration.
Note: Windows targets do not have RT capabilities and should not be used in time critical applications.
Using Toolkits Outside CDP Studio
Most users will never need to build and debug applications using the command line, but it should be noted that it is possible for advanced users. Please consult the toolkit in question, and look for the section called Using the Toolkit Outside CDP Studio, which specifies how to use that particular toolkit outside of CDP Studio.
Mixing Libraries
When using toolkits outside of CDP Studio, it is easier to make mistakes. One such mistake is to mix libraries from different toolkits or targets. This is likely to cause build or run-time problems that are difficult to figure out. The code will usually compile, but the linker is likely to complain about missing references or ABI differences. Even if you can make it build, the application could potentially fail in unexpected ways while running on the device.
Note: Never mix libraries and headers from different toolkits.
Extending Toolkits
The toolkits can be extended with more libraries and headers. Shared libraries must be handled with care as they will be required on target when running the application. Also, a shared library might require other shared libraries. Hence, copying and linking shared libraries that wasn't built with the toolkit might cause problems if you don't know what you're doing. See also Third Party Library Support for how to import third party libraries into CDP Studio.
Debugging Tools
CDP Studio provides built-in functionality to be able to debug applications and libraries, as detailed in the Debug Mode Manual. Each toolkit provides these debugging tools, and they can also be used outside of CDP Studio. The cross debugging tools are located in the toolkit folder toolchain/bin, while tools that need to run on the actual target device, like gdbserver, are located within the toolkit folder toolchain\%tuplets%\debug-root\usr\bin. The tuplets part of the path may be different for the different toolkits.
Note: Not all tools are available for all toolkits and the locations might be slightly different.
Note: The gdb debugger that is shipped with the toolkits requires python to run properly. You'll find python in the opt directory of your studio installation. Set the PYTHONHOME variable to this location and make sure that the python dll is available before executing gdb. You might want to revert the environment afterwards as the python version might conflict with other python versions on your system.
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.