GOAL - NXP RT1180
Development board
The following image shows the development target board.
Following interfaces are significant for the package:
Port | Function | Remarks |
---|---|---|
ENET0 | First switch port | disabled by default |
ENET1 | Second switch port | enabled by default |
ENET2 | Third switch port | enabled by default |
ENET3 | Fourth switch port | disabled by default |
DC IN 5V | Power supply |
|
MCU Link DEBUG USB | Serial interface for logging | For development the MCU Link firmware was replaced with JLINK firmware provided by SEGGER. The interface provides, beside the debugging interface, a serial interface with the following settings:
This interface is not required for firmware update, only for optional serial logging. |
USB | Bootloader interface | The lower USB port (label USB_OTG1) is required for flashing the firmware. |
Building and deploying a firmware
Available build targets
Target | description | remarks |
---|---|---|
| flash image based on bare metal, no operating system | in the bare-metal configuration all code is run in a super loop. Some hardware specific code is run in interrupts. |
| ram based image for bare metal, no operating system | same applies as for the bare metal flash image since code needs to fit into RAM beside the data, not all example applications can be run with this configuration purpose is debugging during implementation |
| flash image based on FreeRTOS | all code is run in tasks, some minimal functionality is processed in interrupts |
|
| same applies as for the FreeRTOS flash image since code needs to fit into RAM beside the data, not all example applications can be run with this configuration purpose is debugging during implementation |
Requirements
In order to build the examples, a Linux machine with the following installations is required:
sudo apt-get install build-essential
sudo apt-get install python3
sudo apt-get install python-is-python3
sudo apt-get install python3-pip
sudo pip install spsdk
Beside that a toolchain is required:
sudo apt-get install gcc-arm-none-eabi
Unpacking the delivery
The archive should be unpacked into a dedicated folder, e.g.:
> mkdir rt1180_pnio
> cd rt1180_pnio
> unzip ../0210_250_PROFINET_?_??_?_RT1180.zip
Folder structure of the delivery
Folder | content |
|
---|---|---|
appl | source of example applications |
|
bsp | bsp for target platform |
|
ext | external 3rd party software components |
|
goal | goal framework |
|
goal_media | goal framework interfaces |
|
licenses | licenses of 3rd party software |
|
plat | platform specific drivers |
|
projects | Makefiles for example applications |
|
protos | protocol stacks |
|
tools | build system tools |
|
Building an example application
To build example applications, the following steps need to be done in the specific project folder:
Entering the example directory
Choosing the build platform
Building
When compiling, a call of the Build-Tool make is sufficient. However, a toolchain needs to be provided using a parameter:
The prefix specifies which compiler / linker / debugger is called by the make system. If the compiler is not within the search path, the full path needs to be specified, e.g:
If everything works as expected, an elf file is generated and the following log messages are shown:
Creating flash image
Within the same folder using the following command, the flashable image can be generated:
Preparing the board for flashing
Firmware update mode requires the following configuration on the dip switches of the board regarding boot mode:
Switch | Mode |
---|---|
1 | OFF |
2 | OFF |
3 | OFF |
4 | ON |
DIP-Switch configuration SW5
After correct setting of the DIP-Switches a reset is required. There is a reset button right beside the POWER switch.
Flashing
If firmware update is executed in a virtual machine, please consider that during firmware update (once the flash loader is loader) the USB device changes (vendor id and product id). Thus 2 USB devices need to be configured to be connected to the virtual machine.
First USB device:
vid: 1fc9, pid: 014c, rev: 0002, name: NXP SEMICONDUCTORS OO Blank RT Family [0002]
Secondary USB device:
vid: 15a2, pid: 0073, rev: 0073, name: FREESCALE SEMICONDUCTOR INC. USB COMPOSITE DEVICE [0002]
To add these devices, add filters under device->usb->usb settings by using the “plus” button. Since the devices switch during flashing, they need to be caught during this process:
connect the board
catch 1st USB device as filter
try flashing – do not reset the board
catch 2nd USB device as filter
The user needs rights to access USB devices, it is recommended to use root.
In some VM ware product versions it is enough to set "Connect device to foreground VM(M)", so that all USB device are automatically connected.
At first a Reset of the CPU is required. Perform this using the reset switch on the board.
The following command programs the firmware:
If programming of the firmware is successful, the following log is shown:
The script tries to run GDB, however this can be quit using Ctrl-D or typing “quit”.
Booting the firmware
Boot mode requires the following configuration on the dip switches of the board regarding boot mode:
Switch | Mode |
---|---|
1 | OFF |
2 | ON |
3 | OFF |
4 | OFF |
DIP-Switch configuration SW5
After correct setting of the DIP-Switches a reset is required. There is a reset button right beside the POWER switch.
Enable logging
By default, the binary is build without logging. If wished, this can be enabled. Please execute the following command within the project folder:
This will add additional lines to the goal_config.h header file of the application being built.
If the application is build now, an image with logging enabled is generated. Log messages will be put out on the USB UART (see chapter "Development Board”).
Further documentation
Please refer to port’s confluence page for further documentation on the protocol stacks and the examples:
GOAL
Network Protocol Stacks
CC-Link IE Field Basic
EtherNet/IP
Modbus/TCP
OPC-UA
CC-Link IE TSN
EtherCAT
PROFINET
Software & Tools
Industrial Communication Creator
Industrial Communication Creator
Industrial Communication Explorer