Oct 14

Manipulating directories in C++ under Linux

Currently working on Nand2Tetris project 7, I ran into the need to accept a directory name as an argument to a C++ application. I looked for a standard way to deal with directories in C++11, but that is unfortunately not part of the standard. Since I am running Linux, I do not have to suffer that much. I implemented a solution based on the Linux/POSIX API calls opendir()/readdir()/closedir() to list files in the directory, and realpath() to get the absolute path (since I needed to extract the directory name regardless of how it was pointed to).
I ended up with two relatively simple static member functions. I could probably have made them even more general, but this is good enough for me:

and:

You will find information about the necessary #includes in your favorite man page database.
If you spot a bug, please leave a reply.

Jun 21

Starting talking to STM32F4-Discovery from Linux

Used host:

First, I add the udev rule corresponding to the ST-LINK/V2 interface in the newly created file /etc/udev/rules.d/99-stlink.rules (thanks PulkoMandy):

Then, I trigger the new udev rule:

Then I install openocd 0.8.0-2 from the Community repository, resulting in:

Then, I connect the board’s Mini-USB connector to my computer. It will both give power to the board, and make the ST-LINK/V2 interface accessible. The ST-LINK/V2 interface appears as a USB device:

Then, I say hello to my little board:

What more would a nerd require to be happy? :-)