/* Read data from NVM. 
Another requirement is the ability to read unaligned blocks of data with single byte precision. */
void NVMHAL_Read(uint8_t *pAddress, void *pObject, uint16_t len)
/* Read data from NVM. 
Another requirement is the ability to read unaligned blocks of data with single byte precision. */
void NVMHAL_Read(uint8_t *pAddress, void *pObject, uint16_t len)
{
  uint8_t *pObjectInt = (uint8_t*) pObject;
  while (0 < len)
  {
    *pObjectInt = *pAddress;
    ++pObjectInt;
    ++pAddress;
    --len;
  }
}