Updates

08/11/23 Added instructions for having a project with multiple build specifications.

1   The board

Microzed with MZ_APO base board

The board is based on MicroZed board with Xilinx Zynq-7000 System on Chip. MicroZed board is extended with the MZ_APO board containing connectors, LEDs, button, display and other peripherals. For the PSR course, we will only need the connector for connecting the motors.

For more information, please see:

2   Boards with physical access

The boards are stored in room KN:E-23 in a small cabinet. You can get the key for the cabinet at building's E reception desk. The instruction in this section tells how to connect and use the board.

2.1   Connecting the board

To work with the board you need:

  1. The board.
  2. Power supply (5 – 24 V).
  3. USB cable type AB for serial console.
  4. Ethernet connection to university network. Each computer in KN:E-23 has one Ethernet cable next to the monitor.

To see the board's console, start a serial terminal program (e.g. gtkterm) and set it up for serial port ttyUSB0 and baudrate 115200. You can save this configuration under the name default so that it is loaded automatically when gtkterm starts next time.

2.2   Booting

The VxWorks kernel image is loaded from the network using the TFTP protocol. In the lab KN:E-23 there are no other requirements. VxWorks is just boots after connecting the board to the network and to the power supply.

After VxWorks is ready to be used, you can see a similar screen in the serial terminal as in the simulator:

GtkTerm with booted VxWorks on the MZ_APO board

2.3   Boot troubleshooting

In case that the board fails to boot into VxWorks, i.e., following prompt appears on your serial terminal:

Zynq>

Try to reboot the board by pressing the RST button on the board, or by using the reset command. The serial terminal stays open so you can observe the booting sequence.

The following sections shows the possible issues and their appearance on the terminal.

2.3.1   Unplugged Ethernet cable

ethernet@e000b000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Copying Linux from SD to RAM...
reading uImage
** Unable to read file uImage **
Zynq>

2.3.2   Wrong (or non-existent) network connection

ethernet@e000b000 Waiting for PHY auto negotiation to complete.. done
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
BOOTP broadcast 6
BOOTP broadcast 7
BOOTP broadcast 8
BOOTP broadcast 9
BOOTP broadcast 10
BOOTP broadcast 11
BOOTP broadcast 12
BOOTP broadcast 13
BOOTP broadcast 14
BOOTP broadcast 15
BOOTP broadcast 16
BOOTP broadcast 17

Retry time exceeded
Copying Linux from SD to RAM...
reading uImage
** Unable to read file uImage **
Zynq>

2.4   Connecting Workbench IDE to the board

  1. Create a new connection to the target in the WindRiver Workbench. In Remote Systems window click an icon to create a new connection. In the toolbar drop-down list, select New Connection...,

  2. In the next dialog, fill in the IP address of the target computer, specify the Kernel Symbol File as /opt/psr/mzapo-image/default/vxWorks.sym. Then press Finish.

    Please, check your IP address by the ifconfig command.

    ./new-connection.png
  3. Now, the connection is ready. You can use it the same way as you worked with the simulator. The only difference is that instead of closing the simulator, you have to reboot the target machine (by pressing the reset button on the board).

3   Boards with remote access

Note

Currently (10/2022), all boards are in KN:E-23 (lab room) and no remote access is provided.

4   Compiling and running your programs

4.1   Creating a project from scratch

To run your program on the board, create a new project and set it up as follows.

In the Project Setup dialog select Project context based on an image project. Then select the project at /opt/psr/mzapo-image/mzapo-image.wpj (use the Browse button).

./project-setup.png ./select-image-project.png

4.2   Adding a build specification to an existing project

If your project is already created you can add the MZAPO board to project's build specifications.

Navigate to (Right click on project) > Properties > VxWorks Info and add new context by clicking onto 'Add Context...'. In the dialog window select the same option as above.

This automatically adds all build specifications defined in the context.

./add-build-specification.png

4.2.1   Selecting an active build specification

You can switch between enabled build specifications either in the Project Properties window, or using menu (Right click on project) > Build > Set Active Build Spec.... Workbench builds the project only according to the active build specification!

./select-build-specification.png