* don't reference sections that don't exist (typically happens for
registers that don't contain any fields and are interpreted
numerically.
* allow templates to use override_backref for surpressing the list of
registers that use it
* print doc for fields even when it uses values or only exports a mask
* allow fields to define their own mask; those fields have to define
their values explicitly too, and don't have to provide a shift
* don't print a "No values defined for the field" lines, as there's
always a mask in that case by now.
registers that have the same structure can now use shared value
definitions. the abstraction is kept active through the header
generation; that is, no cartesian product code is generated.
the header file genertion mechanism here is designed to:
* use human readable source data that is better structured and less
repetitive than the header files themselves
* produce same quality header files than the manual process of writing
them. some features were not yet enabled to show that the existing
headers didn't change. (look at emu.h's differences. whitespace
switched from tabs to spaces as they are easier to handle, use
--color-words to see the few differences that stemmed from
inconsistencies in the original file.)
* be less tedious and thus error prone when doing large modifications
(eg, i forgot to add _MASK to bitfields, would like to enable
bitbanding acces, and to overhaul the naming in doxygen modules)
Changed the license to LGPL3+ for some makefiles that got ommited in the
previous big patch commit.
Corrected a find and replace error in a linker file.
this follows the license change of the master branches in [43561de]. all
files whose copyright is not my own are originally based on files whose
license has been changed in master.
the expression used for the conversion was:
sed -i -e 's/This program is free software: you can redistribute/This library is free software: you can redistribute/g' -e 's/under the terms of the GNU General Public License as published/under the terms of the GNU Lesser General Public License as published/' -e 's/This program is distributed in the hope that/This library is distributed in the hope that/g' -e 's/You should have received a copy of the GNU General/You should have received a copy of the GNU Lesser General/' -e 's/along with this program. If not/along with this library. If not/' -e 's/GNU General Public License for more details/GNU Lesser General Public License for more details/' */**/efm32/**/*(.)
[43561de] 43561de329
along with the actual implementation comes a first attempt to better
structure the doxygen groups. putting all the groups in a bigger one
makes it easier to reference them from the file itself, and makes the
structure clearer on the module page.
actually, it wasn't a bug; the compiler just optimized a statement away
until it was declared volatile. inserting a no-op assembler instruction
to make it more obvious what's going on
* define weak symbol for ${irq_name}_isr
* put them in the rom vector table
* declare reset_vector weak in case someone wants to insert code there
* remove null_handler (null handlers should be only requested
explicitly, and finding out why the chip gets stuck is easier than
determining whether or not a no-op interrupt handler was executed)
includes minor refactoring in example code and modification of how the
generic and the tinygecko specific vector.h go together (bringing it in
line with stm32/f1's memorymap.h)