mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-26 09:45:16 +03:00
EEPROM on Sky9x
This commit is contained in:
parent
c6cf0f915e
commit
1964ac207c
14 changed files with 476 additions and 571 deletions
|
@ -81,3 +81,29 @@ void eeLoadModelHeaders()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void eeReadAll()
|
||||||
|
{
|
||||||
|
// TODO merge eepromOpen and eepromCheck
|
||||||
|
if (!eepromOpen() || eepromCheck() < 0 || !eeLoadGeneral()) {
|
||||||
|
eeErase(true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
eeLoadModelHeaders();
|
||||||
|
}
|
||||||
|
|
||||||
|
stickMode = g_eeGeneral.stickMode;
|
||||||
|
|
||||||
|
#if defined(CPUARM)
|
||||||
|
for (uint8_t i=0; languagePacks[i]!=NULL; i++) {
|
||||||
|
if (!strncmp(g_eeGeneral.ttsLanguage, languagePacks[i]->id, 2)) {
|
||||||
|
currentLanguagePackIdx = i;
|
||||||
|
currentLanguagePack = languagePacks[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(CPUARM)
|
||||||
|
eeLoadModel(g_eeGeneral.currModel);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
|
@ -55,7 +55,6 @@ void eeDirty(uint8_t msk);
|
||||||
void eeCheck(bool immediately);
|
void eeCheck(bool immediately);
|
||||||
void eeReadAll();
|
void eeReadAll();
|
||||||
bool eeModelExists(uint8_t id);
|
bool eeModelExists(uint8_t id);
|
||||||
void eeLoadModelName(uint8_t id, char *name);
|
|
||||||
void eeLoadModel(uint8_t id);
|
void eeLoadModel(uint8_t id);
|
||||||
bool eeConvert();
|
bool eeConvert();
|
||||||
void eeErase(bool warn);
|
void eeErase(bool warn);
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -40,69 +40,48 @@
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
// States in Eeprom32_process_state
|
bool eeLoadGeneral( void ) ;
|
||||||
#define E32_IDLE 1
|
void eeDeleteModel( uint8_t id ) ;
|
||||||
#define E32_ERASESENDING 2
|
bool eeCopyModel(uint8_t dst, uint8_t src);
|
||||||
#define E32_ERASEWAITING 3
|
void eeSwapModels(uint8_t id1, uint8_t id2);
|
||||||
#define E32_WRITESENDING 4
|
|
||||||
#define E32_WRITEWAITING 5
|
|
||||||
#define E32_READSENDING 6
|
|
||||||
#define E32_READWAITING 7
|
|
||||||
#define E32_BLANKCHECK 8
|
|
||||||
#define E32_WRITESTART 9
|
|
||||||
extern uint8_t Eeprom32_process_state ;
|
|
||||||
extern uint8_t *Eeprom32_source_address ;
|
|
||||||
extern uint8_t Eeprom32_file_index ;
|
|
||||||
extern uint32_t Eeprom32_data_size ;
|
|
||||||
|
|
||||||
extern void end_spi(); // TODO not public
|
|
||||||
extern void ee32_process( void ) ;
|
|
||||||
extern bool eeLoadGeneral( void ) ;
|
|
||||||
extern void eeWaitFinished();
|
|
||||||
|
|
||||||
extern void eeDeleteModel( uint8_t id ) ;
|
|
||||||
extern bool eeModelExists(uint8_t id) ;
|
|
||||||
extern bool eeCopyModel(uint8_t dst, uint8_t src);
|
|
||||||
extern void eeSwapModels(uint8_t id1, uint8_t id2);
|
|
||||||
|
|
||||||
#define DISPLAY_PROGRESS_BAR(x)
|
#define DISPLAY_PROGRESS_BAR(x)
|
||||||
|
|
||||||
struct t_file_entry
|
|
||||||
{
|
|
||||||
uint32_t block_no ;
|
|
||||||
uint32_t sequence_no ;
|
|
||||||
uint16_t size ;
|
|
||||||
uint8_t flags ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
struct t_eeprom_header
|
|
||||||
{
|
|
||||||
uint32_t sequence_no ; // sequence # to decide which block is most recent
|
|
||||||
uint16_t data_size ; // # bytes in data area
|
|
||||||
uint8_t flags ;
|
|
||||||
uint8_t hcsum ;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern struct t_file_entry File_system[] ;
|
|
||||||
|
|
||||||
extern EEGeneral g_eeGeneral;
|
|
||||||
extern ModelData g_model;
|
|
||||||
|
|
||||||
extern uint8_t Spi_tx_buf[] ;
|
|
||||||
extern uint8_t Spi_rx_buf[] ;
|
|
||||||
|
|
||||||
void eeprom_write_enable();
|
|
||||||
uint32_t eeprom_read_status();
|
|
||||||
void read32_eeprom_data(uint32_t eeAddress, register uint8_t *buffer, uint32_t size);
|
|
||||||
uint32_t spi_PDC_action( register uint8_t *command, register uint8_t *tx, register uint8_t *rx, register uint32_t comlen, register uint32_t count );
|
|
||||||
|
|
||||||
#if defined(SDCARD)
|
#if defined(SDCARD)
|
||||||
const pm_char * eeBackupModel(uint8_t i_fileSrc);
|
const pm_char * eeBackupModel(uint8_t i_fileSrc);
|
||||||
const pm_char * eeRestoreModel(uint8_t i_fileDst, char *model_name);
|
const pm_char * eeRestoreModel(uint8_t i_fileDst, char *model_name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void loadGeneralSettings();
|
uint32_t loadGeneralSettings();
|
||||||
void loadModel(int index);
|
uint32_t loadModel(uint32_t index);
|
||||||
|
|
||||||
|
enum EepromWriteState {
|
||||||
|
EEPROM_IDLE = 0,
|
||||||
|
EEPROM_START_WRITE,
|
||||||
|
EEPROM_ERASING_FILE_BLOCK1,
|
||||||
|
EEPROM_ERASING_FILE_BLOCK1_WAIT,
|
||||||
|
EEPROM_ERASE_FILE_BLOCK2,
|
||||||
|
EEPROM_ERASING_FILE_BLOCK2,
|
||||||
|
EEPROM_ERASING_FILE_BLOCK2_WAIT,
|
||||||
|
EEPROM_WRITE_BUFFER,
|
||||||
|
EEPROM_WRITING_BUFFER,
|
||||||
|
EEPROM_WRITING_BUFFER_WAIT,
|
||||||
|
EEPROM_WRITE_NEXT_BUFFER,
|
||||||
|
EEPROM_ERASING_FAT_BLOCK,
|
||||||
|
EEPROM_ERASING_FAT_BLOCK_WAIT,
|
||||||
|
EEPROM_WRITE_NEW_FAT,
|
||||||
|
EEPROM_WRITING_NEW_FAT,
|
||||||
|
EEPROM_WRITING_NEW_FAT_WAIT,
|
||||||
|
EEPROM_OVERWRITE_OLD_FAT,
|
||||||
|
EEPROM_OVERWRITING_OLD_FAT,
|
||||||
|
EEPROM_OVERWRITING_OLD_FAT_WAIT,
|
||||||
|
EEPROM_END_WRITE
|
||||||
|
};
|
||||||
|
|
||||||
|
extern EepromWriteState eepromWriteState;
|
||||||
|
void eepromWriteProcess();
|
||||||
|
void eepromWriteWait(EepromWriteState state = EEPROM_IDLE);
|
||||||
|
bool eepromOpen();
|
||||||
|
bool eepromCheck();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -203,7 +203,7 @@ static void EeFsFree(blkid_t blk)
|
||||||
EeFsFlushFreelist();
|
EeFsFlushFreelist();
|
||||||
}
|
}
|
||||||
|
|
||||||
int8_t EeFsck()
|
int8_t eepromCheck()
|
||||||
{
|
{
|
||||||
ENABLE_SYNC_WRITE(true);
|
ENABLE_SYNC_WRITE(true);
|
||||||
|
|
||||||
|
@ -266,7 +266,7 @@ int8_t EeFsck()
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EeFsFormat()
|
void eepromFormat()
|
||||||
{
|
{
|
||||||
ENABLE_SYNC_WRITE(true);
|
ENABLE_SYNC_WRITE(true);
|
||||||
|
|
||||||
|
@ -288,7 +288,7 @@ void EeFsFormat()
|
||||||
ENABLE_SYNC_WRITE(false);
|
ENABLE_SYNC_WRITE(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool EeFsOpen()
|
bool eepromOpen()
|
||||||
{
|
{
|
||||||
eeprom_read_block((uint8_t *)&eeFs, 0, sizeof(eeFs));
|
eeprom_read_block((uint8_t *)&eeFs, 0, sizeof(eeFs));
|
||||||
|
|
||||||
|
@ -550,7 +550,6 @@ bool RlcFile::copy(uint8_t i_fileDst, uint8_t i_fileSrc)
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(SDCARD)
|
#if defined(SDCARD)
|
||||||
extern FIL g_oLogFile;
|
|
||||||
const pm_char * eeBackupModel(uint8_t i_fileSrc)
|
const pm_char * eeBackupModel(uint8_t i_fileSrc)
|
||||||
{
|
{
|
||||||
char *buf = reusableBuffer.modelsel.mainname;
|
char *buf = reusableBuffer.modelsel.mainname;
|
||||||
|
@ -1025,41 +1024,12 @@ void eeErase(bool warn)
|
||||||
}
|
}
|
||||||
|
|
||||||
MESSAGE(STR_EEPROMWARN, STR_EEPROMFORMATTING, NULL, AU_EEPROM_FORMATTING);
|
MESSAGE(STR_EEPROMWARN, STR_EEPROMFORMATTING, NULL, AU_EEPROM_FORMATTING);
|
||||||
EeFsFormat();
|
eepromFormat();
|
||||||
theFile.writeRlc(FILE_GENERAL, FILE_TYP_GENERAL, (uint8_t*)&g_eeGeneral, sizeof(EEGeneral), true);
|
theFile.writeRlc(FILE_GENERAL, FILE_TYP_GENERAL, (uint8_t*)&g_eeGeneral, sizeof(EEGeneral), true);
|
||||||
modelDefault(0);
|
modelDefault(0);
|
||||||
theFile.writeRlc(FILE_MODEL(0), FILE_TYP_MODEL, (uint8_t*)&g_model, sizeof(g_model), true);
|
theFile.writeRlc(FILE_MODEL(0), FILE_TYP_MODEL, (uint8_t*)&g_model, sizeof(g_model), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO merge this code with eeprom_arm.cpp one
|
|
||||||
void eeReadAll()
|
|
||||||
{
|
|
||||||
if (!EeFsOpen() ||
|
|
||||||
EeFsck() < 0 ||
|
|
||||||
!eeLoadGeneral())
|
|
||||||
{
|
|
||||||
eeErase(true);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
eeLoadModelHeaders();
|
|
||||||
}
|
|
||||||
|
|
||||||
stickMode = g_eeGeneral.stickMode;
|
|
||||||
|
|
||||||
#if defined(CPUARM)
|
|
||||||
for (uint8_t i=0; languagePacks[i]!=NULL; i++) {
|
|
||||||
if (!strncmp(g_eeGeneral.ttsLanguage, languagePacks[i]->id, 2)) {
|
|
||||||
currentLanguagePackIdx = i;
|
|
||||||
currentLanguagePack = languagePacks[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(CPUARM)
|
|
||||||
eeLoadModel(g_eeGeneral.currModel);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void eeCheck(bool immediately)
|
void eeCheck(bool immediately)
|
||||||
{
|
{
|
||||||
if (immediately) {
|
if (immediately) {
|
||||||
|
|
|
@ -116,8 +116,8 @@ extern EeFs eeFs;
|
||||||
#define BLOCKS_OFFSET (RESV-BS)
|
#define BLOCKS_OFFSET (RESV-BS)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int8_t EeFsck();
|
int8_t eepromCheck();
|
||||||
void EeFsFormat();
|
void eepromFormat();
|
||||||
uint16_t EeFsGetFree();
|
uint16_t EeFsGetFree();
|
||||||
|
|
||||||
#if !defined(CPUARM)
|
#if !defined(CPUARM)
|
||||||
|
@ -247,6 +247,10 @@ void loadGeneralSettings();
|
||||||
void loadModel(int index);
|
void loadModel(int index);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
bool eepromOpen();
|
||||||
|
void eeLoadModelName(uint8_t id, char *name);
|
||||||
|
bool eeLoadGeneral();
|
||||||
|
|
||||||
// For EEPROM backup/restore
|
// For EEPROM backup/restore
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
inline bool isEepromStart(const void * buffer)
|
inline bool isEepromStart(const void * buffer)
|
||||||
|
|
|
@ -244,10 +244,10 @@ void menuModelFlightModesAll(uint8_t event)
|
||||||
uint8_t att;
|
uint8_t att;
|
||||||
for (uint8_t i=0; i<MAX_FLIGHT_MODES; i++) {
|
for (uint8_t i=0; i<MAX_FLIGHT_MODES; i++) {
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
coord_t y = MENU_HEADER_HEIGHT + 1 + (i-s_pgOfs)*FH;
|
int8_t y = 1 + (1+i-s_pgOfs)*FH;
|
||||||
if (y<MENU_HEADER_HEIGHT+1 || y>(LCD_LINES-1)*FH+MENU_HEADER_HEIGHT-FH) continue;
|
if (y<1*FH+1 || y>(LCD_LINES-1)*FH+1) continue;
|
||||||
#else
|
#else
|
||||||
coord_t y = MENU_HEADER_HEIGHT + 1 + i*FH;
|
uint8_t y = 1 + (i+1)*FH;
|
||||||
#endif
|
#endif
|
||||||
att = (i==sub ? INVERS : 0);
|
att = (i==sub ? INVERS : 0);
|
||||||
FlightModeData *p = flightModeAddress(i);
|
FlightModeData *p = flightModeAddress(i);
|
||||||
|
@ -269,9 +269,9 @@ void menuModelFlightModesAll(uint8_t event)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p->fadeIn || p->fadeOut)
|
if (p->fadeIn || p->fadeOut) {
|
||||||
lcd_putc(LCD_W-FW-MENUS_SCROLLBAR_WIDTH, y, (p->fadeIn && p->fadeOut) ? '*' : (p->fadeIn ? 'I' : 'O'));
|
lcd_putc(LCD_W-FW-MENUS_SCROLLBAR_WIDTH, y, (p->fadeIn && p->fadeOut) ? '*' : (p->fadeIn ? 'I' : 'O'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
|
|
|
@ -170,7 +170,7 @@ void displayTimers()
|
||||||
// Main timer
|
// Main timer
|
||||||
if (g_model.timers[0].mode) {
|
if (g_model.timers[0].mode) {
|
||||||
TimerState & timerState = timersStates[0];
|
TimerState & timerState = timersStates[0];
|
||||||
uint8_t att = DBLSIZE | (timerState.val<0 ? BLINK|INVERS : 0);
|
LcdFlags att = DBLSIZE | (timerState.val<0 ? BLINK|INVERS : 0);
|
||||||
putsTimer(12*FW+2+10*FWNUM-4, FH*2, timerState.val, att, att);
|
putsTimer(12*FW+2+10*FWNUM-4, FH*2, timerState.val, att, att);
|
||||||
uint8_t xLabel = (timerState.val >= 0 ? MAINTMR_LBL_COL : MAINTMR_LBL_COL-7);
|
uint8_t xLabel = (timerState.val >= 0 ? MAINTMR_LBL_COL : MAINTMR_LBL_COL-7);
|
||||||
#if defined(CPUARM)
|
#if defined(CPUARM)
|
||||||
|
|
|
@ -83,8 +83,8 @@ void checkEeprom()
|
||||||
if (!usbPlugged()) {
|
if (!usbPlugged()) {
|
||||||
// TODO merge these 2 branches
|
// TODO merge these 2 branches
|
||||||
#if defined(PCBSKY9X)
|
#if defined(PCBSKY9X)
|
||||||
if (Eeprom32_process_state != E32_IDLE)
|
if (eepromWriteState != EEPROM_IDLE)
|
||||||
ee32_process();
|
eepromWriteProcess();
|
||||||
else if (TIME_TO_WRITE())
|
else if (TIME_TO_WRITE())
|
||||||
eeCheck(false);
|
eeCheck(false);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -131,18 +131,18 @@
|
||||||
#define NUM_XPOTS 3
|
#define NUM_XPOTS 3
|
||||||
#endif
|
#endif
|
||||||
#define TELEM_VALUES_MAX 32
|
#define TELEM_VALUES_MAX 32
|
||||||
#elif defined(CPUARM)
|
#elif defined(PCBSKY9X)
|
||||||
#define MAX_MODELS 60
|
#define MAX_MODELS 60
|
||||||
#define NUM_CHNOUT 32 // number of real output channels CH1-CH32
|
#define NUM_CHNOUT 32 // number of real output channels CH1-CH32
|
||||||
#define MAX_FLIGHT_MODES 9
|
#define MAX_FLIGHT_MODES 9
|
||||||
#define MAX_MIXERS 60
|
#define MAX_MIXERS 64
|
||||||
#define MAX_EXPOS 32
|
#define MAX_EXPOS 64
|
||||||
#define NUM_LOGICAL_SWITCH 32 // number of custom switches
|
#define NUM_LOGICAL_SWITCH 32 // number of custom switches
|
||||||
#define NUM_CFN 60 // number of functions assigned to switches
|
#define NUM_CFN 64 // number of functions assigned to switches
|
||||||
#define NUM_TRAINER 16
|
#define NUM_TRAINER 16
|
||||||
#define NUM_POTS 3
|
#define NUM_POTS 3
|
||||||
#define NUM_XPOTS 0
|
#define NUM_XPOTS 0
|
||||||
#define TELEM_VALUES_MAX 16
|
#define TELEM_VALUES_MAX 32
|
||||||
#elif defined(CPUM2560) || defined(CPUM2561)
|
#elif defined(CPUM2560) || defined(CPUM2561)
|
||||||
#define MAX_MODELS 30
|
#define MAX_MODELS 30
|
||||||
#define NUM_CHNOUT 16 // number of real output channels CH1-CH16
|
#define NUM_CHNOUT 16 // number of real output channels CH1-CH16
|
||||||
|
|
|
@ -68,6 +68,7 @@
|
||||||
#define SPORT_FIRMWARE_EXT ".frk"
|
#define SPORT_FIRMWARE_EXT ".frk"
|
||||||
|
|
||||||
extern FATFS g_FATFS_Obj;
|
extern FATFS g_FATFS_Obj;
|
||||||
|
extern FIL g_oLogFile;
|
||||||
|
|
||||||
extern uint8_t logDelay;
|
extern uint8_t logDelay;
|
||||||
const pm_char *openLogs();
|
const pm_char *openLogs();
|
||||||
|
|
|
@ -275,6 +275,7 @@ uint32_t pwrCheck();
|
||||||
|
|
||||||
// EEPROM driver
|
// EEPROM driver
|
||||||
void eepromInit();
|
void eepromInit();
|
||||||
|
uint32_t eepromReadStatus();
|
||||||
|
|
||||||
// Rotary Encoder driver
|
// Rotary Encoder driver
|
||||||
void rotencInit();
|
void rotencInit();
|
||||||
|
|
|
@ -36,7 +36,9 @@
|
||||||
|
|
||||||
#include "../../opentx.h"
|
#include "../../opentx.h"
|
||||||
|
|
||||||
extern volatile uint32_t Spi_complete; // TODO in the driver ?
|
volatile uint32_t Spi_complete;
|
||||||
|
uint8_t Spi_tx_buf[24] ;
|
||||||
|
uint8_t Spi_rx_buf[24] ;
|
||||||
|
|
||||||
uint32_t spi_PDC_action( register uint8_t *command, register uint8_t *tx, register uint8_t *rx, register uint32_t comlen, register uint32_t count )
|
uint32_t spi_PDC_action( register uint8_t *command, register uint8_t *tx, register uint8_t *rx, register uint32_t comlen, register uint32_t count )
|
||||||
{
|
{
|
||||||
|
@ -186,9 +188,13 @@ void eeprom_write_enable()
|
||||||
eeprom_write_one(6, 0);
|
eeprom_write_one(6, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t eeprom_read_status()
|
uint32_t eepromReadStatus()
|
||||||
{
|
{
|
||||||
|
#if defined(SIMU)
|
||||||
|
return 0;
|
||||||
|
#else
|
||||||
return eeprom_write_one(5, 1);
|
return eeprom_write_one(5, 1);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// SPI i/f to EEPROM (4Mb)
|
// SPI i/f to EEPROM (4Mb)
|
||||||
|
|
|
@ -44,7 +44,7 @@ TEST(EEPROM, 100_random_writes)
|
||||||
uint8_t buf[1000];
|
uint8_t buf[1000];
|
||||||
uint8_t buf2[1000];
|
uint8_t buf2[1000];
|
||||||
|
|
||||||
EeFsFormat();
|
eepromFormat();
|
||||||
|
|
||||||
for(int i=0; i<100; i++) {
|
for(int i=0; i<100; i++) {
|
||||||
int size = rand()%800;
|
int size = rand()%800;
|
||||||
|
@ -66,7 +66,7 @@ TEST(EEPROM, test2)
|
||||||
RlcFile f;
|
RlcFile f;
|
||||||
uint8_t buf[1000];
|
uint8_t buf[1000];
|
||||||
|
|
||||||
EeFsFormat();
|
eepromFormat();
|
||||||
|
|
||||||
for(int i=0; i<1000; i++) buf[i]='6'+i%4;
|
for(int i=0; i<1000; i++) buf[i]='6'+i%4;
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ TEST(EEPROM, eeCheckImmediately)
|
||||||
// RlcFile f;
|
// RlcFile f;
|
||||||
uint8_t buf[1000];
|
uint8_t buf[1000];
|
||||||
|
|
||||||
EeFsFormat();
|
eepromFormat();
|
||||||
|
|
||||||
for(int i=0; i<1000; i++) buf[i]='6'+i%4;
|
for(int i=0; i<1000; i++) buf[i]='6'+i%4;
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ TEST(EEPROM, copy)
|
||||||
|
|
||||||
uint8_t buf[1000];
|
uint8_t buf[1000];
|
||||||
|
|
||||||
EeFsFormat();
|
eepromFormat();
|
||||||
|
|
||||||
for(int i=0; i<1000; i++) buf[i]='6'+i%4;
|
for(int i=0; i<1000; i++) buf[i]='6'+i%4;
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ TEST(EEPROM, rm)
|
||||||
|
|
||||||
uint8_t buf[1000];
|
uint8_t buf[1000];
|
||||||
|
|
||||||
EeFsFormat();
|
eepromFormat();
|
||||||
|
|
||||||
for(int i=0; i<1000; i++) buf[i]='6'+i%4;
|
for(int i=0; i<1000; i++) buf[i]='6'+i%4;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue