Building on Windows

Chris McClelland edited this page Jul 9, 2017 · 3 revisions

Introduction

The UMDK tools will build natively on Windows, but currently it supports a command-line GDB only, since there is no easy way to get DDD running on Windows. There are several alternative options for GDB front-ends on Windows, like EclipseIDE and Visual Studio, but I lack the patience to make them work. Also, unlike the Linux build, this process will not get you a cross-compiler; you'll need to find an alternative 68000 toolchain installation (e.g Stef's SGDK), or make your own.

The Windows build really needs an owner, someone who has the patience to make it work and help other people on the mailing-list. Volunteers welcome!

Preparation

You'll need a Visual Studio installation. This is a free download from Microsoft, but it is rather large. If you don't intend to use it for development, an alternative option could be to install the Windows SDK v7.1. I have most recently tested with VS2015 on Windows 8.1 and SDK7.1 on Windows 7.

Installing the Build Infrastructure

Get the build infra from here: http://tiny.cc/msbiw (it's a ~4MiB download). If you get a "Join DropBox" pop-up, click "No thanks, continue to view" at the bottom. Now click "Download -> Direct Download". Open the zip-file, and copy the makestuff folder to C:\. Now run C:\makestuff\setup.exe and choose a compiler to use. The "C/C++ Compiler" dropdown should be populated with all the functional MSVC compilers you have installed. You can choose a compiler targeting x86 (i.e 32-bit) or x64 (i.e 64-bit). When you click "Create Shortcut", it will create a console link on your desktop. If you double-click it, you'll get a console window; everything else in this guide involves interacting with this console. You can copy stuff in the console to the clipboard by selecting some text and hitting <Enter>. You can paste from the clipboard by right-clicking into the console window.

Installing a Driver

Plug in your UMDK cart, and cancel any pop-ups you get from Windows. Now in a console window type zadig.sh. This will bring up a GUI that will help you install a driver. In the dropdown, choose "FPGALink/FX2 20140311", and then click "Install Driver".

Build the UMDK Tools

You can download and run a script to do the build like this:

wget --no-check-certificate -qO umdk-win.sh http://tiny.cc/umdk-win
(./umdk-win.sh 2>&1) > build.log

This will take five to ten minutes, so be patient. You can check that it finished correctly like this; you should see the same output:

chris@lappy$ ls -rt /bin | tail -15 | sort
flcli.exe
gdb-bridge.exe
gordon.exe
hackdump.exe
libargtable2.dll
libbuffer.dll
liberror.dll
libfpgalink.dll
libfx2loader.dll
libreadline.dll
libusb-1.0.dll
libusbwrap.dll
loader.exe
logread.exe
m68k-elf-gdb.exe
chris@lappy$

If you see a different output, you may find a clue as to what went wrong in the build.log file. If you can't figure it out, send it to the mailgroup and someone there will help.

Using GDB

Connect your UMDK cart, and open two console windows. In one, do this:

chris@lappy$ gdb-bridge -l 8000
UMDKv2 Bridge Tool Copyright (C) 2014 Chris McClelland

Waiting for GDB connection on :8000...

...and in the other, do this:

chris@lappy$ gdb.sh
Synopsis: gdb.sh <port> [<elfFile>]
chris@lappy$ gdb.sh 8000
GNU gdb (GDB) 7.7
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i686-pc-mingw32 --target=m68k-elf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
0x0042048c in ?? ()
(gdb) x/8i $pc
=> 0x42048c:    movem.l d0-d1/a0-a1, -(sp)
   0x420490:    movea.l 0xff068e, a0
   0x420496:    jsr (a0)
   0x420498:    movem.l (sp)+, d0-d1/a0-a1
   0x42049c:    rte
   0x42049e:    move.l 4(sp), d0
   0x4204a2:    bpl.w 0x4204a8
   0x4204a6:    neg.l d0
(gdb) stepi
0x00420490 in ?? ()
(gdb) x/8i $pc
=> 0x420490:    movea.l 0xff068e, a0
   0x420496:    jsr (a0)
   0x420498:    movem.l (sp)+, d0-d1/a0-a1
   0x42049c:    rte
   0x42049e:    move.l 4(sp), d0
   0x4204a2:    bpl.w 0x4204a8
   0x4204a6:    neg.l d0
   0x4204a8:    move.l 8(sp), d1
(gdb)

Happy hacking! Contributions (e.g "how to set up Visual Studio to use a cross-compiler and a GDB remote-debugger") welcome!

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.