Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Building on Windows
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!
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.
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!