Automatic Documentation Generation: Doxygen with Processor Expert

One really cool thing with Processor Expert is: it does not only generate the source code for me, it generates as well documentation :-). I’m a believer of the ‘single source’ approach: if I have to document a software project, then the software itself shall be the source of the documentation. And for this I love Doxygen: see “5 Best Eclipse Plugins: #1 (Eclox with Doxygen, Graphviz and Mscgen)“. Doxygen is a compiler which compiles my source files, and instead of object files it creates documentation files for me :-).

Pin Allocation Report

Pin Allocation Report

Processor Expert Documentation

With the latest Processor Expert releases, it creates by default documentation files which can be used by Doxygen:

Processor Expert Documentation Files

Processor Expert Documentation Files

To use it, I need Doxygen and Eclox (the Eclipse Doxygen plugin) installed. How to do this is described in “5 Best Eclipse Plugins: #1 (Eclox with Doxygen, Graphviz and Mscgen)“. Basically this means installing Doxygen plus the Eclox plugin into Eclipse.

Generating Documentation with Doxygen

The first time I generate documentation with Eclox/Doxygen, I need to choose the .doxyfile which has all the settings:

Choosing Doxyfile

Choosing Doxyfile

Then select the Doxygen configuration file and press OK:

Choosen Doxyfile

Choosen Doxyfile

This then kicks off the Doxygen compiler to generate the documentation:

Generating Documentation

Generating Documentation

This generates the documentation in their folders:

Generated Documentation

Generated Documentation

As you can see, it creates html, LaTeX and RTF documentation. This can be configured in the doxygen settings: double click on the .doxyfile to open the editor:

Eclox Doxygen Settings Editor View

Eclox Doxygen Settings Editor View

Opening the html/index.html file shows the root of the documentation, where I can get the memory map:

Generated Memory Map

Generated Memory Map

Or such as the pin muxing table:

Pin Allocation Information

Pin Allocation Information

Summary

Doxygen/Eclox is something I already use for a very long time. Processor Expert creates in the recent versions (e.g. Driver Suite 10.4 or later, or in Kinetis Design Studio) already Doxygen configuration files and extra information like Pin Allocation reports or Muxing tables which is very helpful. There are still some minor Doxygen glitches in the generated files which I’m going to report, but otherwise this is very useful to me already.

Happy Documenting 🙂

3 thoughts on “Automatic Documentation Generation: Doxygen with Processor Expert

  1. Hi,

    I find your website very useful and very instructive for all matters related to Kinetis devices!
    I particularly like the explanation about doxygen and eclox.
    However, I do have a question.
    I’m using a processor (KL05Z) were pin allocation is not supported. Would there be a way to hack this functionality into the documentation?

    Also, I realised that your beans do not follow the doxygen standard. Do you plan on modifying them (little by little, I don’t mean right now!) them to comply with it?

    Anyway, very nice website, keep up the good work, it’s simply amazing! (And the best source of information around on Freescale MCU!).

    Sincerely,

    gromain

    Like

    • Are you using CodeWarrior or Kinetis Design Studio for the KL05Z?
      As for using doxygen in my components: I have done this for some, but because the Bean Wizard does not support doxygen formatting automatically, it is a manual process, taking a lot of time. In short, I simply did not had the bandwidth. But all the sources are on GitHub: if you have the bandwidth, you could collaborate and add the comments in doxygen format?

      Like

      • I’m using Kinetis Design Studio.

        I perfectly understand the bandwidth problem, I’ll try and help when I have some spare time. I’ll see if I can do 2 or 3 a week, it should go down fast enough!

        Like

What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.