Bare Metal Programming Tool Kit
|
Bmptk is a C++ library and build tool for bare-metal use on 32-bit embedded systems. Bare-metal refers to the situation that there is only the application running. This application has full control of the hardware, and is running without the support of a separate operating system. Operating system functionality can still be present, but must be in the form of libraries, statically linked into the application.
Bmptk tries to make your application portable across various targets, rather than trying to make optimal use of a specific target. Hence the features of the target are used trough abstractions. An LCD screen for instance is a bmptk::graphics::frame instance, which has (except for its size and color depth) the same properties on all targets that have a screen (or even more than one, like the NintendoDS has). Similarly, static classes are used to represet I/O pins and ports in a uniform but fast way.
Bmptk uses a subset of C++, which excludes features that don't match small targets:
Bmptk does not include a toolchain (compiler, linker etc.). Instead it relies on an external GCC toolchain that is invoked by the bmptk makefile. Different targets rquire different verious of the GCC toolchain.
The bmptk makefile can be used from the command line, or it can be called from an editor or IDE.
The bmptk code license is the MIT 'expat' license, which basically means that you can do everything you want with this software, except that when you re-distribute the source, it must be under that same license. What you do with your application that uses bmptk is completely up to you, without any strings attached.
Bmptk is very much 'work in progress'. You can download the bleeding edge code from google code, or get it as a git repository:
or you can download the latest release as zip file. The documentation you are reading now is in the zip file, or you can read it online. (The documentation is not in the repository, only the Doxygen sources to it are.)
Bmptk is used in a number of courses I give at the Hogeschool Utrecht.
If you somehow found and used bmptk I am interested to hear your experiences and comments. You can reach me at wouter@voti.nl.