1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-26 01:35:21 +03:00

[Sky9x] EEPROM fixes

This commit is contained in:
bsongis 2015-04-28 20:38:05 +02:00
parent 8343e57c1c
commit 886431f396
3 changed files with 25 additions and 16 deletions

View file

@ -185,20 +185,25 @@ bool eepromOpen()
uint32_t readFile(int index, uint8_t * data, uint32_t size) uint32_t readFile(int index, uint8_t * data, uint32_t size)
{ {
EepromFileHeader header; if (eepromHeader.files[index].exists) {
uint32_t address = eepromHeader.files[index].zoneIndex * EEPROM_ZONE_SIZE; EepromFileHeader header;
eepromRead(address, (uint8_t *)&header, sizeof(header)); uint32_t address = eepromHeader.files[index].zoneIndex * EEPROM_ZONE_SIZE;
if (size < header.size) { eepromRead(address, (uint8_t *)&header, sizeof(header));
header.size = size; if (size < header.size) {
header.size = size;
}
if (header.size > 0) {
eepromRead(address + sizeof(header), data, header.size);
size -= header.size;
}
if (size > 0) {
memset(data + header.size, 0, size);
}
return header.size;
} }
if (header.size > 0) { else {
eepromRead(address + sizeof(header), data, header.size); return 0;
size -= header.size;
} }
if (size > 0) {
memset(data + header.size, 0, size);
}
return header.size;
} }
void eepromIncFatAddr() void eepromIncFatAddr()

View file

@ -136,7 +136,7 @@
#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 64 #define MAX_MIXERS 64
#define MAX_EXPOS 64 #define MAX_EXPOS 32
#define NUM_LOGICAL_SWITCH 32 // number of custom switches #define NUM_LOGICAL_SWITCH 32 // number of custom switches
#define NUM_CFN 64 // number of functions assigned to switches #define NUM_CFN 64 // number of functions assigned to switches
#define NUM_TRAINER 16 #define NUM_TRAINER 16
@ -363,8 +363,8 @@ enum BeeperMode {
#define swarnenable_t uint8_t #define swarnenable_t uint8_t
#endif #endif
#else #else
#define swarnstate_t uint8_t #define swarnstate_t uint8_t
#define swarnenable_t uint8_t #define swarnenable_t uint8_t
#endif #endif
#if defined(PCBTARANIS) #if defined(PCBTARANIS)
@ -456,7 +456,7 @@ PACK(typedef struct {
TRAINER_MODULE TRAINER_MODULE
}; };
#define MODELDATA_BITMAP #define MODELDATA_BITMAP
#define MODELDATA_EXTRA uint8_t externalModule; ModuleData moduleData[NUM_MODULES+1]; uint8_t potsWarnMode:2; uint8_t potsWarnEnabled:6; int8_t potsWarnPosition[NUM_POTS]; uint8_t rxBattAlarms[2]; #define MODELDATA_EXTRA uint8_t externalModule:3; uint8_t spare:3; uint8_t potsWarnMode:2; ModuleData moduleData[NUM_MODULES+1]; uint8_t potsWarnEnabled; int8_t potsWarnPosition[NUM_POTS]; uint8_t rxBattAlarms[2];
#else #else
#define MODELDATA_BITMAP #define MODELDATA_BITMAP
#define MODELDATA_EXTRA #define MODELDATA_EXTRA

View file

@ -102,6 +102,10 @@ uint8_t eepromTransmitByte(uint8_t out, bool skipFirst)
register Spi *spiptr; register Spi *spiptr;
register uint32_t delay; register uint32_t delay;
#if defined(SIMU)
return 0;
#endif
spiptr = SPI; spiptr = SPI;
spiptr->SPI_CR = 1; // Enable spiptr->SPI_CR = 1; // Enable
(void) spiptr->SPI_RDR; // Dump any rx data (void) spiptr->SPI_RDR; // Dump any rx data