Garbage when reading flash

Not sure what your point is here?

Functions like adl_flhRead and adl_flhWrite are generic functions for writing any arbitrary data, of any arbitrary type - hence void* is the appropriate pointer to use.