Skip to content

Commit ecb6e6e

Browse files
author
Cruz Monrreal
authored
Merge pull request #8483 from paul-szczepanek-arm/eeprom-fix
BLE: write size first when writing an eeprom message
2 parents 93c5573 + d5edd3f commit ecb6e6e

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

features/nfc/nfc/NFCEEPROM.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,8 @@ class NFCEEPROM : public NFCTarget, public NFCEEPROMDriver::Delegate {
126126
nfc_eeprom_idle,
127127

128128
nfc_eeprom_write_start_session,
129-
nfc_eeprom_write_write_bytes,
130129
nfc_eeprom_write_write_size,
130+
nfc_eeprom_write_write_bytes,
131131
nfc_eeprom_write_end_session,
132132

133133
nfc_eeprom_read_start_session,

features/nfc/source/nfc/NFCEEPROM.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,8 @@ void NFCEEPROM::on_session_started(bool success)
138138
handle_error(NFC_ERR_CONTROLLER); // An EEPROM is not really a controller but close enough
139139
return;
140140
}
141-
_current_op = nfc_eeprom_write_write_bytes;
142-
continue_write();
141+
_current_op = nfc_eeprom_write_write_size;
142+
_driver->write_size(ac_buffer_reader_readable(&_ndef_buffer_reader));
143143
break;
144144

145145
case nfc_eeprom_read_start_session:
@@ -272,10 +272,8 @@ void NFCEEPROM::on_size_written(bool success)
272272
return;
273273
}
274274

275-
// End session
276-
_current_op = nfc_eeprom_write_end_session;
277-
_operation_result = NFC_OK;
278-
_driver->end_session();
275+
_current_op = nfc_eeprom_write_write_bytes;
276+
continue_write();
279277
break;
280278
case nfc_eeprom_erase_write_max_size:
281279
if (!success) {
@@ -371,9 +369,10 @@ void NFCEEPROM::continue_write()
371369
// Continue writing
372370
_driver->write_bytes(_eeprom_address, ac_buffer_reader_current_buffer_pointer(&_ndef_buffer_reader), ac_buffer_reader_current_buffer_length(&_ndef_buffer_reader));
373371
} else {
374-
// Now update size
375-
_current_op = nfc_eeprom_write_write_size;
376-
_driver->write_size(_eeprom_address);
372+
// we are done
373+
_current_op = nfc_eeprom_write_end_session;
374+
_operation_result = NFC_OK;
375+
_driver->end_session();
377376
}
378377
}
379378

0 commit comments

Comments
 (0)