diff --git a/src/fs/otp.c b/src/fs/otp.c index 6984e0b..07c765c 100644 --- a/src/fs/otp.c +++ b/src/fs/otp.c @@ -51,7 +51,7 @@ int otp_write_data(uint16_t row, uint8_t *data, uint16_t len) { return otp_write_data_mode(row, data, len, true); } -static int otp_write_data_raw(uint16_t row, uint8_t *data, uint16_t len) { +int otp_write_data_raw(uint16_t row, uint8_t *data, uint16_t len) { return otp_write_data_mode(row, data, len, false); } @@ -60,6 +60,11 @@ uint8_t* otp_buffer(uint16_t row) { return (uint8_t *)p; } +uint8_t* otp_buffer_raw(uint16_t row) { + volatile uint32_t *p = ((uint32_t *)(OTP_DATA_RAW_BASE + (row*4))); + return (uint8_t *)p; +} + bool is_empty_otp_buffer(uint16_t row, uint16_t len) { return is_empty_buffer(otp_buffer(row), len); } diff --git a/src/fs/otp.h b/src/fs/otp.h index 4833d60..67cf751 100644 --- a/src/fs/otp.h +++ b/src/fs/otp.h @@ -26,8 +26,10 @@ #define OTP_KEY_1 OTP_TEST_ROW extern uint8_t* otp_buffer(uint16_t row); +extern uint8_t* otp_buffer_raw(uint16_t row); extern bool is_empty_otp_buffer(uint16_t row, uint16_t len); extern int otp_write_data(uint16_t row, uint8_t *data, uint16_t len); +extern int otp_write_data_raw(uint16_t row, uint8_t *data, uint16_t len); #elif defined(ESP_PLATFORM)