Tag: firmware

lzoDSO – Firmware Documentation

Posted by June 12, 2013

oscilloscopeMoved form using Doxygen 1.7.1 (comes with Debian 6) to Doxygen 1.8.4 (build from sources) for the lzoDSO firmware documentation. Looks much nicer.

Still, there is a problem with the documentation (unrelated to doxygen). All code that is linked to the project repository using svn:externals properties is somehow not covered (still investigating). I think this is somehow related to the way the Bitten slave (build slave of my CI setup) does the automated build (in which doxygen gets executed).

If you ever had something similar, please let me know (via comment or Twitter).

lzoDSO – Status Update

Posted by June 3, 2013

oscilloscopeWhat happened in the days past:

  1. moved prototype-a branch to trunk of our repository (finally!)
  2. registered lzoDSO project at Ohloh
  3. started moving legacy code out of the firmware to replace it with code that has been programmed test-driven
  4. created a minimal project homepage

lzoDSO – Documentation

Posted by May 27, 2013

oscilloscopeI have set up a routine that automates the generation of documentation for the prototype firmware on every commit to the repository.

The documentation is generated using Doxygen, which scans for comments in the source files and compiles into one structured document. The result is available here.

lzoDSO – legacy firmware … evolving

Posted by May 22, 2013

oscilloscopeYeah! We have finally managed to fix some stupid things, related the the firmware used for our lzoDSO scope. There where files missing (which had been referenced by the Makefile but where outside of the projects repository) and loads of files in either the wrong place or simply cruft.

The files have now been added (which should allow anyone to build the firmware) and things have been cleaned up slightly. There is still much work, so be sure you will find spots in the source that have a smell. I have also documented the fuse-bits that are configured in the micro controller used.

Ah .. note, after having the missing files in the project, these “sub-projects” have their own dependency which is CppUTest in that case (this is a dependency to be proud of I think). So make sure you have CppUTest on your machine and your users environment set up with the corresponding variables (see the Software page in the lzoDSO wiki for details on how to setup the build environment).

Read “Stop Writing So Much Firmware”

Posted by April 17, 2013

Just read an very nice article by James Grenning titled “Engineers and Programmers, Stop Writing So Much Firmware” on software design with regards to embedded system and this piece of software embedded folks call firmware.

He makes the point that business logic must be decoupled from technological implementation dependencies very nicely. This wisdom is nothing new but still you don’t see it used very often in the real world (sadly).

My conclusions from this reading are basically:

  • firmware should be designed with a systems software aspect in mind (not application software)
  • decouple any business logic from implementation technology (okay, this is an obvious one)

I think especially the first point is one I’ll be able to apply to my  prototype scope firmware.

lzoDSO – legacy firmware reanimated

Posted by April 12, 2013

After preparing a somewhat more modest presentation of what is already existing from the projects hardware and software (we now call it the prototype), we have finally taken the old “legacy” (no tests) firmware sources and made them work (without having to change anything) on the ATmega644 micro controller board we use with the prototype setup.

Still, there is so much missing but before adding more functionality to the firmware we will try to replace part by part with code that is developed in a “test first” fashion to give us a stable base to work on. But before that can happen will need to refactor some sections of the sources in order to make them testable.

Enough for today…maybe

lzoDSO – hardware prototype

Posted by April 11, 2013

IMG_0257_modified-small
lzoDSO hardware prototype

Recently I have been working on my oscilloscope project. Documenting ideas, digging out requirements and restructuring the whole projects documentation wiki. While doing so I realized that the page was totally confusing to new visitors since it does not say that there is no finished scope yet (even though there is a picture of one). What one can see on the pictures is actually a prototype. Until now we did not explicitly say so. This is NOT the final thing.

To address that issue we added a Status section to the start page of the wiki that clarifies the projects state.

Now the interesting part: We created a new page for the prototype which is linked on the wikis start page and moved existing files related to the components of the prototype from /trunk to /branches/prototype-a.

Next step will be to take the legacy firmware we have and adjusted it to make it run on the prototype hardware. When the firmware is ported (basically adjust pin mappings, enable/disable functionality) we will use is as the starting point to get the code incrementally refactored until we replaced everything with test-driven code.