add __packed option to make armcc compiler happy with unaligned address of int/float/double