diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/bname.c b/bacnet-stack/ports/bdk-atxx4-mstp/bname.c index f62eb0b1..ac04cfe7 100644 --- a/bacnet-stack/ports/bdk-atxx4-mstp/bname.c +++ b/bacnet-stack/ports/bdk-atxx4-mstp/bname.c @@ -163,6 +163,8 @@ static bool bacnet_name_save( char *str, uint8_t length) { + uint8_t buffer[NV_EEPROM_NAME_SIZE] = {0}; + uint8_t i = 0; if (bacnet_name_isvalid(encoding, length, str)) { eeprom_bytes_write( @@ -171,10 +173,13 @@ static bool bacnet_name_save( eeprom_bytes_write( NV_EEPROM_NAME_ENCODING(offset), (uint8_t *)&encoding, 1); + for (i = 0; i < length; i++) { + buffer[i] = str[i]; + } eeprom_bytes_write( NV_EEPROM_NAME_STRING(offset), - (uint8_t *)str, - length); + &buffer[0], + NV_EEPROM_NAME_SIZE); return true; } @@ -274,7 +279,7 @@ void bacnet_name_init( char *default_string) { (void)bacnet_name_save(offset, CHARACTER_UTF8, - default_string, strlen(default_string)); + default_string, strlen(default_string)); } void bacnet_name(