diff --git a/platform/drivers/NVM/nvmem_MDUV3x0.c b/platform/drivers/NVM/nvmem_MDUV3x0.c index f8158618..bfebaf0f 100644 --- a/platform/drivers/NVM/nvmem_MDUV3x0.c +++ b/platform/drivers/NVM/nvmem_MDUV3x0.c @@ -18,7 +18,7 @@ * along with this program; if not, see * ***************************************************************************/ -#include +#include #include #include #include @@ -244,6 +244,9 @@ int nvm_readChannelData(channel_t *channel, uint16_t pos) W25Qx_readData(readAddr, ((uint8_t *) &chData), sizeof(mduv3x0Channel_t)); W25Qx_sleep(); + // Check if the channel is empty + if(wcslen((wchar_t *) chData.name) == 0) return -1; + channel->mode = chData.channel_mode - 1; channel->bandwidth = chData.bandwidth; channel->admit_criteria = chData.admit_criteria; @@ -337,6 +340,8 @@ int nvm_readZoneData(zone_t *zone, uint16_t pos) W25Qx_readData(zoneExtAddr, ((uint8_t *) &zoneExtData), sizeof(mduv3x0ZoneExt_t)); W25Qx_sleep(); + // Check if zone is empty + if(wcslen((wchar_t *) zoneData.name) == 0) return -1; /* * Brutally convert channel name from unicode to char by truncating the most * significant byte