ZPP

Zephyr C++ Framework

ZPP
/img/zpp_logo.png

Warning: ZPP is very much experimental/alpha quality, and non backwards compatible changes can (and will) be made at any time.

ZPP is a C++ wrapper for Zephyr so the OS API’s can be used more easily from C++.

It is not the intention of ZPP to implement a std:: library for Zephyr. ZPP tries to wrap the Zephyr C-API in C++20 without causing to much runtime and/or memory overhead.

ZPP tries to use RAII for things like locking and unlocking mutex’s comparable to the standard C++ library. Different from the standard C++ library ZPP does not use exceptions and it tries to not use dynamic memory allocation.

[Read More]

Lab Equipment

The right tools for the right job

Lab Equipment

Not even the best carpenter will be able to just “think” a nail into the wood, without a hammer the nail isn’t going anywhere.

Different from software engineers that work on things like web, office, or mobile applications, an embedded software engineer needs some more tools than just a text editor.

Debuggers

Most projects run on hardware that is to small to run things like GDB or Visual Studio on the actual hardware, so an external debugger is needed.

[Read More]

Rockstar

The Art of Code

Rockstar

To understand what this is about you absolutely should watch Dylan Beattie’s brilliant presentation about The Art of Code.

Now you know Rockstar is a computer programming language designed for creating programs that are also hair metal power ballads.

The famous Fizzbuzz program looks like this.

Midnight takes your heart and your soul
While your heart is as high as your soul
Put your heart without your soul into your heart

Give back your heart


Desire is a lovestruck ladykiller
My world is nothing
Fire is ice
Hate is water
Until my world is Desire,
Build my world up
If Midnight taking my world, Fire is nothing and Midnight taking my world, Hate is nothing
Shout "FizzBuzz!"
Take it to the top

If Midnight taking my world, Fire is nothing
Shout "Fizz!"
Take it to the top

If Midnight taking my world, Hate is nothing
Say "Buzz!"
Take it to the top

Whisper my world

On the rockstar website you can try it online. There are several implementations of Rockstar interpreters and transpilers, but most only do a subset of what Rockstar offers. So I wrote my own Rockstar to C++ transpiler in C++, that generates C++ code that can be compiled with a C++17 compiler to a native executable.

[Read More]

Wireshark

Dissectors for Wireshark

Wireshark

What is Wireshark? To answer this it is best to quote the description from the Wireshark website.

Wireshark is the world’s foremost and widely-used network protocol analyzer. It lets you see what’s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998.

[Read More]

Open DMX USB

Linux Driver for ENTTEC Open DMX USB dongle

Open DMX USB

Open DMX USB is an open USB to DMX dongle hardware design developed by Enttec. The Open in Open DMX USB refers to the fact that everybody is free to use the design and produce its own USB DMX Dongle without paying any licenses. Since this fits the Linux philosophy I wrote a small Linux 4.X kernel driver to make it possible to use the dongle under Linux.

Getting the Driver

The source code of the driver is now hosted as dmx_usb_module on GitHub. You can use the following git command to clone and compile the sources

[Read More]

MPC8xx BDM

MPC8XX BDM Debugging Library

Warning: This project is from the last century (round 1999) and is probably not useful anymore (who still has a PC with a lpt port?), but I keep it here for historic reasons.

The MPC8XX Library is a library to control a Motorola PowerPC processor of type MPC8xx via its BDM debug port. It is based on the GDB patch written by Frank Przybylski of VAS GmbH. The main difference with the GDB patch by Frank Przybylski is that the BDM functionality is put in a shared library and so can also be used by other applications like, for example, a FLASH loader or an automated board test program.

[Read More]
gdb  foss  linux