Books about software are best enjoyed with software.
In a book with views, there may be different pieces of software associated with the different views.
However, a reader may still like to enjoy one software package, covering all the views, for a given book.
This approach has been taken for the books produced here. As a first example, a software package for the book Into Embedded has been created.
The software package can be downloaded as a zip-file from the Book Software page.
But wait, there’s more!
As you might have guessed, the actual content of the books is generated, automatically, from some kind of template. I use XML for the template and Python for the book generation program.
And since a computer program processes the XML, and generates html for the web and epub or mobi for the e-book variants, we can take advantage of this and let the computer program perform other tasks as well.
As an example, all figures showing program code are extracted from real programs. The source code of a program from which a figure shall be extracted is annotated, with markup showing where each figure starts and ends. The result of this can be seen, e.g. in Figure 2, which shows startup code for a processor.
The corresponding source file for this figure is found in the file startup.s.
While the book-generating program processes the XML, it can also make a list of all software files needed. Such a list is shown on the Book Software page. You might note that there are links, inside the list, to Figures within the book and also to the actual software files used.
The software can be tried out. It can be built and it can be executed. It requires some tools, like compilers and linkers, and also a simulator (QEMU) is used.
The software covers the Bare Metal chapter of the book, and it shows how to make a small program that can run entirely on its own, i.e. it can run without the help of an operating system.
Here is a direct download link.
And yes, there is a README-file inside (with a HOWTO for building the software, and with hints on how to download and install the necessary tools)
The bookmaker (a.k.a Ola)