>> Then, I assume that for using the current data16 no address approach, one >> should write all the registers in serial fashion, with their reset values >> for preventing the initialization routine to write trash to the registers in >> between. Yes. >> Still another problem is the array count. The system right now counts all >> the elements, because the macros save in a sparse array. > About counting there is no problem, as it can be simply adjusted accordingly. Right. > About the problem of the garbage, is the default behaviour of the linker / > compiler to fill the empty elements with zeros? The C standard guarantees that the non-initialised members of a partially initialised statically allocated integer array are initialised to zero. C99 Section 6.7.8.10 subclause 2 about arithmetic types. What comes to automatically allocated arrays, we should avoid them as we are running in a very limited RAM space. --Pekka