Flash reading

No, that is not correct.

The final parameter of adl_flhWrite is a u8* pointer - it is the address of the start of the data to write.

Strictly, it would be more appropriate if this were a void* pointer - see: Garbage when reading flash - #8 by awneil