Developing applications using xSOFTip

XMOS provides a library of verified xSOFTip blocks that include interfaces such as USB, Ethernet and serial ports, as well as DSP and protocol functions. The xSOFTip blocks use xCORE resources to implement given function.

To make selection and deployment of xSOFTip as easy as possible, you can use xSOFTip Explorer to browse all available blocks from our xSOFTip library, understand the resource usage and configure the blocks to your specification.

xSOFTip Explorer Perspective
images/xsoftip-perspective.png

The xSOFTip Explorer Perspective

xSOFTip Explorer is available in a separate perspective in xTIMEcomposer Studio:

  1. Select WindowOpen PerspectiveXMOS xSOFTip Explorer to open the xSOFTip Explorer perspective, which has four windows:
  • xSOFTip Browser – lists all the available components in the xSOFTip library. As you add components to the System Configuration window, the System Information window is updated with applicable resource information.
  • System Configuration: shows the xSOFTip components in your application
  • System Information: the resources used by the xSOFTip components you have selected, and the xCORE devices that best suit your application
  • Developer Column: online documentation about the xSOFTip components

Each xSOFTip component has a scope, which shows the status of the xSOFTip component:

xSOFTip Scope
images/xsoftip-scope.png
  • General Use: The xSOFTip consists of a complete release from XMOS.

    Complete resource information is available. All attempts have been made to ensure the correct functionality of this block, but the final quality of any product using this block is the responsibility of the user.

  • Early Development: The xSOFTip is suitable for use in development of products and is fully functional. However, extra care must be taken in verifying a product using this software block. Resource information is available.
  • Experimental: The xSOFTip is at an experimental/prototype stage. Code exists but is not feature complete. Resource information may be available.
  • Roadmap: The xSOFTip is on the XMOS development roadmap. Estimated resource information exists for this xSOFTip, but no code is available.
  • Open Source Community: The xSOFTip has been developed by the Open Source community. Resource information may not be available.

When you select a component in the Browser window, information about it is displayed in the Developer Column including a description of what it does, its features and which xKIT development kits are suitable for use with this xSOFTip.

Additional information about individual configuration options can be displayed in the Developer Column by clicking the arrow to the left of the component after it has been added to the System Configuration window.

Adding xSOFTip to your project

To add an xSOFTip component to a project follow these steps:

  1. Drag the xSOFTip component into the System Configuration view (or double-click the component in the xSOFTip Browser).
    xSOFTip Explorer System Information window
    images/xsoftip-import.png
  2. Select the version of the component you want to import - all released versions are available. The most recent version is displayed by default.
  3. Select the project you want to add the xSOFTip component to.
  4. Click Finish.

System Information

As you add xSOFTip components to the System Configuration view, the System Information window shows the cumulative total of resources required by your selection.

xSOFTip Explorer System Information window
images/xsoftip-systeminfo.png
  • Logical Cores: 32bit microcontroller cores. XMOS multicore microcontrollers include 4, 6, 8, 10, 12 and 16-core devices.
  • Ports: I/O pins of XMOS multicore microcontrollers are connected to ports, which allow your software to send and receive data to the pins with extremely low latency. Ports are available in different widths: a 1-bit port is connected to 1 I/O pin, a 4-bit port is connected to 4 I/O pins.
  • Clock Blocks: Clock blocks are used to precisely control timing of I/O pins.
  • Chanends: Channel Ends are part of the xCONNECT system, allowing the cores to send messages to each other through low latency xCONNECT channels.
  • Timers: Timers are used by the software to control the time at which things happen. Timers run at 100MHz, giving 10ns precision.

Identifying suitable xCORE devices

A list of Possible Devices is displayed at the bottom of the System Information window. This shows which xCORE multicore microcontrollers are suitable for the current xSOFTip selection.

Configuring xSOFTip components

Some components have configurable options that can be changed once they have been added to the System Configuration window.

xSOFTip Explorer Configurable Component
images/xsoftip-configurable.png

As you change the configuration, the resource usage is updated in the System Information window.

Generating a project from your application

You can automatically create a project from the components in the System Configuration window.

  1. Click the Generate Project button (Generate project button) at the top of the System Configuration window.
  2. Enter a name for your project in the Generate Project window.
  3. Select your development board from the Target Hardware list.
  4. Click Finish.

    xTIMEcomposer Studio generates a project with your selected xSOFTip.

    xTIMEcomposer Studio changes to the Edit perspective when it creates a project. xSOFTip is all delivered as C code, so you easily change it to meet your exact requirements and add your own existing C functions.

    You can switch between perspectives at any time using the WindowOpen Perspective menu.