Thursday, 21 June 2018

VMWare shared drive vs Debian Stretch

This note is about problems with VMWare shared drives failing to mount.

My previous setup was VMWare Fusion 8 and Debian 8 (jessie), with the VMWare-recommended open-vm-tools. After upgrading to VMWare Fusion 10 and Debian 9 (stretch), the shared folder (~) on the Mac was no longer visible from Debian (~/mac, a symbolic link to /mnt/hgfs).

After looking here, I added this line to /etc/fstab:

vmhgfs-fuse /mnt/hgfs fuse defaults,allow_other 0 0

but rebooting hung, and invited me to log in as system to fix the problem.

Other posts in the reference stated that you need to mount to /mnt/hgfs/mac: so, edit the /etc/fstab line to

vmhgfs-fuse /mnt/hgfs/mac fuse defaults,allow_other 0 0

and the system rebooted OK.

Now, make ~/mac a link to /mnt/hgfs/mac:

ln -sf /mnt/hgfs/mac ~/mac

and all is well again.

Incidentally, I found that copy/paste between host and client no longer worked: another Google search led me to

sudo apt-get install open-vm-tools-desktop

Reboot, and on we go!

Thursday, 14 June 2018

Secondary Stack in Cortex GNAT RTS

In GNAT, the secondary stack is a construct used with indeterminate types. For example, if a function returns a String, it isn't possible for the caller to determine how much space to reserve for the result: instead, the called function allocates the amount of space required on the secondary stack, and on return the caller determines how much space to allocate on the normal (primary) stack, and pops the function's result from the secondary stack to there.

This note discusses how the secondary stack is managed in Cortex GNAT RTS for FSF GCC and GNAT Community Edition (was GNAT GPL).

Monday, 16 April 2018

Dependency plot

I wanted to get a dependency graph for a project, and found DePlo (Dependency Plotter). Great stuff, last updated in 2012 but still works with FSF GCC 8.0.1!

This sample is from my Analytical Engine project:

Wednesday, 14 March 2018

Tcl/Tk vs Trampolines

This is a note on a problem I encountered while working on the House Management example domain in my ColdFrame project.
TL;DR: If you write a Tcl callback function in Ada, declare it at library level.

Friday, 21 July 2017

Controlling a Crazyflie

This is a note on getting set up to work on a Crazyflie 2.0.

After unpacking, testing and assembling the drone, you need to get some software to talk to it.

Monday, 13 February 2017

GDB vs macOS Sierra

We probably feel downhearted if we need to use the debugger to find out what's wrong with our Ada code.

Under those circumstances, we feel even more frustrated if the debugger doesn't work!

This is exactly what has happened with gdb and macOS Sierra.

Wednesday, 12 October 2016

MPU9250, continued

This is a note on building support for the MPU9250 9-axis chip in the AdaPilot project (the AdaRacer hardware). It continues this report.