Traceability from specification to source code?
Sebastian Huber
sebastian.huber at embedded-brains.de
Fri Apr 17 14:06:11 UTC 2020
Hello,
with the pre-qualified build of RTEMS
https://lists.rtems.org/pipermail/devel/2020-April/059445.html
I try out the following approach. I run Doxygen on the set of
pre-qualified files to produce the documentation and a tagfile:
# The TAGFILES tag can be used to specify one or more tag files. For
each tag
# file the location of the external documentation should be added. The
format of
# a tag file without this location is as follows:
# TAGFILES = file1 file2 ...
# Adding location for the tag files is done as follows:
# TAGFILES = file1=loc1 "file2 = loc2" ...
# where loc1 and loc2 can be relative or absolute paths or URLs. See the
# section "Linking to external documentation" for more information about
the use
# of tag files.
# Note: Each tag file must have a unique name (where the name does NOT
include
# the path). If a tag file is not located in the directory in which
doxygen is
# run, you must also specify the path to the tagfile here.
The tagfile is in XML and contains things like this:
<member kind="function">
<type>RTEMS_INLINE_ROUTINE uint64_t</type>
<name>_Watchdog_Ticks_from_seconds</name>
<anchorfile>group__RTEMSScoreWatchdog.html</anchorfile>
<anchor>gae368bd39a2a612b0e7701d954d363ce6</anchor>
<arglist>(uint32_t seconds)</arglist>
</member>
In the specification, I place a reference like this:
ref:
- kind: function
name: _Watchdog_Ticks_from_seconds
I can then use the tagfile to lookup this reference. With the
information in the tagfile, I can generate additional documentation
content, for example:
/**
* @fn RTEMS_INLINE_ROUTINE uint64_t _Watchdog_Ticks_from_seconds
(uint32_t seconds)
*
* bla blub
*/
In a second Doxygen run, this information is added to the
_Watchdog_Ticks_from_seconds() documentation:
Converts the seconds to ticks.
Parameters
seconds The seconds to convert to ticks.
Returns
seconds converted to ticks.
bla blub
The benefits of this approach is that we don't have to modify the RTEMS
sources for the specification traceability and the references in the
specification can be done at a high level without a lot of details.
More information about the devel
mailing list