NetX Studio CDT - NetX 90 Development GS 08 en
NetX Studio CDT - NetX 90 Development GS 08 en
Table of contents
1 Introduction .............................................................................................................................. 4
1.1 About this document ........................................................................................................ 4
1.1.1 Description of the contents ............................................................................... 4
1.1.2 List of revisions ................................................................................................. 5
1.1.3 Conventions in this document........................................................................... 7
1.2 Further relevant documentation ....................................................................................... 8
1.3 Legal notes....................................................................................................................... 9
1.4 Licenses ......................................................................................................................... 12
1.5 Trademarks .................................................................................................................... 14
1.6 About netX Studio CDT.................................................................................................. 15
1.7 Using the NXHX 90-JTAG development board.............................................................. 17
2 First steps............................................................................................................................... 19
2.1 Installing the netX Studio CDT software ........................................................................ 19
2.1.1 Overview ......................................................................................................... 19
2.1.2 Requirements for installing netX Studio CDT ................................................. 19
2.1.3 Step-by-step instructions ................................................................................ 20
2.1.4 Installing development tools in a restricted network ....................................... 26
2.2 Checking JTAG-to-USB connection in Device Manager................................................ 27
2.3 Welcome screen ............................................................................................................ 31
3 Projects and resources ......................................................................................................... 32
3.1 Overview ........................................................................................................................ 32
3.2 Example projects............................................................................................................ 33
3.2.1 Using example projects................................................................................... 33
3.2.2 Example project resources ............................................................................. 37
3.3 Template projects........................................................................................................... 49
3.3.1 Creating template projects .............................................................................. 49
3.3.2 Template project resources ............................................................................ 51
3.4 Build output folder .......................................................................................................... 55
4 How to... .................................................................................................................................. 56
4.1 Add components ............................................................................................................ 56
4.1.1 Creating new component and using it from target code ................................. 56
4.1.2 Using new component from another component ............................................ 65
4.1.3 Checking Component ID................................................................................. 69
4.2 Configure the netX 90 hardware .................................................................................... 70
4.2.1 Overview ......................................................................................................... 70
4.2.2 New Hardware Configuration wizard .............................................................. 73
4.2.3 Hardware configuration editor......................................................................... 76
4.2.4 Build hardware configuration binaries............................................................. 90
4.3 Use Flash Device Label ................................................................................................. 95
4.3.1 Overview ......................................................................................................... 95
4.3.2 Create new Flash Device Label ...................................................................... 96
4.3.3 Edit Flash Device Labels .............................................................................. 100
4.4 Use the Tag List Editor................................................................................................. 109
4.5 Use the Flasher tool ..................................................................................................... 113
4.5.1 Overview ....................................................................................................... 113
4.5.2 Writing files to the flash memory of the netX device ..................................... 114
4.5.3 Reading from flash memory of the netX device ............................................ 120
4.5.4 Erasing flash memory of the netX device ..................................................... 123
4.6 Adjust debug settings................................................................................................... 126
4.7 Set debug startup target............................................................................................... 132
4.8 Use the Peripheral Register View ................................................................................ 133
5 Good to know... .................................................................................................................... 137
5.1 “Auto Flasher” function for debugging in internal flash of APP CPU............................ 137
5.2 Multiple instances support............................................................................................ 138
5.3 Build Targets View ....................................................................................................... 139
5.4 Debug Cores View ....................................................................................................... 142
5.5 PyDev plug-in............................................................................................................... 145
5.6 Hilscher code style formatter........................................................................................ 148
5.7 Create documentation with Doxygen (Eclox plug-in) ................................................... 149
5.7.1 Overview ....................................................................................................... 149
5.7.2 Installing Doxygen......................................................................................... 149
5.7.3 Configuring Doxygen (Doxyfile) .................................................................... 150
5.7.4 Build documentation ..................................................................................... 156
5.8 Work with Subversion SVN (Subversive plug-in) ......................................................... 159
5.8.1 Overview ....................................................................................................... 159
5.8.2 Installing SVN Connector.............................................................................. 159
5.8.3 Adding/creating SVN Repositories................................................................ 163
5.8.4 Adding/checking out projects ........................................................................ 167
5.9 Using external debugger .............................................................................................. 172
5.10 Using NXHX-SDRSPM module for additional SDRAM (optional) ................................ 176
6 Tutorials................................................................................................................................ 177
6.1 How to use the netX 90 example project ..................................................................... 177
6.1.1 Overview ....................................................................................................... 177
6.1.2 Prerequisites ................................................................................................. 177
6.1.3 Step-by-step instructions .............................................................................. 178
6.2 How to change from Firmware Use Case A to Use Case C ........................................ 196
6.2.1 Overview ....................................................................................................... 196
6.2.2 Prerequisites ................................................................................................. 196
6.2.3 Step-by-step instructions .............................................................................. 197
List of figures ....................................................................................................................... 213
List of tables......................................................................................................................... 219
Contacts................................................................................................................................ 220
1 Introduction
Users of the “traditional” netX controllers (netX 10, netX 51, netX 52
and netX 100/500), please refer to the Getting Started document
netX Studio CDT – netX 10/51/52/100/500 development,
DOC150303GSxxEN.
Notes
Important:
<important note you must follow to avoid malfunction>
Note:
<general note>
Instructions
1. Operational step
Ø Instruction
Ø Instruction
2. Operational step
Ø Instruction
Ø Instruction
Results
Intermediate result
Final result
Important notes
Utmost care was/is given in the preparation of the documentation at hand
consisting of a user's manual, operating manual and any other document
type and accompanying texts. However, errors cannot be ruled out.
Therefore, we cannot assume any guarantee or legal responsibility for
erroneous information or liability of any kind. You are hereby made aware
that descriptions found in the user's manual, the accompanying texts and
the documentation neither represent a guarantee nor any indication on
proper use as stipulated in the agreement or a promised attribute. It cannot
be ruled out that the user's manual, the accompanying texts and the
documentation do not completely match the described attributes, standards
or any other data for the delivered product. A warranty or guarantee with
respect to the correctness or accuracy of the information is not assumed.
We reserve the right to modify our products and the specifications for such
as well as the corresponding documentation in the form of a user's manual,
operating manual and/or any other document types and accompanying
texts at any time and without notice without being required to notify of said
modification. Changes shall be taken into account in future manuals and do
not represent an obligation of any kind, in particular there shall be no right
to have delivered documents revised. The manual delivered with the
product shall apply.
Under no circumstances shall Hilscher Gesellschaft für Systemautomation
mbH be liable for direct, indirect, ancillary or subsequent damage, or for
any loss of income, which may arise after use of the information contained
herein.
NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE
PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR
CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
responsible for determining the appropriateness of using and distributing
the Program and assumes all risks associated with its exercise of rights
under this Agreement, including but not limited to the risks and costs of
program errors, compliance with applicable laws, damage to or loss of data,
programs or equipment, and unavailability or interruption of operations.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied.
DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER
RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION
LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Source code
You can get the source code of the software from Hilscher. This is an offer,
valid for at least three years and valid for as long as you offer spare parts or
customer support for that product model, to give anyone who possesses
the object code either
(1) a copy of the Corresponding Source for all the software in the product
that is covered by this License, on a durable physical medium customarily
used for software interchange, for a price no more than your reasonable
cost of physically performing this conveying of source, or
(2) access to copy the Corresponding Source from a network server at no
charge.
For this - please contact Hilscher:
Hilscher Gesellschaft für Systemautomation
Rheinstraße 15
65795 Hattersheim am Main
Tel.: 06190 99070
E-Mail: [email protected]
Export provisions
The delivered product (including technical data) is subject to the legal
export and/or import laws as well as any associated regulations of various
countries, especially such laws applicable in Germany and in the United
States. The products / hardware / software must not be exported into such
countries for which export is prohibited under US American export control
laws and its supplementary provisions. You hereby agree to strictly follow
the regulations and to yourself be responsible for observing them. You are
hereby made aware that you may be required to obtain governmental
approval to export, reexport or import the product.
1.4 Licenses
Please note also the license in the document
License_netX_Studio.rtf, which can be found in the installation
folder: C:\Program Files (x86)\Hilscher GmbH\netX
Studio CDT\docs.
ANSI Console
Copyright (c) 2012-2014 Mihai Nita
https://marketplace.eclipse.org/content/ansi-escape-console
License: Apache 2.0 (see below)
http://www.apache.org/licenses/LICENSE-2.0.txt
Apache Commons
Copyright (c) 2016 The Apache Software Foundation
Permission/license:
http://apache.org/licenses/LICENSE-2.0.txt
Doxygen
http://www.stack.nl/~dimitri/doxygen/index.html
Permission/license:
https://github.com/doxygen/doxygen/blob/master/LICENSE
Eclipse CDT
http://projects.eclipse.org/projects/tools.cdt
Permission/license:
https://www.eclipse.org/org/documents/epl-v10.html
https://sourceforge.net/projects/ehep/
Permission/license:
https://www.eclipse.org/org/documents/epl-v10.html
Eclipse Platform
Permission/license:
https://www.eclipse.org/org/documents/epl-v10.html
https://eclipse.org/legal/eplfaq.php
Eclox
http://home.gna.org/eclox/
Permission/license:
https://www.eclipse.org/org/documents/epl-v10.html
EmbSysRegView
http://embsysregview.sourceforge.net/
Permission/license: EPL (from EmbSysRegView v0.2.5 on)
https://www.eclipse.org/org/documents/epl-v10.html
Graphviz
http://www.graphviz.org/
Permission/license:
http://www.graphviz.org/License.php
Jython
http://www.jython.org/downloads.html
Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Jython
Developers - All rights reserved.
Permission/license:
http://www.jython.org/license.html
MinGW
http://www.mingw.org/
Permission/license:
http://www.mingw.org/license
PyDev
http://www.pydev.org/
Permission/license:
http://www.eclipse.org/legal/epl-v10.html
Python
https://www.python.org/downloads/release/python-2711/
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software
Foundation; All Rights Reserved
Permission/license:
https://www.python.org/download/releases/2.7/license/
Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
The Netherlands. All rights reserved.
Subversive
https://eclipse.org/subversive/documentation/install_migrate.php
Permission/license:
http://www.eclipse.org/legal/epl-v10.html
Waf
https://waf.io/
Permission/license:
https://github.com/waf-project/waf/tree/waf-1.6.11
Copyright (c) Thomas Nagy, 2005-2016
1.5 Trademarks
Eclipse™ is a trademark of the Eclipse Foundation Inc.
Graphviz® is a registered trademark of AT&T Intellectual Property II, L.P.
MinGW® is a registered trademark of Software in the Public Interest, Inc.
PyDev® is a registered trademark of Appcelerator Inc.
Python® is a registered trademark of the Python Software Foundation.
Sourcery G++™ is a trademark of CodeSourcery Inc.
Subversion™ is a trademark of the Apache Software Foundation.
Subversive™ is a trademark of Polarion Software AG.
Windows® 7, Windows® 8 and Windows® 10 are registered trademarks of
the Microsoft Corporation.
All other mentioned trademarks are property of their respective legal
owners.
Note:
Due to licensing and distributional limitations, some of the third
party software used by netX Studio CDT – such as the GNU
toolchains and OpenOCD – are not included in the netX Studio
CDT MSI installation package. However, these software
components can be installed automatically at any time by using the
Install Development Tools wizard after having finished the initial
netX Studio installation. When you start netX Studio CDT for the
first time, this installation wizard will automatically open, asking you
to download the required tools. The wizard can also be invoked any
time later by choosing Help > Install > netX Development Tools…
from the main menu of netX Studio.
Limitations
netX Studio CDT features a Hardware configuration editor for easy setup
of the pin-sharing and multiplexing options of the netX 90 SoC. Please note
the following limitations:
· Pin assignment for the network interface is fixed to internal Ethernet
PHYs (supported by the COM firmware)
· Pin assignment for the 3rd standard Ethernet MAC is not yet supported
(will be in future versions)
· Pin assignment tool does not support dual SPM (SPM1 is not supported
by the COM firmware)
· Pin assignment tool does not support the configuration of unused HIF
pins as PIO (can be configured in software instead)
Important:
The current Hardware Configuration Editor is not yet backwards
compatible. If you have been using a previous version of netX
Studio CDT and are now using the current version, you will not be
able to edit any previous XML hardware configuration file and
create a new output file based on your “old” configuration.
However, you can open your old XML hardware configuration file in
“read-only” mode in the editor and use it as a reference for creating
and editing a new hardware configuration.
Note:
The limitations of the Real-Time Ethernet firmware stacks used by
the example projects are stated in the README.txt files included in
the example project folders.
Part number:
7833.000
Documentation:
Device description NXHX 90-JTAG – Development board,
DOC170202HWxxEN
Note:
netX Studio CDT supports debugging with Olimex
ARM-USB-TINY H, Amontec JTAGkey and Hilscher NXJTAG-
USB. If you intend to use one of these “external” debug devices at
the JTAG interface of the NXHX 90-JTAG instead of the JTAG-to-
USB on-board debugger, please see section Using external
debugger [} page 172] for further information.
2 First steps
2.1.1 Overview
This section describes how to install the netX Studio CDT software on your
development PC.
Ø Accept the default path or click the Change button to choose a different
target directory for your netX Studio installation, then click Next button.
Ê The Ready to install netX Studio CDT window opens:
Figure 8: netX Studio CDT start screen with Install Development Tools wizard dialog window
Note:
In case netX Studio detects that the required tools are already
installed on your PC (e.g. because of a previous netX Studio
installation), the wizard won’t appear.
If you want to skip the installation at this point by clicking the
Cancel button, you can invoke the wizard any time later by
choosing Help > Install > netX Development Tools… from the
main menu of netX Studio CDT.
Ø Read all license agreements carefully, then select the radio button next
to I accept the terms of the License Agreement and click Install
button.
Ê netX Studio automatically connects to the internet and starts
downloading and installing the development tools.
Note:
If you receive a Download failed (Connection refused) message,
see section Installing development tools in a restricted
network [} page 26] for troubleshooting.
Ø Select the check box(es) in front of the desired tool(s), then click Next.
Ê The Review Licenses window opens.
Ø Read the license text(s). If you accept the license terms, select I accept
the terms of the license agreements.
Ø Click Install button.
Ê The tools are being downloaded and installed.
Ø After the installation is finished, acknowledge the Installation
Complete message by clicking OK.
ð You have completed the installation of optional development tools on
your development PC.
Note:
netX Studio CDT supports debugging with Olimex ARM-USB-TINY
H and Amontec JTAGkey. If you intend to use one of these “third
party” debug devices instead of the NXHX-90 On-Board Debugger
or the Hilscher NXJTAG-USB adapter (for which the necessary
drivers are already included in the netX Studio CDT installation),
you need to install the required drivers separately, because they are
not included in the netX Studio CDT installation. See section Using
external debugger [} page 172] for instructions.
Prerequisites
· You have installed netX Studio CDT on your development PC (the
drivers for the NXHX 90-JTAG board are included in the netX Studio
CDT installation package).
· The NXHX 90-JTAG board is powered.
· The USB interface of the NXHX board is connected to your
development PC via USB cable.
Ø Under Universal Serial Bus devices, look for the NXHX 90-JTAG
USB-JTAG entry. If the entry is there, the JTAG-to-USB connection
(needed for debugging and for flashing) is ready to use.
Note:
The NXHX 90-JTAG USB Serial Port (COM[xx]) entry under
Ports (COM & LPT) indicates a UART-to-USB connection. Please
note that flashing via UART is currently not supported.
Ø Under Universal Serial Bus devices, look for the NXHX 90-JTAG
USB-JTAG entry. If the entry is there, the JTAG-to-USB connection is
ready to use.
Note:
The NXHX 90-JTAG USB Serial Port (COM[xx]) entry under
Ports (COM & LPT) indicates a UART-to-USB connection. Please
note that flashing via UART is currently not supported.
You can leave the Welcome screen and directly open the Development
perspective (i.e. the Development GUI) of netX Studio by clicking the
Workbench icon in the upper right corner of the Welcome screen.
3.1 Overview
netX Studio CDT provides all necessary resources for developing ELFs for
the netX 90 SoC.
You can either use one of the ready-to-use example projects that you can
download from Hilscher (see section Example projects [} page 33]), or
you can create a new project based on a template by using the New netX
CDT Project wizard (see section Template projects [} page 49]).
Note that a “template project” created by the New netX CDT Project
wizard currently provides only the absolute minimum resources required for
application development on a netX 90, i.e. for developing and debugging
the most basic routines or low-level drivers for the APP CPU.
We therefore recommend you to use the example projects, which
demonstrate full netX 90 “stand-alone-chip” applications with Real-Time
Ethernet communication. All example projects feature the Hilscher cifX API
and include all necessary code resources for building, debugging and
testing the applications with the NXHX 90-JTAG development board.
Descriptions of the projects and their functional limitations are provided in
the README.txt files included in each project folder.
All netX Studio CDT projects (template and example projects) are
based on the Hilscher Waf Build System, which defines standard
project structures and build scripts. For more information, please
refer to the operating instruction manual Hilscher Waf Build System
– Building libraries, applications and netX firmware,
DOC170404OIxxEN, which can be downloaded from:
https://kb.hilscher.com/x/TdtOBQ.
Note:
The example projects are not included in the netX Studio CDT
installation package and need to be downloaded separately from
Hilscher as described below.
Note:
The *.nxi communication firmware files included in the netX Studio
CDT example projects are limited test versions only. In future, when
you are using fully functional and “officially released”
communication firmware versions from Hilscher, we recommend
you to keep the framework of the example project and just replace
the *.nxi firmware files within the LFW folder.
Note:
This is the standard default storage location for netX Studio CDT
projects, and thus recommended, but not mandatory. You can store
the project folder somewhere else if you want to.
Ê The netX Studio CDT Workbench opens and the example project is
displayed in the Project Explorer:
Note:
When you open an example project for the first time, the SVN
Support prompt appears, asking you to install an SVN connector
for the Subversion (SVN) software versioning and revision control
system. If you do not want to work with SVN, click No.
The installation prompt then will not be shown again when you open
a project. If you want to install SVN connectors any time later, you
can invoke the Install Connectors dialog window again by
choosing Help > Install > SVN Connectors… from the main menu
of netX Studio CDT.
Components
The Components directory stores the basic resources of the project and a
Waf script (wscript file).
cifXApplicationDemo
This is the “generic” component of the application. These resources are
protocol- and hardware-independent.
cifXApplicationDemoPNS
This is the PROFINET IO Device related component of the application.
These resources are protocol-specific, but hardware-independent.
cifXApplicationDemoPNSDefinitions
C Header files containing definitions and structures of the PROFINET IO
Device API for developing the application program. These resources are
protocol-specific.
cifXToolkit
This component provides the standard Hilscher cifX API to the application.
These resources are protocol- and hardware-independent.
CMSIS
The Cortex Microcontroller Software Interface Standard (CMSIS) specifies
a specific component that describes the device and provides a generic
layer to interact with all Cortex M family controllers. Hilscher as a vendor
provides this device abstraction layer suited for all its Cortex M devices.
Note:
Hilscher created the CMSIS-CORE for the netX 90 to develop low-
level drivers for application peripherals as open source software.
The Cortex Microcontroller Software Interface Standard (CMSIS)
defined by ARM enables developers to re-use embedded software
components or to combine it with third party software components.
The low-level drivers provided by Hilscher can be simply combined
with any CMSIS compliant third Party RTOS kernel to create a
Board Support Package (BSP).
HostAbstractionLayer
Implementation of the host abstraction layer functions for the NXHX 90-
JTAG.
libc_support
The toolchain uses the Red Hat newlib c as c standard library. The newlib’s
lowest layer consists of some of subroutine calls (Syscalls) to the
(operating) system, which are implemented rudimentarily in this
component.
netx_drv
Driver library for the application side. Contains API functions enabling the
application to use the peripheral interfaces of the netX.
Doc
The docApplication folder in the Doc directory contains diagrams of
the IO data model and of the functional dependencies of the application
resources.
The Doc directory also stores the HTML output of the documentation
created by Doxygen. The HTML documentation (containing detailed
information about the example project) will be automatically created after
selecting the Doxyfile and choosing the Build Documentation
command from the context menu.
FDL
This folder contains Flash Device Labels (FDL) for the three firmware use
cases (A, B and C) of the netX 90. Each Firmware Use Case involves a
different flash memory layout (which is defined in the “Flash Layout Table”
of the FDL).
FDL_NXHX90-JTAG_7833000r3_20000_ProductionTemplate_
UseCaseA.fdl
FDL for Firmware Use Case A: COM side does not require external
SDRAM or SQI Flash. This file must be used in combination with the
X090D000.nxi COM firmware file.
FDL_NXHX90-JTAG_7833000r3_20000_ProductionTemplate_
UseCaseB.fdl
FDL for Firmware Use Case B: COM firmware does not require external
SDRAM or SQI Flash. However, communication firmware update area is
located in SQI flash. This file may be used only in combination with the
X090D000.nxi COM firmware file.
FDL_NXHX90-JTAG_7833000r3_20000_ProductionTemplate_
UseCaseC.fdl
FDL for Firmware Use Case C: COM side uses SQI Flash with HCC file
system and external SDRAM (shared with APP side). This file must be
used only in combination with the X090D001.nxi COM firmware file and
with a suitable hardware configuration.
Important:
Each NXHX 90-JTAG development board is shipped with an FDL
already installed in its flash memory. This pre-installed FDL
contains pre-defined MAC addresses, device-specific identification
data (e.g. serial number, device class, production date) and a Flash
Layout definition for Firmware Use Case A.
Do not overwrite the pre-installed FDL by flashing a new FDL,
unless you want to change from Firmware Use Case A to
Firmware Use Case C (i.e. in case you want to use external
SDRAM, thus requiring the FDL for Use Case C).
If you are going to flash a new FDL to the device, we strongly
advise you to first save the “old” FDL to your PC by using the Read
function of the Flasher tool (see subsection Save the pre-installed
Flash Device Label from NXHX 90-JTAG board to PC of the Step-
by-step instructions [} page 197] in the Tutorial: How to change
from Firmware Use Case A to Use Case C). Thus, you do not risk
losing the MAC addresses and the device-specific identification
data.
For more information on FDLs, see also section Use Flash Device
Label [} page 95].
HWC
This folder contains hardware configuration files for various hardware
setups. Brief descriptions of the individual setups can be found in the
readme.txt file in the folder.
These XML files are the editable “source” files of different hardware
configurations, which you can adapt according to your needs. If you want to
use one of these configurations on your netX device, you must first turn the
*.xml configuration source file into a *.hwc binary file (by using the Build
Hardware Configuration command), and then flash (download) it to your
netX device.
Note:
The revision0 folder contains configuration files that are compatible
with revision 0 of the netX 90 SoC (i.e. the “pre-mass production”
version of the chip), which was used on Revision 3 of the NXHX
90-JTAG development board. Thus, if you are using NXHX 90-
JTAG Rev. 3, you must use these configuration files in this
revision0 folder.
If you are using NXHX 90-JTAG Revision 4, you must use the
configuration files in the HWC root directory.
LFW
This folder contains “loadable” communication firmware (LFW) for the COM
CPU. The firmware binaries feature a Real-Time Ethernet protocol stack for
evaluation purposes (in case of the netX90_PNSV5_simpleConfig project,
it is the PROFINET IO Device protocol stack).
X090D000.nxi
“Small footprint” COM firmware, which does not require external SDRAM or
SQI Flash. This is the binary of Firmware Use Case A and is thus
compatible with the pre-installed Flash Device Label on the NXHX 90-JTAG
board.
X090D001.nxi
COM firmware using external SDRAM and SQI Flash with HCC file system.
This is the binary of Firmware Use Case C; i.e. if you want to use this
firmware, you will also have to flash (download) a Flash Device Label for
Use Case C and an appropriate hardware configuration file (containing
SDRAM settings) to the NXHX 90-JTAG board.
Note:
The *.nxi communication firmware files included in the netX Studio
CDT example projects are limited test versions only. In future, when
you are using fully functional and “officially released”
communication firmware versions from Hilscher, we recommend
you to keep the framework of the example project and just replace
the *.nxi firmware files within the LFW folder.
MFW
This folder contains “maintenance firmware” for the communication side
(COM CPU). The maintenance firmware is an optional feature for managing
communication firmware updates on netX devices during runtime “in the
field”.
MFW_netX90_filesystem.mxf
Maintenance firmware for Firmware Use Case C. Requires a Flash Device
Label for Use Case C and an *.mwc hardware configuration file (containing
SDRAM settings) on the NXHX 90-JTAG board.
MFW_netX90_flash.mxf
Maintenance firmware for Firmware Use Case A. It is compatible with the
pre-installed Flash Device Label on the NXHX 90-JTAG board, but it
requires an *.mwc hardware configuration file on the NXHX 90-JTAG
board.
Note:
Because the ROM Loader cannot use the “standard” *.hwc
hardware configuration file while executing the maintenance
firmware, the additional *.mwc configuration file is required to
provide necessary hardware information like boot mode and flash
parameters for the maintenance firmware. For more information,
see section Configure the netX 90 hardware [} page 70].
Targets
The Targets directory contains the target-specific resources for the NXHX
90-JTAG, e.g. the linker files (in the Linker folder), source code files (in
the Sources folder), header files (in the Include folder) and a Waf script
(wscript file).
Documentation.html
Contains a depiction of the register definitions.
wscript
This Waf build script in the root directory controls the build process of the
whole project.
Ø In the Solution name field, enter a name for your netX project.
Ø The Location field shows the default storage location for netX Studio
projects. Keep the default storage location (recommended), or click
Browse... button to select a different storage location.
Ø Click Finish button
ð The wizard closes and the Project Explorer in the netX Studio
workbench displays the project resources in a tree structure:
Note:
When you open or create a project for the first time, the SVN
Support prompt appears, asking you to install an SVN connector
for the Subversion (SVN) software versioning and revision control
system. If you do not want to work with SVN, click No. The
installation prompt then won’t be shown again when you open a
new project. If you want to install SVN connectors any time later,
you can invoke the Install Connectors dialog window again by
choosing Help > Install > SVN Connectors… from the main menu
of netX Studio CDT.
Components
The Components directory stores the basic resources of the project and a
Waf script (wscript file). Components can be understood as “target-
independent” elements or resources of a project.
CMSIS
The Cortex Microcontroller Software Interface Standard (CMSIS) specifies
a specific component that describes the device and provides a generic
layer to interact with all Cortex M family controllers. Hilscher as a vendor
provides this device abstraction layer suited for all its Cortex M devices.
Note:
Hilscher created the CMSIS-CORE for the netX 90 to develop low-
level drivers for application peripherals as open source software.
The Cortex Microcontroller Software Interface Standard (CMSIS)
defined by ARM enables developers to re-use embedded software
components or to combine it with third party software components.
The low-level drivers provided by Hilscher can be simply combined
with any CMSIS compliant third Party RTOS kernel to create a
Board Support Package (BSP).
netx_drv
This component contains the Hilscher microcontrollers and peripherals
hardware driver layer (often called device hal). It requires the CMSIS
component.
For further information, please refer to the README.txt file in this folder.
Doc
This folder stores the HTML output of the documentation created by
Doxygen. The folder and the HTML documentation (containing detailed
information about the project) will be automatically created after selecting
the Doxyfile and choosing the Build Documentation command from the
context menu. For more information, see section Build
documentation [} page 156].
Targets
The Targets directory contains the target-specific resources for the NXHX
90-JTAG, e.g. the linker files (in the Linker folder), source code files (in
the Sources folder), header files (in the Include folder) and a Waf script
(wscript file).
Doxyfile
This is the configuration file for the Doxygen documentation of the project.
Selecting this file and choosing the Build Documentation command from
the context menu will automatically create an html documentation
containing detailed information about the project. The html documentation
will be stored in a newly created html folder in the Doc directory. For more
information, see section Create documentation with Doxygen (Eclox plug-
in) [} page 149].
netx90_app_iflash_dummy.nai
This “dummy” file enables debugging of application code in RAM. If your
application is to be executed in INTRAM or SDRAM, you must first flash
(download) this dummy to the internal flash of the APP CPU (INTFLASH2).
netx90_com_iflash_dummy.nxi
This “dummy” file causes the activation of the APP CPU during booting.
You must first flash (download) this dummy to internal flash of the COM
CPU (INTFLASH0) before you can debug any application code (regardless
of whether the code is to be executed in INTFLASH, INTRAM or SDRAM).
Note:
The integrated Flasher tool will automatically flash these files to the
right location (offset) in the flash devices of the netX.
README_DISCLAIMER.txt
This text file contains the disclaimer for the example project software.
README.txt
This text file contains a brief description of the example project software
and its limitations.
wscript
This Waf build script in the root directory controls the build process of the
whole project.
4 How to...
Ø In the Component name field, enter the name of the component, e.g.
MyComponent.
Ø Click Advanced button and copy the Component ID to your clipboard
or write it down (the Component ID is the component's identifier
referencing the component in the build):
Ê The New Component wizard closes and the new component “skeleton”
is added to the Components folder:
Ø Save the changes to the wscript file by choosing File > Save from the
menu or by pressing Ctrl + S on your keyboard.
3. Define and implement a simple function in the new component.
Ø Open the Includes folder of your new component (in this example the
Components > MyComponent > Includes folder) and double-click the
header file (in this example the MyComponent.h file).
Ê The header file is opened in the editor.
Ø Save the changes to the header file by choosing File > Save from the
menu or by pressing Ctrl + S on your keyboard.
Ø Open the Sources folder of the new component and double-click the
source code file (in this example the MyComponent.c file).
Ê The source code file is opened in the editor.
Ø In the wscript file, scroll down to the uses list section and add the
Component ID (which you have copied or written down from the New
Component wizard):
Ø In the wscript file, scroll down to the uses list section and add the
Component ID of the new component.
If the build task section lacks the name parameter, the component ID is
identical with the target parameter:
4.2.1 Overview
Hardware configuration files
The netX 90 SoC needs a hardware configuration that contains information
about the hardware setup of the netX 90, like e.g. DPM settings, pin
assignments of PHYs and UARTs, usage of SQI flash and SDRAM (if
applicable), firewall settings etc.
A hardware configuration in netX Studio CDT consists of a set of three files:
*.hwc
Binary hardware configuration file. The *.hwc file extension is mandatory,
whereas the name before the file extension can be freely chosen. This
binary is always required on the netX and must be stored at offset 0x00 of
the internal flash of the netX 90.
You must download/flash this binary to the netX before debugging in order
to set up your hardware and to ensure that your software runs properly.
The *.hwc binary is generated from its *.xml hardware configuration
source file.
*.mwc
This is the maintenance hardware configuration binary file. It is used by the
maintenance firmware (recognizable by its *.mxf extension), which
handles firmware updates on the netX. Like the *.hwc binary, the *.mwc is
also generated from the *.xml hardware configuration source file (see
below), and thus contains the same configuration data.
Note that the *.mwc binary is needed on the netX 90 only if you are using
a maintenance firmware. If you are not using a maintenance firmware, you
do not need to download/flash this *.mwc file to your netX device.
*.xml
This is the editable XML source file of the *.hwc and the *.mwc binaries. It
can be recognized by the icon. The XML source file can be edited in the
Hardware configuration editor, which opens automatically on double-
clicking the XML file (see section Hardware configuration
editor [} page 76] for details about the editor). After having configured
your hardware in the XML source file, you must use the Build Hardware
Configuration command to produce the *.hwc and *.mwc binary files (see
section Build hardware configuration binaries [} page 90]), which can then
be flashed to the netX 90.
You can create as many new XML source files as you like by using the
New Hardware Configuration wizard (see section New Hardware
Configuration wizard [} page 73]).
Note:
Users of revision 3 of the NXHX 90-JTAG development board
must use a hardware configuration file that is compatible with chip
type “netX 90 Rev. 0”.
You can select chip type “netX 90 Rev. 0” compatibility when you
create a new HW config XML source file in the New Hardware
Configuration wizard.
Hardware configuration files that are compatible with chip type
“netX 90 Rev. 0” can also be found in the HWC > revision0 folder
of the example projects.
Important:
Remember to rebuild and download/flash the corresponding *.hwc
and *.mwc binary files again each time after editing the xml source
file, in order to apply your new hardware configuration settings to
your target.
Note:
Each example project provided by Hilscher contains different sets
of ready-to-use hardware configuration files that are pre-configured
for different hardware use cases. These files are stored in the HWC
folder (see section Example project resources [} page 37]).
Note also that hardware configuration files are not included in a
template project created by the New netX CDT Project wizard.
Thus, if you are working with the resources of a project template
instead of using one of the example projects, you will have to use
the New Hardware Configuration wizard to create a new hardware
configuration XML source file.
Note:
You do not need to make these settings yourself if you are using
one of the predefined hardware configuration files provided in the
example projects, or if you use one of the templates provided in the
New Hardware Configuration wizard.
· netX 90 – Select this chip type if you are using Revision 4 (or higher) of
the NXHX 90-JTAG board
Note:
The netX 90 Rev. 0 chip type was issued in the year 2018, and can
thus be recognized by its date code. The date code printed on the
chip is in format YYWW; therefore e.g. 1830 indicates year 2018,
week 30.
Ø Click Next.
Ø In the Enter or select the parent folder fields, you can select a storage
location for the xml file that will be created.
Note:
The path is preset to the folder that was selected in the Project
Explorer at the time you opened the wizard.
Ø If you want to define your hardware configuration “from scratch” (i.e. you
do not want to use one of the predefined hardware configuration
templates), click Finish to close the wizard.
Note:
With this editor, the configuration of the I/O pins of the application
peripherals is currently limited. As an alternative and for more
flexibility you can also use the low-level drivers provided by Hilscher
for configuring the application peripherals. The low-level drivers can
be downloaded from https://kb.hilscher.com/x/7x-tBQ
We recommend using the hardware configuration editor to configure
SDRAM, DPM and SPM options.
Current limitations
Please note the following limitations of the Hardware configuration editor:
· Pin assignment for the network interface is fixed to internal Ethernet
PHYs (supported by the COM firmware)
· Pin assignment for the 3rd standard Ethernet MAC is not yet supported
(will be in future versions)
· Pin assignment tool does not support dual SPM (SPM1 is not supported
by the COM firmware)
· Pin assignment tool does not support the configuration of unused HIF
pins as PIO (can be configured in software instead)
Note:
The current Hardware Configuration Editor is not yet backwards
compatible. If you have been using a previous version of netX
Studio CDT and are now using the current version, you will not be
able to edit any previous XML hardware configuration file and
create a new output file based on your “old” configuration.
However, you can open your old XML hardware configuration file in
“read-only” mode in the editor and use it as a reference for creating
and editing a new hardware configuration.
Note:
The editor also automatically opens after having created a new
hardware configuration file with the New Hardware Configuration
wizard.
Grid
Each cell in the grid represents a netX 90 pin.
Note:
You can hover a cell to open a tooltip indicating the name of the pin
and the hardware options that you can assign to it.
(Light gray): “Free” pin that has not yet been assigned to a hardware option
Note:
Selections in the grid and in the hardware options tree are linked,
which means that if you select an option in the tree, all relevant pins
in the grid will be selected/highlighted as well and vice versa (i.e. if
you select a pin the grid, the corresponding option becomes
selected in the tree).
Options that are currently disabled due to a conflict with already assigned
options (or due to some other limitation, e.g. because they are not yet
supported by the target hardware) are marked with a “cross-out” icon:
Note:
You can filter the tree for already assigned options by clicking the
icon on top of the tree. To remove the filter, click the icon
again. You can also use the and icons to expand and
collapse folders.
Note:
If the assigned option has additional configurable properties, a
“Hardware option properties“ dialog window opens immediately
after having dropped the option onto the grid. This properties dialog
window can also be opened any time later (see section Hardware
option properties dialog below).
Note:
Holding the Ctrl key on your keyboard while selecting pins from the
grid allows you to select more than one option for removal at once.
Important:
Changing the properties of the hardware options is for expert users
only! We highly recommend you to keep the preset hardware
properties!
Ê The properties dialog shows the signal assignment and the default pad
properties for each pin.
Ø You can change the pad properties for each pin – i.e. Drive Strength
and Internal Resistor – by clicking in the corresponding field, which
opens a drop-down list.
Ø To configure the MMIO pin, right-click on the pin, then select a signal
from the MMIO Selection context menu, e.g. the gpio0 signal:
Ø To remove a configured signal from the MMIO pin, right-click on the pin,
then select MMIO Selection > Clear from the context menu:
Important:
If you want to use the netX 90 as a stand alone chip solution, you
have to set the Enable application CPU option and the Enable
internal DPM option to true.
If you want to use the netX 90 as a companion chip, you have to
set these options to false.
Parameter Description
Version of the HWC info structure Current HW config structure used by the hardware configuration editor. For your
information only, cannot be edited by the user.
Version of the hardware Enter here your own version identifier for your configuration settings if necessary.
configuration
Description of the hardware Enter here your own description of your configuration settings if necessary (max.
configuration 48 characters)
Manufacturer ID Manufacturer ID (OEM code) assigned by Hilscher. For your information only,
cannot be edited by the user.
Device Number Device number assigned by Hilscher. For your information only, cannot be edited
by the user.
Hardware revision Hardware revision number assigned by Hilscher. For your information only,
cannot be edited by the user.
Other information Free text field (max. 48 characters)
Enable application CPU true Set to true to enable the APP CPU (i.e. in “stand-alone-chip” use
cases, where the application is handled by the netX, not by an external
host CPU)
false Set to false to disable the APP CPU (i.e. in “companion chip” use
cases, where the application is handled by an external host CPU, not
by the netX)
Enable internal DPM true Set to true to enable the internal Dual-Port Memory between COM
CPU and APP CPU (i.e. in “stand-alone-chip” use cases, where the
application is handled by the netX, not by an external host CPU)
false Set to false to disable the internal Dual-Port Memory between COM
CPU and APP CPU (i.e. in “companion chip” use cases, where the
application is handled by an external host CPU, not by the netX)
SQI XiP Flash Firewall Defines access to external SQI XiP flash.
Note: Settings depend on your communication firmware use case. If the
communication firmware requires external SQI Flash, access by the application
side is not permitted (default setting). If the communication firmware does not
require external SQI Flash, it is up to the user how to configure this firewall.
· COM has read/write access, APP has no access (default)
· APP has read/write access, COM has no access
· COM and APP have no access
Ext SDRAM Firewall Defines access to external SDRAM.
Note: Settings depend on your communication firmware use case and on your
user application requirements. If both communication side and application side
require external SDRAM, the firewall has to be configured for split mode (default
setting). In this case, the built-in ROM Code is eligible to load application program
code from SQI Flash into SDRAM during the extended boot sequence (if
supported) when the communication firmware requires access exclusively to SQI
Flash.
· COM has read/write access, APP has no access
· APP has read/write access, COM has no access
· COM and APP have read/write access (split mode) (default)
· COM and APP have no access
Ext SRAM/Flash Firewall Defines access to external SRAM/Flash.
Note: Not yet supported because the external SRAM/Flash parallel memory
interface is shared with the parallel SDRAM interface (parallel SDRAM is the main
use case).
The standard setting (which cannot be changed) will be:
· APP has read/write access, COM has no access
UART Firewall Defines access to the UART within the shared block of peripheral functions.
· COM has read/write access, APP has no access (default)
· APP has read/write access, COM has no access
· COM and APP have no access
Parameter Description
PAD CTRL Firewall Defines access to PAD-specific registers (like drive strength and pull resistors).
Note: The PAD control settings can be configured in the hardware configuration
editor (see subsection Hardware option properties dialog). In this case, the
built-in ROM Code configures the PAD control registers during the boot sequence.
If the PAD control settings need to be controlled additionally by the application
side (e.g. changed during runtime), both sides need to be granted access (default
setting).
· COM has read/write access, APP has no access
· COM and APP have read/write access (default)
Crypto Core Firewall Defines access to the Crypto Core. The standard setting (which cannot be
changed) will be:
· COM has read/write access, APP has no access
Debug Firewall Defines access to the debug interface. The standard setting (which cannot be
changed) will be:
· COM and APP have no access
ETH MAC Firewall Defines access to the Ethernet MAC interface (MII) of the shared area. The
standard setting (which cannot be changed) will be:
· APP has read/write access, COM has no access
MADC Defines access to the Motion ADC controller. The standard setting (which cannot
be changed) will be:
· APP has read/write access, COM has no access
Table 3: General configuration parameters
Note:
The firewall settings defined in the General Configuration dialog
window cannot yet be “locked” because the the configuration tool
for the chip level security settings that locks the firewalls is not yet
supported, but will be in future versions of netX Studio CDT. This
means that the current firewall settings of your hardware
configuration file can still be overridden on the netX by simply
downloading a new hardware config file containing different firewall
settings.
Note:
The *.mwc hardware configuration binary is required by the
maintenance firmware. It contains the same settings as the “regular”
*.hwc hardware configuration binary and will be automatically
generated from the same *xml file.
If you do not use a maintenance firmware on your netX 90 device,
you do not need the *.mwc binary either.
Prerequisites
· You have configured your netX 90 pinning in the Hardware
configuration editor.
· You have saved your configuration to the corresponding *.xml file (by
pressing Ctrl + S on your keyboard after having edited the file in the
editor).
Step-by-step instructions
Ø In the Project Explorer, select your *.xml file, e.g.
new_hardware_config.xml and choose Build Hardware
Configuration... from the context menu.
Ø Keep the preset storage location and the preset file name
(recommended) and click OK button. Or specify a different parent folder
and/or a different name for the binary.
Ê A second Save As dialog window opens, this time for the *.mwc
hardware configuration binary for the maintenance firmware:
Figure 70: “Save as” dialog for hardware config binary for maintenance firmware
Ø Keep the preset storage location and the preset file name
(recommended) and click OK button. Or specify a different parent folder
and/or a different name for the binary.
Ê The Save As dialog closes and the two generated binary files are
displayed in the Project Explorer:
ð You have generated the binary hardware configuration files for the netX
90 SoC.
In order to apply your new hardware configuration to the netX 90, you
can now proceed to “download” (i.e. “flash”) the generated files to the
internal flash of the COM CPU of the netX 90 by using the integrated
Flasher tool of netX Studio CDT (see section Use the Flasher
tool [} page 113]).
4.3.1 Overview
The Flash Device Label (recognizable by its *.fdl extension) is a
mandatory configuration file required by the netX 90. It must be stored at a
certain offset in the internal flash of the COM CPU of the netX (0x2000 in
INTFLASH0), so that it can be evaluated by the communication firmware
after booting.
The FDL contains device-specific identification data like manufacturer and
device IDs, MAC addresses and serial number. It also contains the Flash
Layout Table, which defines the layout of the flash memory that is required
by the firmware on the netX 90. There are three different flash memory
layout firmware use cases, each requiring its own Flash layout table
definition, and thus its own FDL file:
· Firmware Use Case A:
COM CPU firmware does not require external SPI/SQI Flash or SDRAM
· Firmware Use Case B:
COM CPU firmware does not require external SPI/SQI Flash or SDRAM
APP CPU firmware uses external SPI Flash and may use external
SDRAM
· Firmware Use Case C:
COM CPU firmware requires external SPI Flash and external SDRAM
Important:
Note that all NXHX 90-JTAG boards are delivered with a Flash
Device Label for Firmware Use Case A already stored in the
internal flash of the netX. This FDL also contains device-specific
identification data and the MAC addresses of the board, which were
assigned by Hilscher.
If you want to use external SDRAM (i.e. the NXHX-SDRSPI
module), you must flash (download) an FDL for Firmware Use
Case C to the NXHX 90-JTAG board, and thus “overwrite” the pre-
installed FDL.
Before overwriting it, copy the “old” FDL to your PC by using the
Read function of the Flasher tool, thus saving the MAC addresses
and the device IDs. You can then enter the MAC addresses and the
serial number in the “new” FDL for Use Case C, and then flash it to
the NXHX 90-JTAG board.
For detailed instructions on this, see tutorial How to change from
Firmware Use Case A to Use Case C [} page 196].
Ø In the Enter or select the parent folder fields, specify the storage
location for the FDL file (you can open the tree structure of your project
and select a folder by mouse-click).
Ø In the File name field, enter the name of your new FDL, then click OK
button.
Ê The Save As dialog closes. Back in the New Flash Device Label
dialog window, the storage location is displayed in the Location field:
ð You can now proceed to define the parameters of the FDL in the editor
as described in section Edit Flash Device Labels [} page 100].
Note:
The editor also automatically opens after having created a new FDL
with the New Flash Device Label wizard.
Ê The FDL parameters are grouped into five sections: Basic Device
Data, MAC Addresses, Product Identification, OEM Identification
and Flash Layout. Each section can be expanded by clicking on the
triangle in front of the section.
Important:
The Flash Device Labels provided by Hilscher (i.e. in the example
projects) already contain pre-defined Basic Device Data values.
Certain Hilscher tools like the Communication Studio (though not
the Flasher tool of netX Studio CDT) check some of these IDs for
conformity against the IDs contained in the file header (a.k.a.
“device header”) of the *.nxi communication firmware before
downloading the firmware to the device. If these IDs do not match,
the Hilscher tool will refuse to download the COM firmware.
The *.mxf maintenance firmware (which manages firmware
updates on the netX) also checks these IDs and refuses to update
the COM firmware if they do not match. We therefore strongly
advise you not to change the preset default values of the Basic
Device Data in the FDL. Change or customize only the serial
number and the production date here.
However, if you have created a new FDL with the New Flash
Device Label wizard, you have to edit all fields here according to
Hilscher specifications, because the wizard sets all Basic Device
Data values to zero by default.
Parameter Values/description
Manufacturer ID Manufacturer ID managed and assigned by Hilscher. By default,
this field should be filled with the code for Hilscher
0 Undefined
1 Default code for Hilscher
2 ... 255 Hilscher GmbH
256 ... 65535 OEM ID
(managed and assigned to OEM by Hilscher)
Device Number The numbers for Manufacturer 1 ... 255 (Hilscher) are managed
by Hilscher GmbH
Note: Hilscher tools use Manufacturer ID, device class and device
number for identifying a device type. The tools display the device
type and add a serial number, thus making devices individually
identifiable (in case multiple devices are connected to the tool at
once).
Serial Number Serial number of the device. To be defined and incremented for
each device during production by OEM.
Hardware Revision Index starts with 1 and is incremented each time if hardware is
changed.
Production Date Select year and week of production of device.
Hardware Compatibility Index indicating whether a hardware version is compatible with a
firmware version. The index starts with zero and is incremented
each time if changes made to the hardware require the firmware
to be changed (adapted) as well.
Device Class Relevant for netX 90 are:
CHIP_NETX_90_COM Device with netX 90 (e.g. NXHX 90-JTAG)
CHIP_NETX_90_COM netX 90 with external SDRAM connected
_HIFSDR at host interface (e.g. NXHX 90-JTAG with
NXHX-SDRSPM module)
Table 4: Basic Device Data
MAC Addresses
MAC addresses to be used by the communication CPU and the application
CPU.
MAC addresses for COM CPU:
If your netX 90 device is intended for Real-Time Ethernet communication,
use the first four fields to define four different MAC addresses for the COM
CPU. This ensures that you can easily switch between different RTE
protocols (e.g. by replacing an EtherNet/IP firmware with a PROFINET
firmware) without facing problems with the protocol-specific mapping of the
MAC addresses.
However, if you intend to stick to one certain RTE protocol without ever
changing it, it may be sufficient to use less than four addresses. In this
case, consult the corresponding Hilscher API manual (chapter Ethernet
MAC addresses) of your protocol to find out how many addresses are
needed and in which fields they should be positioned.
MAC addresses for APP CPU:
Whether the application side needs its own MAC addresses or not,
depends on the requirements of the application firmware running on the
APP CPU.
Product Identification
Identification data of USB interface.
Note:
The netX 90 is not equipped with an internal USB interface,
therefore set values to zero, respectively leave them empty.
OEM Identification
OEM-specific product identification data.
Note:
Usage of these data fields by the OEM is optional. If used, the OEM
has to define appropriate values for this data. The application
firmware can (indirectly) read this data from the FDL by means of
services offered by the communication firmware.
Parameter Values/description
OEM Data Option This field enables the evaluation of the OEM identification data by
Flags the communication firmware (COM FW).
0 The COM FW does not evaluate the OEM
identification data. The APP FW can read (and use)
this data via services of the COM FW.
All other reserved
values
Note: Current firmware versions do not evaluate these parameters
anyway, but we still advise you to set this field to 0 in order to avoid
conflicts with upcoming firmware versions that might be able to
evaluate this section.
OEM Serial Number Serial number of the device as string.
OEM Order Number Order/article number of the device as string
Parameter Values/description
Production Date Production date and time.
UTC (Universal Time Coordinated) without TZD (time zone
designator, always 'Z') and no fraction of a second
OEM-Specific Data This field can be used to store any kind of information defined by the
OEM. If used, OEM has to define content, structure, values and their
meaning.
Table 5: OEM identification data
Flash Layout
Definition of the layout of the integrated flash memory of the netX 90 (a.k.a.
“Flash Layout Table”). The tables are pre-configured according to the
Firmware Use Case (A, B or C) that was selected in the New Flash
Device Label wizard (see section Create new Flash Device
Label [} page 96]).
Important:
The FDLs contained in the example projects and the FDLs created
by the New Flash Device Label wizard already contain proper flash
layout definitions, depending on the Firmware Use Case (A, B or
C) you have selected.
We therefore strongly advise you not to change these values.
The Chips table shows the flash memory chip definition of the netX
(internal flash [“INTFLASH”] and external SQI flash devices). Up to four
chips can be defined.
Parameter Values/description
Flash chip Flash chip number
0 INTFLASH0 (COM CPU)
1 INTFLASH1 (COM CPU)
2 External SQI flash
Note: The internal flash of the application CPU is not defined here,
because the COM firmware, which evaluates these parameters, has
no access to it. Flash chip number 2 (= external SQI flash) of this
flash layout definition is therefore not to be confused with the
Internal Flash 2 (APP) definition of the Flasher tool (=
INTFLASH of APP CPU).
Flash driver name Name of the driver of the flash chip/device.
Currently not evaluated.
Block size Block sizes of the flash chip/device in bytes.
Flash size Size of the flash chip/device in bytes.
Max. number of Maximum number of erase/write cycles of the flash chip/device.
erase/write cycles
Table 6: Flash Layout: Chips
The Area table shows the flash area definitions. Up to ten areas can be
defined, each containing either a certain binary file (like e.g. the hardware
configuration or the firmware) or dedicated space for non-file-based data
(like e.g. management and remanent data).
Note:
The actual area configuration depends on the firmware use case.
For example, an HCC File system area is not required for Use
Case A, therefore the table in the figure above (showing the flash
layout definition for Use Case A) does not contain an HCC File
system area.
Note also that the sequence of the areas within the table is not
relevant; decisive for the definition of the exact position in the flash
device is only the Area start address.
Column Values/description
Area name Shows the names of the defined areas. The Area name depends on
the Area content type. Valid names are:
HWConfig Hardware configuration for communication firmware
(*.hwc)
FDL Flash Device Label (*.fdl)
FW Communication firmware (*.nxi)
FWcont Communication firmware extension (*.nxe)
Config Area for firmware configuration data
Remanent Remanent data area
Management Flash management area
APPcont Application firmware extension (*.nae)
Maintenance Maintenance firmware (*.mfw)
Filesystem File system in external SQI flash
FWUpdate Firmware update area
MFW_HWConfig Hardware configuration for maintenance firmware
(*.mwc)
Area content type Defines the content stored in the area. The area content type can be
selected by drop-down list.
(Note that you must also set the Area name according to the content
type)
Hardware Hardware configuration for communication firmware
configuration (*.hwc)
Flash Device Flash Device Label (*.fdl)
Label
Communication Communication firmware (*.nxi)
firmware
Communication Communication firmware extension (*.nxe)
firmware
extension
Firmware data Area for firmware configuration data
area
Remanent data Remanent data area
area
Management Area for flash management data
data area
Application Application firmware extension (*.nae)
firmware
extension
Maintenance Maintenance firmware (*.mfw)
firmware
HCC File File system in external SQI flash
system area
Firmware Firmware update area
update area
Maintenance Hardware configuration for maintenance firmware
hardware (*.mwc)
configuration
Column Values/description
Flash chip Denotes the chip, on which the area is stored. The chip number can be
selected by drop-down list (only chips that have been defined in the
Chips table beforehand can be selected):
0 INTFLASH0 (COM CPU)
1 INTFLASH1 (COM CPU)
2 External SQI flash
Note: INTFLASH2 (APP CPU) is not defined here, because the COM
firmware, which evaluates these parameters, has no access to it.
Flash chip number 2 (= external SQI flash) of the flash layout
definition of the FDL is therefore not to be confused with the
Internal Flash 2 (APP) definition of the Flasher tool (=
INTFLASH of APP CPU).
Area start address Absolute start address, i.e. the offset relates to the whole internal
memory of the netX 90.
Area size Area size in bytes rounded up to 4 KByte sector size.
Area access type Defines the access rules for the area during runtime.
Table 7: Flash Layout: Areas
Ø After having edited the FDL, save the changes by choosing File > Save
from the main menu (or press Ctrl + S on your keyboard).
Note:
For information on how to download (“flash”) the Flash Device Label
to the flash memory of your netX device, see section Use the
Flasher tool [} page 113].
Important:
Note that the Tag List Editor is an expert tool and that improper
manipulation of a tag list or a device header with this tool can cause
malfunctioning of the concerned target devices. Do not change any
of the preset values with this tool unless you are explicitly advised
to do so.
Ø You can open the tag list of the communication firmware by simply
double-clicking the *.nxi file in the Project Explorer.
Note:
If you want to edit the tag list of a firmware file that is not part of
your currently opened netX Studio CDT project or solution, choose
File > Open File… from the main menu of netX Studio CDT and
select the firmware in the ensuing Open file... dialog window.
As an alternative, you can drag & drop the firmware file from your
Windows Explorer onto the editor area of the netX Studio
workbench. Its tag list will thus automatically be opened in the
editor.
Note also that you can open and edit a communication firmware file
which is not related to a currently opened project/solution without
having to close that project/solution beforehand. A file opened by
the File > Open File… command will not be automatically added to
your project but will be stored in its original directory (not in the
project) when you choose the File > Save command after editing.
The left area (1) shows the tag list of the firmware and allows you to select
a tag for editing. Tags with a checkmark are “enabled” and can be edited in
the middle area of the editor (2). The right area (3) displays a description of
the configuration options of the selected tag (if the Show help option in the
lower left corner of the editor is checked).
The Edit Device Header button (4) opens the Device Header parameters
a.k.a “Device Info”.
Device Header
Ø Click Edit Device Header button to open the Device Header.
Important:
The values in the Device Header of the firmware must be identical
with the values that are stored in the Basic Device Data section of
the Flash Device Label. If not, a firmware update on the netX with
this firmware file will not be possible. Hilscher tools like e.g.
Communication Studio and the maintenance firmware (which
manages firmware updates on the netX) compare these values and
refuse to start the update process if they differ.
4.5.1 Overview
netX Studio CDT features an integrated Flasher tool for reading, writing
and erasing the flash memory of the netX 90.
With this tool, you can download bootable firmware images and other
binary files (e.g. *.fdl and *.hwc files) to your NXHX 90-JTAG board via
JTAG. The flasher supports the following interfaces:
· JTAG-to-USB via X1000 USB connector (FTDI “on-board” debugger,
recommended)
· JTAG via X400 JTAG connector and external debugger (see section
Using external debugger [} page 172])
Note:
The current Flasher tool does not yet support the UART-to-USB
interface of hardware revision 3 of the NXHX 90-JTAG board.
The necessary drivers are included in the netX Studio CDT installation
package and were automatically installed by the setup wizard during the
installation of netX Studio CDT (except for drivers of “third party” external
debugger like Olimex and Amontec, see section Using external
debugger [} page 172]).
The Flasher tool supports the following flash devices of the netX 90 SoC:
· Serial Flash (SQI) – External flash memory
· Internal Flash 0 (COM) – 512 KB internal flash of communication CPU
(a.k.a. “INTFLASH0”)
· Internal Flash 1 (COM) – 512 KB internal flash of communication CPU
(a.k.a. “INTFLASH1”)
· Internal Flash 01 (COM) – 1024 KB combined internal flash of
communication CPU (Internal Flash 0 and 1 seen as single flash, a.k.a.
“INTFLASH01”)
· Internal Flash 2 (APP) – 512 KB internal flash of application CPU
(a.k.a. “INTFLASH2”)
Prerequisites
· If you intend to use the JTAG-to-USB interface (X1000) for flashing
(recommended):
You have connected your NXHX board to a voltage supply and the
X1000 interface to your development PC via USB cable.
· If you intend to use the JTAG interface (X400) via external debugger for
flashing:
See section Using external debugger [} page 172].
Important:
Writing files to an area of the flash device will erase any “old”
content previously stored in that area (if applicable). If you want to
be sure not to lose important data already residing in the flash,
create a backup copy by using the Read function of the Flasher
tool (see section Reading from flash memory of the netX
device [} page 120]).
Step-by-step instructions
1. Open the Flasher tool.
Ø In the menu of netX Studio CDT, choose Tools > Flasher or click the
flasher icon.
Ê The Detect Device window of the Flasher tool opens and the tool
automatically starts scanning for connected devices. It then displays
found connections in the Detected Interfaces list:
2. Select interface.
Ø In the Detected Interfaces list, select the interface that you want to
use. If you are using the JTAG-to-USB interface, select the
romloader_jtag_netX90_COM@NXHX_90-JTAG entry.
If you want to use the JTAG interface via external debugger (the X400
JTAG interface on the board needs to be enabled for this, see section
Using external debugger [} page 172]), select the
romloader_jtag_netX90_COM@[debugger name] entry.
Note:
Flashing via UART-to-USB interface is not yet supported, therefore
do not select a romloader_uart_COM[x] entry from the list.
Ø Click Next.
Ê The Select Operation window opens and the Flasher tries to identify
the connected netX device. After successful identification, the netX type
is displayed in the Chip Type field. The Write task is preselected by
default (it is underlined in red):
Note:
The Flasher tool is capable of recognizing the correct flash type for
any chosen input file. This means that you can skip this manual
flash type selection, because the Flasher tool will automatically
chose the right flash type when you select your input file (as
described in the following step).
Note:
The Flash Type drop-down list contains flash types for the netX 90
that are generally supported by the Flasher tool. It thus may also
contain flash types that are actually not implemented or not
accessible on your specific target device.
Ø Navigate to the directory where the file is stored, select the file (in this
example it is the hardware_config_idpm.hwc file) and click OK
button.
Ê The Select File dialog window closes and the Flasher now shows the
path of the selected file in the Input File field and adapts the Flash
Parameters according to your input file:
Important:
The Flasher tool recognizes the type of the input file by its
extension, and thus presets the Flash Parameters (offsets, size
and flash type) accordingly. Changing these preset parameters is
for expert users only!
Note also that the Flasher tool supports only writing and erasing of
whole blocks of the flash device (in this case one block is 4
KB/4096 Bytes). Keep this in mind if you intend to define a new
Start Offset value.
Ê After the operation has been completed, the following dialog window
appears:
Ø If you choose Yes, the Flasher tool stays open and you can directly
perform another operation, if you choose No, the tool will be
immediately closed.
Ø Navigate to the directory in which you want to store the output file.
Ø In the File name field, enter a name for the file into which the output
data shall be dumped.
Ø Click Save button to close the Save as dialog window.
Ê The Save as dialog window closes and the Flasher now shows the path
of the output file in the Output File field.
6. Define flash area to be read.
Ø By default, the Flasher tool reads the whole memory area of the flash
device. If you want to read only a certain area, uncheck the Whole
memory option and use the Start Offset and End Offset fields or the
Start Offset and Size fields to specify the area that shall be read.
The Size field equals the size of the area that is going to be read, as
defined by the Start Offset and End Offset fields. If you manually
change the value in the Size field, the value in the End Offset field will
automatically be increased or decreased accordingly.
Ê After the operation has been completed, the following dialog window
appears:
Ø If you choose Yes, the Flasher tool stays open and you can directly
perform another operation, if you choose No, the tool will be
immediately closed.
Note:
The Flasher tool only supports writing and erasing of whole blocks
of the flash device (in this case one block is 4 KB/4096 Bytes).
Keep this in mind when defining the Start Offset value.
6. Start erasing.
Ø Click Erase button to start erasing the contents of the flash memory of
your netX device.
Ê The Flasher tool performs the operation. (Click the Details button if you
want to learn about the progress of the operation.)
Ê After the operation has been completed, the following dialog window
appears:
Ø If you choose Yes, the Flasher tool stays open and you can directly
perform another operation, if you choose No, the tool will be
immediately closed.
Note:
Alternatively, the Debug settings dialog can also be opened by
selecting Project > Properties from the main menu of netX Studio
CDT, and then selecting netX Development > Debug tab in
Properties dialog window.
Note:
By default, netX Studio CDT automatically starts OpenOCD (Open
On-Chip Debugger) before starting a debug session. OpenOCD is
open-source software that interfaces with a hardware debugger's
JTAG port.
Only uncheck this option if you are an advanced user wishing to
start OpenOCD manually.
In this case, netX Studio CDT connects to the remote target at
localhost at port 3333.
Target board
The Target board drop-down list features a list of Hilscher development
boards supported by netX Studio CDT.
Ø Select NXHX-90 from the drop-down list.
Debugger
The Debugger drop-down list features a list of debuggers supported by
netX Studio CDT.
Ø For the NXHX 90-JTAG board, select NXHX-90 On-Board Debugger if
you are using the onboard JTAG-to-USB debugger. If you are using an
external debugger, select the corresponding debugger from the list (e.g.
NXJTAG-USB).
Note:
If you want to use the Olimex or the Amontec debugger, you must
install the drivers separately, because they are not included in the
netX Studio CDT installation. See section Using external
debugger [} page 172].
JTAG speed
Ø Make sure that the speed is set to the recommended default setting of
1000 kHz.
Mode
The Mode option determines how netX Studio CDT will connect to the netX
target:
Run: Target is reset and halted
Attach: Target is halted only (without reset)
Note:
The Attach mode can be used to attach to a running application on
the netX. You can use this mode to debug your application once it
has been flashed to the netX.
Config script
You can use the Config script field to optionally specify a custom/project-
specific configuration script for OpenOCD.
The specified config script will be included after the default board
configuration. It can override any settings defined in the board script: reset
configuration, work area configuration, target event handlers (e.g. “reset-
init”) etc.
For example, you can use the custom config script to move, shrink or
disable the OpenOCD work area, or you can write custom “reset-init”
initialization, e.g. to initialize external SDRAM.
In the debugger config script you can also define a “target_init” procedure,
which will be called to initialize the target after the target is reset:
Target_init_sdram.cfg
proc target_init {} {
Note:
The “target_init” procedure is called only after reset. This means
that it will not be executed if you are attaching to a running target
(i. e. if you are using the Attach mode).
Auto Flasher
This feature is only available for the netX 90 APP CPU internal flash target
in Run Mode:
The auto flasher offers (by a prompt) to flash an INTFLASH application
automatically when you start the debug session in the internal flash of the
APP CPU for the first time, or when you relaunch an INTFLASH application
that has been changed and rebuilt.
See also section “Auto Flasher” function for debugging in internal flash of
APP CPU [} page 137].
If you do not want to use this feature, you can disable it here by unchecking
it.
Executable
The Executable field specifies the executable file that will be loaded by the
debugger.
By default, this is automatically detected from the project build scripts, but
you can also specify an executable file manually by unchecking the Use
executable from target output option and then using the Search
Project... or Browse... buttons to open a file selection dialog.
The Load image (gdb load) option should be checked when you are
debugging in Run mode, and unchecked when you are debugging in
Attach mode. (This Load image option will be checked/unchecked
automatically when you select the Run respectively Attach mode.)
Startup
The Startup section provides options for what happens when the debug
session is started.
The Set vector table offset at option allows you to set the program
counter, stack pointer and VTOR of the debugger to a certain address or
symbol, which can be specified in the neighboring field.
By default, this option is selected and the vector table address is set to the
__Vectors symbol. You can change the default value to another symbol
or address – e.g. __vector_table or 0x10000000 – by entering the new
value:
The commands to initialize the program counter, stack pointer and VTOR
will be “printed” in the GDB Console after the debug session has started:
Note:
The Set vector table offset at option will be automatically disabled
when you switch the debug settings to Attach mode (see above);
because the debugger only sets the registers when running an
application after reset.
The command and its result will be “printed” in the GDB Console after the
debug session has started:
The Resume option allows you to control whether the program should be
resumed automatically after the debug session is started. By default, the
Resume option is automatically pre-selected when the debugger is set to
Run mode, and deselected when the debugger is set to Attach mode.
However, when in Run mode, you can still disable the Resume option, in
order to have the debug session start with the target suspended right after
reset.
Ø After having configured the debug settings, click Apply and then OK
button.
Note:
A curtailed version of the Debug Settings dialog described above
also opens automatically when you issue a Start Debugging
command without having configured the debug settings of the active
target beforehand (i.e. if no debug settings had been assigned
before, neither by default nor manually):
Note:
If you are not in debug perspective, the Peripherals entry is not
visible in the Show View menu. If you want to open a list of the
peripheral registers while you are still working in the C/C++
development perspective, select Window > Show View > Other...
from the menu. In the separate Show View dialog window that
opens, you will find the Peripherals entry in the Debug folder.
Select the Peripherals entry there, then click OK button.
Ê The Peripherals View opens. The name of the loaded SVD file [netX90
(APP)] is indicated in the top right corner of the view’s window:
Once you have enabled the Peripherals View, it will automatically open
each time you start a debug session.
Note:
The “auto refresh” feature of the peripherals view, which refreshes
the register values automatically at a fixed time interval, is disabled
by default (in order to avoid unwanted side effects by unintentionally
reading certain registers). You can open a configuration dialog
(called Preferences) for the Peripherals view and re-enable the
auto refresh feature by clicking the settings icon in the top right
corner of the Peripherals view.
However, you should change settings here only if you are an
advanced user, otherwise we recommend keeping the default
settings!
In future releases, the SVD will be enhanced in order to treat
“access side effects” for the “auto refresh” feature automatically.
Ê Thus enabled registers and fields are highlighted in green. Their current
memory values (at the time of suspension of the application respectively
at reaching its defined break point) are displayed in the Hex and Bin
fields:
5 Good to know...
Note:
The auto flasher works only if the debug target is the internal flash
of the netX 90 application CPU (APP CPU). Also, the “Run” Mode is
required in the debug settings.
You can disable the auto flasher in the debug settings (see section
Adjust debug settings [} page 126]).
Note:
If you want to use the auto flasher but its prompt does not appear –
because you have accidentally selected the No option in the auto
flasher prompt – you can simply rebuild your project to “reset” the
auto flasher state. The auto flasher prompt will then reappear.
Note also that if you swap your “old” NXHX 90-JTAG target board
with a “fresh” NXHX board that does not yet contain the application
in its INTFLASH, you might also want to “reset” the auto flasher (i.e.
rebuild your application) in order to evoke the auto flasher prompt
for the next debug session. This is because the tool is not able to
detect that you have swapped the devices.
Note:
If you do not see the Build Targets entry in the Show View list of
the menu, this means that you have probably updated netX Studio
CDT from a previous version and kept your old preferences.
In this case, you can reset your window layout by choosing Reset
Layout in the Window menu. If you want to keep your old window
layout, you can open the Build Targets View alternatively by
choosing Window > Show View > Other... > C/C++ > Build
Targets.
All available build targets are marked with the target icon.
You can open the build script in which the target is defined:
Ø Select the target and choose Open Wscript from the context menu.
You can view details about the build target:
Ø Select the target and choose Properties from the context menu.
You can create custom build commands based on an existing build target:
Ø Select the target and choose Duplicate from the context menu.
Ê A copy of the target is created below the original target (marked with a
little blue arrow):
Ø Select the copied target and choose Edit from the context menu.
Ê The Edit Build Target dialog window opens:
Ø Enter a name and define the build command, then click OK.
To execute a custom target, double-click it or choose Build from the
context menu. Unlike the build targets derived from existing build scripts,
customized targets (newly created targets marked with a little blue arrow)
can be deleted in the Build Targets View by choosing Remove from the
context menu.
Note:
This chapter features a “generalized” description of the Debug
Cores View of netX Studio CDT. Details depicted in this chapter
may not reflect details of the example projects.
Note:
If the Cores entry is not displayed in the Show View menu, you
may have to reset the layout first by choosing Window > Reset
Layout.
Ê When the application is suspended (i. e. the APP CPU of the netX 90
SoC is halted), the Cores view displays the current state of the COM
CPU:
Note:
The view is updated only when stepping through the code, not in
“real-time”.
PyDev editor
Python and Waf scripts (wscript files) are by default opened in the PyDev
editor:
PyDev settings
PyDev can be configured in the Preferences sheet (choose Edit >
Preferences > PyDev from the main menu of netX Studio CDT):
5.7.1 Overview
netX Studio CDT features the Eclox plug-in enabling you to use the
Doxygen tool to generate software reference documentation from the
comments in the source files of your netX Studio CDT projects.
The following sections describe how to install Doxygen (the necessary
Eclox plug-in has automatically been installed along with netX Studio CDT)
and how to configure and build documentation with Doxygen.
Note:
You will be asked to install Doxygen also if you click the button
in the main toolbar or if choose Build Documentation from the
context menu in the Project Explorer before having installed
Doxygen. A prompt then opens and leads you to the Install
Development Tools wizard.
Ø Select the check box in front of the Doxygen entry. Select also
Graphviz if you want to use this visualization software together with
Doxygen.
Ø Click Next.
Ê The Review Licenses window opens.
Ø Read all license texts. If you accept the license terms, select I accept
the terms of the license agreements.
Ø Click Install button.
Ê The tools are installed.
Ø After the installation is finished, acknowledge the Installation
Complete message by clicking OK.
ð You have installed Doxygen. You can now proceed to create
documentation for your netX Studio CDT projects with Doxygen.
Note:
The netX90_PNS_simpleConfig example project already contains
a pre-configured Doxygen configuration file (which of course you
can change or adapt according to your needs). This section
describes how to add and edit another Doxygen configuration file to
your project.
Note:
You will be asked to add a Doxyfile also if you click the Create
Documentation button in the main toolbar before having added a
Doxyfile yet. The No Doxyfile Found dialog window then opens
and leads you to the New Doxygen Configuration wizard.
Ø In the Enter or select the parent folder section, choose the storage
location of your Doxygen configuration file.
Ø In the Doxyfile name field, specify the name of your Doxygen
configuration file.
Ø Optional: If you want the configuration file to reference a file in your file
system, click Advanced button and check the box in front of the Link to
file in the file system option, then click Browse… button to select the
file you want to link, or click Variables button if you want to use a path
variable to reference a file.
Ø Click Finish button.
Ê The New Doxygen Configuration wizard closes and the new Doxygen
configuration file is displayed in the Project Explorer:
Basic settings
The Basic tab, which is opened by default, enables you to quickly perform
the most basic configuration tasks like specifying input sources and output
formats and the output directory of your documentation.
Ø Specify the files and/or directories that contain documented source files
that you want to use. To do so, click Add button next to the Input
directories field.
Ê The Value Edition dialog window opens:
Note:
You can enter a list of more than one file or directory in the Input
directories field. Note also that if the Input directories field is left
empty, the current location/folder of the Doxyfile is searched.
Note:
If you don’t specify a certain directory here, the output will by default
be stored in the directory where the Doxyfile is located.
The output folders are named according to the chosen output
formats, e. g. html for HTML output files and rtf for Rich Text
Format files.
Advanced settings
The Advanced settings tab offers the whole range of Doxygen
configuration options.
Ø To open the Advanced settings, click the Advanced tab in the footer of
the editor:
The Settings area of the Advanced tab lists all available configuration
parameters (called “tags”) along with their current (default) settings. The
options and parameters of a selected tag are briefly explained in the right
part of the editor below the input fields.
Note:
If you are using the icon for the first time, the Doxyfile Selection
dialog window opens, asking you to select the Doxyfile that you
want to use for building the documentation. Once you have selected
a Doxyfile in the Doxyfile Selection dialog window, this Doxyfile
will be used by default each time you hit the create documentation
icon . You can open the Doxyfile Selection dialog window again
to select another Doxyfile (if your project contains more than one
Doxyfile) by clicking the triangle icon next to the icon.
Ø Open the html folder and scroll down in the Project Explorer until you
reach the index.html file.
5.8.1 Overview
netX Studio CDT features the Eclipse Subversive plug-in enabling you to
use the Subversion (SVN) software versioning and revision control system
with your netX projects.
This chapter describes how to install the required SVN Connector and how
to perform basic functions like checking your netX CDT projects in or out of
SVN.
Note:
This chapter features a “generalized” description of how to use
Subversive/Subversion with netX Studio CDT. Details depicted in
this chapter may not reflect details of the
netX90_PNS_simpleConfig example project.
Note:
If you do not want to work with SVN at this point, click No. The
installation prompt then won’t be shown again when you open a
new project. If you want to install SVN connectors any time later,
you can invoke the Install Connectors dialog window again by
choosing Help > Install > SVN Connectors… from the main menu
of netX Studio CDT.
Ø You can select or deselect components here, then click Next button.
Ø You can display details of selected items here, then click Next button.
Ø The Review Licenses window opens:
Ø Read all license texts. If you accept the license terms, select I accept
the terms of the license agreements.
Ø Click Finish button.
Ê The SVN connectors are installed.
ð You have installed the SVN Connectors. You can now proceed to add
or create a repository for your netX Studio CDT project.
Note:
If you don't see the SVN Repositories entry in the Show View list
of the menu, this means that you have probably updated netX
Studio CDT from a previous version and kept your old preferences.
In this case, you can reset your window layout by choosing Reset
Perspective... in the Window menu. If you want to keep your old
window layout, you can open the SVN Repositories view
alternatively by choosing Window > Show View > Other... > SVN >
SVN Repositories from the menu.
Ø You can enter a comment and/or deselect components that you don’t
want to commit.
Ø Click OK.
Ø Specifiy the location in your file system where you want to store the
checked-out project, then click OK button.
ð The project is checked out and opened in the Project Explorer of netX
Studio CDT.
Ø Select Check out and import existing code as a netX CDT project
option and specify the directory where you want to store the checked-
out project. Click Finish button.
Ê While the project is checked out, the Import Existing Code dialog
window opens:
Ø You can specify a new name for the imported project here, then click
Finish button.
ð The project is imported as netX CDT project and opened in the Project
Explorer of netX Studio CDT.
Ø Open Zadig.
Note:
If the Olimex debugger is not automatically displayed in the drop-
down list, choose Options > List All Devices from the Menu, then
select the Olimex debugger entry.
Ø Make sure that WinUSB is selected in the field to the right of the green
arrow, then click Install Driver button.
Ø If the Windows security question for device software installation
appears, allow the installation.
Ø Repeat the installation for the second Olimex interface entry.
Ê In the Windows Device Manager, the Olimex debugger should now be
displayed under Universal Serial Bus devices:
Ø Open Zadig.
Ê The Amontec debugger is displayed in the drop-down list:
Note:
If the Amontec debugger is not automatically displayed in the drop-
down list, choose Options > List All Devices from the Menu, then
select the Amontec debugger entry.
Ø Make sure that WinUSB is selected in the field to the right of the green
arrow, then click Install Driver button.
Important:
You must flash a hardware configuration binary containing the
appropriate SDRAM configuration settings if you want to use the
NXHX-SDRSPM module on your NXHX 90-JTAG board.
Note:
Using the SDRAM module occupies (and thus limits the availability
of) most of the I/O pins for the application peripherals accessible by
the host interface.
6 Tutorials
6.1.1 Overview
This tutorial describes the steps that you must perform in order to get the
netX90_PNSV5_simpleConfig example project running.
This example projects features the PROFINET IO Device protocol; however
the steps shown here in principle also apply to the other example projects
provided by Hilscher (i.e. for EtherCAT Slave and EtherNet/IP Adapter, see
section Example projects [} page 33]).
Note that this tutorial focusses on Firmware Use Case A, which means
that it does not require additional SDRAM (i.e. the NXHX-SDRSPM
module).
6.1.2 Prerequisites
· You have downloaded and installed netX Studio CDT as described in
section Installing the netX Studio CDT software [} page 19].
· You have downloaded and opened the netX90_PNSV5_simpleConfig
example project as described in section Using example
projects [} page 33].
· If you want to use the JTAG-to-USB onboard debugger of the NXHX 90-
JTAG board:
You have connected the X1000 USB interface (Mini-B) of the board to
your development PC (see also section Checking JTAG-to-USB
connection in Device Manager [} page 27]) and you have enabled the
connection by setting switch 1 of S701 on the NXHX 90-JTAG board to
OFF position.
· If you want to use an external debugger:
You have connected the X400 JTAG interface of the board to your
development PC via debugger (see also section Using external
debugger [} page 172]) and you have enabled the connection by setting
switch 1 of S701 on the NXHX 90-JTAG board to ON position.
· You have connected the NXHX 90-JTAG development board to a +24 V
power supply.
Ê The project (respectively the whole “solution”) is being built and the
build output folder is added in the Project Explorer:
Important:
If you are using Revision 3 of the NXHX 90-JTAG board, you must
use the hardware_config_idpm.xml file stored in the
Revision0 folder.
Note:
The hardware_config_idpm.xml file features an activated
internal Dual-Port Memory (idpm) and an enabled application CPU,
and is therefore the right hardware configuration for the example
project demonstrating a “stand alone chip” solution.
This configuration is also compatible with Firmware Use Case A
(without external SDRAM), and is therefore compatible with the pre-
installed Flash Device Label (FDL) on the NXHX 90-JTAG board.
Ø Keep the preset storage location and the preset file name
(recommended) and click OK button.
Ê A second Save As dialog window opens, this time for the *.mwc
maintenance hardware configuration binary:
Figure 168: “Save as” dialog for hardware config binary for maintenance firmware
Note:
The *.mwc file is the hardware configuration binary for the
maintenance firmware (which handles firmware updates on the netX
during runtime). However, the maintenance firmware and its
firmware update functionalities are not required for running this
example project, therefore you will not need this *.mwc binary
(though it will be automatically generated anyway).
Ø Keep the preset storage location and the preset file name
(recommended) and click OK button.
Ê The Save As dialog closes and the two generated binary files are
displayed in the Project Explorer:
4. Flash hardware configuration binary to the internal flash of the COM CPU
of the device.
Ø In the menu of netX Studio CDT, choose Tools > Flasher or click the
flasher icon.
Ø In the Detect Device window of the Flasher tool, select the
romloader_jtag_netX90_COM@NXHX_90-JTAG interface, then click
Next.
Ø In the Select Operation window, make sure that the Write task is
selected, then click Browse Project... button:
Ø In the Select File dialog window, open folder HWC and select the
hardware_config_idpm.hwc file (make sure that you do not
accidentally select the *.mwc file for the maintenance firmware).
Important: If you are using Revision 3 of the NXHX 90-JTAG board,
select the hardware_config_idpm.hwc file stored in the revision0
folder.
Ø Click OK button.
Ê Back in the Select Operation window, the Flash Parameters are
automatically set to the correct values (i.e. Start Offset = 0x0 and
Flash Type = Internal Flash 01 (COM)).
5. Flash the communication firmware file to the internal flash of the COM
CPU.
Ø Click Browse Project... button.
Ø In the Select File dialog window, open folder LFW and select
X090D000.nxi file.
Note:
The X090D000.nxi is the right file for “Firmware Use Case A” and
thus compatible with the pre-installed Flash Device Label (FDL) on
the NXHX 90-JTAG board.
Take care not to accidentally select the X090D001.nxi file,
because that is the file for “Firmware Use Case C”, which requires
external SDRAM and would thus require a different FDL and a
different hardware configuration.
Ø Click OK button.
Ê The application elf is flashed and launched. The GUI of netX Studio
CDT switches into its debug perspective:
Ê The editor window in the middle shows the source code line executed at
the time of suspension (marked by a little green arrow), and the
Peripherals view shows the current values of the enabled register (and
its subordinate fields) in the Hex and Bin columns:
8. Use the Cores view to verify that the COM CPU is running while the APP
CPU has been halted.
Ø In the main menu, choose Window > Show View > Cores.
Ê The Cores view opens, showing the netx90.comm core (i.e. the netX
90 COM CPU) in status running, the netX90.app core (i.e. the netX 90
APP CPU) is in status halted:
9. Set breakpoint.
Ø In the Project Explorer, open folder Components >
cifXApplicationDemo > Sources, then double-click
App_DemoApplication.c source code file.
Ø In the App_DemoApplication.c file, scroll down to the
/** check and process incoming packets */ command
block.
Ê You have set a breakpoint (indicated by a green dot in the blue marker
bar). The execution of the application will be automatically suspended
when it reaches this code line (indicated by a green arrow in the blue
marker bar):
ð netX Studio CDT allows you to add expressions to display the values of
selected variables and to perform single-step execution of code lines.
6.2.1 Overview
Overview
This chapter describes the steps that you must perform in order to change
from Firmware Use Case A to Firmware Use Case C.
This is necessary if the communication firmware requires an SQI Flash with
an HCC file system and external SDRAM (shared with APP side).
6.2.2 Prerequisites
· You have downloaded and opened the netX90_PNSV5_simpleConfig
example project as described in section Using example
projects [} page 33].
· You have connected the X1000 USB interface (Mini-B) of the NXHX 90-
JTAG board to your development PC (see also section Checking JTAG-
to-USB connection in Device Manager [} page 27]) and you have
enabled the connection by setting switch 1 of S701 on the NXHX 90-
JTAG board to OFF position.
· You have connected the NXHX 90-JTAG development board to a +24 V
power supply.
Note:
All NXHX 90-JTAG boards are shipped with a pre-installed Flash
Device Label (FDL) containing the Flash Layout definitions for Use
Case A. This FDL must to be replaced with an FDL containing the
Flash Layout definitions for Use Case C.
However, because this pre-installed FDL for Use Case A also
contains device-specific IDs like MAC addresses and serial number,
it should first be saved to your development PC before overwriting
it, so that you can copy these IDs into the “new” FDL for Use Case
C.
1. Open Flasher tool and select the interface of the NXHX 90-JTAG board.
Ø In the menu of netX Studio CDT, choose Tools > Flasher or click the
flasher icon.
Ø In the Detect Device window of the Flasher tool, select the
romloader_jtag_netX90_COM@NXHX_90-JTAG interface, then click
Next.
Ø In the Tasks area of the Select Operation window, select Read task:
Ø Select the folder in which you want to store the output file, e.g. the FDL
folder. In the File name field, enter a name for the output file (into which
the output data shall be “dumped”), e.g. old_label.fdl
Note:
Use the *.fdl file extension, otherwise the Flash Device Label
Editor of netX Studio CDT will not be able to open the file.
Ø In the Start Offset field, enter value 0x2000 (the FDL is always stored
at this position in INTFLASH0 respectively 01).
Ø In the Size field, enter value 0x1000 (the FDL is always 4 KByte in
size).
Ê The End Offset field is automatically adapted according to the Start
Offset and Size values that you have just entered.
Ø In the Flash Type drop-down list, select Internal Flash 0 (COM) or
Internal Flash 01 (COM) entry.
4. Start “Read” operation.
Ø Click Read button to start copying the FDL to your output file.
Ê The Flasher tool reads the specified area in flash memory and writes
the data to the specified output directory on your PC. After the operation
has been completed, the following dialog window appears:
Note:
If you have stored the output file not in your opened project, but
somewhere else in your file system, use File > Open File...
command from the main menu of netX Studio CDT.
Note:
As an alternative, you can create a new FDL for Use Case C by
using the New Flash Device Label wizard. If you select Firmware
Use Case C option in the wizard, it will automatically add the
appropriate flash layout definitions for Use Case C.
Note:
The hardware_config_idpm_sdram.xml file is configured for
SDRAM and is therefore compatible with Firmware Use Case C.
Ø In the Project Explorer of netX Studio CDT, open the HWC folder and
select the hardware_config_idpm_sdram.xml file.
Important:
If you are using Revision 3 of the NXHX 90-JTAG board, you must
use the hardware_config_idpm_sdram.xml file stored in the
Revsion0 folder.
Ø Keep the preset storage location and the preset file name
(recommended) and click OK button.
Ê A second Save As dialog window opens, this time for the *.mwc
maintenance hardware configuration binary.
Ø Keep the preset storage location and the preset file name
(recommended) and click OK button.
ð The Save As dialog closes and the two generated binary files are
stored in the specified directory. You can now proceed to open the
Flasher tool to download the binaries for Use Case C to the NXHX 90-
JTAG board.
Ø In the Select File dialog window, open FDL folder and select the
customized FDL template for Use Case C.
Ø Click OK button.
10. Flash the hardware configuration binary to the internal flash of the COM
CPU.
Ø Click Browse Project... button.
Ø In the Select File dialog window, open folder HWC and select the
hardware_config_idpm_sdram.hwc file (make sure that you do not
accidentally select the *.mwc file for maintenance firmware).
Important: If you are using Revision 3 of the NXHX 90-JTAG board,
select the hardware_config_idpm_sdram.hwc file stored in the
revision0 folder.
Ø Click OK button.
Note:
The X090D001.nxi is the right file for “Firmware Use Case C” and
is thus compatible with the Flash Device Label (FDL) and the
hardware configuration that you have just flashed to the NXHX 90-
JTAG board.
Take care not to accidentally select the X090D000.nxi file,
because that is the file for “Firmware Use Case A”.
Ø Click OK button.
Ê Back in the Select Operation window, the Flash Parameters are
automatically set to the correct values (i.e. Start Offset = 0x3000 and
Flash Type = Internal Flash 01 (COM)).
12. Flash dummy file to the internal flash of the APP CPU.
Note:
The netx90_app_iflash_dummy.nai file enables debugging of
application code in SDRAM.
Ø Click OK button.
List of figures
Figure 1: Connecting NXHX 90-JTAG development board ................................................. 17
Figure 2: Setup Wizard start screen .................................................................................... 20
Figure 3: End-User License Agreement screen................................................................... 20
Figure 4: Installation path dialog window............................................................................. 21
Figure 5: Ready to install window ........................................................................................ 21
Figure 6: Windows security question for driver installation.................................................. 21
Figure 7: Setup completed window...................................................................................... 22
Figure 8: netX Studio CDT start screen with Install Development Tools wizard dialog
window.................................................................................................................. 23
Figure 9: License agreement dialog window ....................................................................... 24
Figure 10: Development tools installation complete message............................................... 24
Figure 11: Install Development Tools wizard......................................................................... 25
Figure 12: Connection refused message............................................................................... 26
Figure 13: NXHX 90-JTAG connections in Device Manager under Windows 7 .................... 28
Figure 14: Open Device Manager in Windows 10 ................................................................. 29
Figure 15: NXHX 90-JTAG connections in Device Manager under Windows 10 .................. 30
Figure 16: Welcome screen................................................................................................... 31
Figure 17: Open example project .......................................................................................... 35
Figure 18: netX 90 example project....................................................................................... 36
Figure 19: Resources of the PROFINET example project..................................................... 37
Figure 20: Components folder in Project Explorer................................................................. 38
Figure 21: Documentation folder ........................................................................................... 40
Figure 22: Flash Device Label folder ..................................................................................... 41
Figure 23: Hardware configuration folder .............................................................................. 43
Figure 24: Loadable Firmware folder..................................................................................... 44
Figure 25: Maintenance firmware folder ................................................................................ 45
Figure 26: Targets folder ....................................................................................................... 46
Figure 27: Files in root directory ............................................................................................ 47
Figure 28: New netX CDT Project wizard .............................................................................. 49
Figure 29: New netX 90 project ............................................................................................. 50
Figure 30: Resources of netX 90 project template ................................................................ 51
Figure 31: Components folder in Project Explorer................................................................. 51
Figure 32: Documentation folder ........................................................................................... 52
Figure 33: Targets folder ....................................................................................................... 53
Figure 34: Files in root folder ................................................................................................. 53
Figure 35: Build output folder................................................................................................. 55
Figure 36: Opening New Component wizard......................................................................... 56
Figure 37: New Component wizard ....................................................................................... 57
Figure 38: Copying Component ID ........................................................................................ 57
Figure 39: Added component ................................................................................................ 58
List of tables
Table 1: List of revisions ....................................................................................................... 5
Table 2: Additional documentation ....................................................................................... 8
Table 3: General configuration parameters .......................................................................... 88
Table 4: Basic Device Data .................................................................................................. 101
Table 5: OEM identification data........................................................................................... 104
Table 6: Flash Layout: Chips ................................................................................................ 106
Table 7: Flash Layout: Areas................................................................................................ 107
Table 8: Parameters Device Header .................................................................................... 112
Contacts
HEADQUARTERS
Germany
Hilscher Gesellschaft für
Systemautomation mbH
Rheinstrasse 15
65795 Hattersheim
Phone: +49 (0) 6190 9907-0
Fax: +49 (0) 6190 9907-50
E-mail: [email protected]
Support
Phone: +49 (0) 6190 9907-99
E-mail: [email protected]
SUBSIDIARIES
China Japan
Hilscher Systemautomation (Shanghai) Co. Ltd. Hilscher Japan KK
200010 Shanghai Tokyo, 160-0022
Phone: +86 (0) 21-6355-5161 Phone: +81 (0) 3-5362-0521
E-mail: [email protected] E-mail: [email protected]
Support Support
Phone: +86 (0) 21-6355-5161 Phone: +81 (0) 3-5362-0521
E-mail: [email protected] E-mail: [email protected]
France Korea
Hilscher France S.a.r.l. Hilscher Korea Inc.
69500 Bron Seongnam, Gyeonggi, 463-400
Phone: +33 (0) 4 72 37 98 40 Phone: +82 (0) 31-789-3715
E-mail: [email protected] E-mail: [email protected]
Support
Phone: +33 (0) 4 72 37 98 40 Switzerland
E-mail: [email protected] Hilscher Swiss GmbH
4500 Solothurn
Phone: +41 (0) 32 623 6633
India
E-mail: [email protected]
Hilscher India Pvt. Ltd.
Pune, Delhi, Mumbai Support
Phone: +91 8888 750 777 Phone: +49 (0) 6190 9907-99
E-mail: [email protected] E-mail: [email protected]
Italy USA
Hilscher Italia S.r.l. Hilscher North America, Inc.
20090 Vimodrone (MI) Lisle, IL 60532
Phone: +39 02 25007068 Phone: +1 630-505-5301
E-mail: [email protected] E-mail: [email protected]
Support Support
Phone: +39 02 25007068 Phone: +1 630-505-5301
E-mail: [email protected] E-mail: [email protected]