mirror of
https://github.com/opentx/opentx.git
synced 2025-07-25 01:05:10 +03:00
Arguably cleaner flash size retrieval
This commit is contained in:
parent
03c969fa3c
commit
c994260c85
5 changed files with 43 additions and 9 deletions
|
@ -1765,6 +1765,33 @@ QString getBoardName(BoardEnum board)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const int Firmware::getFlashSize()
|
||||||
|
{
|
||||||
|
switch (board) {
|
||||||
|
case BOARD_STOCK:
|
||||||
|
return FSIZE_STOCK;
|
||||||
|
case BOARD_M128:
|
||||||
|
return FSIZE_M128;
|
||||||
|
case BOARD_MEGA2560:
|
||||||
|
case BOARD_GRUVIN9X:
|
||||||
|
return FSIZE_GRUVIN9X;
|
||||||
|
case BOARD_SKY9X:
|
||||||
|
return FSIZE_SKY9X;
|
||||||
|
case BOARD_9XRPRO:
|
||||||
|
case BOARD_AR9X:
|
||||||
|
return FSIZE_9XRPRO;
|
||||||
|
case BOARD_TARANIS:
|
||||||
|
case BOARD_TARANIS_PLUS:
|
||||||
|
case BOARD_TARANIS_X9E:
|
||||||
|
case BOARD_FLAMENCO:
|
||||||
|
return FSIZE_TARANIS;
|
||||||
|
case BOARD_HORUS:
|
||||||
|
return FSIZE_HORUS;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Firmware * GetFirmware(QString id)
|
Firmware * GetFirmware(QString id)
|
||||||
{
|
{
|
||||||
foreach(Firmware * firmware, firmwares) {
|
foreach(Firmware * firmware, firmwares) {
|
||||||
|
|
|
@ -37,6 +37,15 @@
|
||||||
#define EESIZE_9XRPRO (128*4096)
|
#define EESIZE_9XRPRO (128*4096)
|
||||||
#define EESIZE_MAX EESIZE_9XRPRO
|
#define EESIZE_MAX EESIZE_9XRPRO
|
||||||
|
|
||||||
|
#define FSIZE_STOCK (64*1024)
|
||||||
|
#define FSIZE_M128 (128*1024)
|
||||||
|
#define FSIZE_GRUVIN9X (256*1024)
|
||||||
|
#define FSIZE_TARANIS (512*1024)
|
||||||
|
#define FSIZE_SKY9X (256*1024)
|
||||||
|
#define FSIZE_9XRPRO (512*1024)
|
||||||
|
#define FSIZE_HORUS (2048*1024)
|
||||||
|
#define FSIZE_MAX FSIZE_HORUS
|
||||||
|
|
||||||
QString getBoardName(BoardEnum board);
|
QString getBoardName(BoardEnum board);
|
||||||
|
|
||||||
#define IS_9X(board) (board==BOARD_STOCK || board==BOARD_M128)
|
#define IS_9X(board) (board==BOARD_STOCK || board==BOARD_M128)
|
||||||
|
@ -1671,6 +1680,8 @@ class Firmware {
|
||||||
virtual bool isTelemetrySourceAvailable(int source) = 0;
|
virtual bool isTelemetrySourceAvailable(int source) = 0;
|
||||||
|
|
||||||
virtual int isAvailable(PulsesProtocol proto, int port=0) = 0;
|
virtual int isAvailable(PulsesProtocol proto, int port=0) = 0;
|
||||||
|
|
||||||
|
const int getFlashSize();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QList<const char *> languages;
|
QList<const char *> languages;
|
||||||
|
|
|
@ -44,7 +44,7 @@ int getFileType(const QString &fullFileName)
|
||||||
}
|
}
|
||||||
|
|
||||||
FirmwareInterface::FirmwareInterface(const QString &filename):
|
FirmwareInterface::FirmwareInterface(const QString &filename):
|
||||||
flash(MAX_FSIZE, 0),
|
flash(FSIZE_MAX, 0),
|
||||||
flashSize(0),
|
flashSize(0),
|
||||||
versionId(0),
|
versionId(0),
|
||||||
eepromVersion(0),
|
eepromVersion(0),
|
||||||
|
@ -59,11 +59,11 @@ FirmwareInterface::FirmwareInterface(const QString &filename):
|
||||||
QFile file(filename);
|
QFile file(filename);
|
||||||
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { // reading HEX TEXT file
|
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { // reading HEX TEXT file
|
||||||
QTextStream inputStream(&file);
|
QTextStream inputStream(&file);
|
||||||
flashSize = HexInterface(inputStream).load((uint8_t *)flash.data(), MAX_FSIZE);
|
flashSize = HexInterface(inputStream).load((uint8_t *)flash.data(), FSIZE_MAX);
|
||||||
file.close();
|
file.close();
|
||||||
if (flashSize == 0) {
|
if (flashSize == 0) {
|
||||||
file.open(QIODevice::ReadOnly);
|
file.open(QIODevice::ReadOnly);
|
||||||
flashSize = file.read((char *)flash.data(), MAX_FSIZE);
|
flashSize = file.read((char *)flash.data(), FSIZE_MAX);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -342,7 +342,7 @@ bool FirmwareInterface::isValid()
|
||||||
|
|
||||||
unsigned int FirmwareInterface::save(QString fileName)
|
unsigned int FirmwareInterface::save(QString fileName)
|
||||||
{
|
{
|
||||||
uint8_t binflash[MAX_FSIZE];
|
uint8_t binflash[FSIZE_MAX];
|
||||||
memcpy(&binflash, flash.constData(), flashSize);
|
memcpy(&binflash, flash.constData(), flashSize);
|
||||||
QFile file(fileName);
|
QFile file(fileName);
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
|
|
||||||
#define MAX_FSIZE (2048*1024)
|
|
||||||
#define SPLASH_WIDTH (128)
|
#define SPLASH_WIDTH (128)
|
||||||
#define SPLASH_HEIGHT (64)
|
#define SPLASH_HEIGHT (64)
|
||||||
#define SPLASHX9D_WIDTH (212)
|
#define SPLASHX9D_WIDTH (212)
|
||||||
|
|
|
@ -66,10 +66,7 @@ QStringList getDfuArgs(const QString & cmd, const QString & filename)
|
||||||
burnConfigDialog bcd;
|
burnConfigDialog bcd;
|
||||||
QString memory = "0x08000000";
|
QString memory = "0x08000000";
|
||||||
if (cmd == "-U") {
|
if (cmd == "-U") {
|
||||||
if(GetCurrentFirmware()->getBoard() == BOARD_HORUS)
|
memory.append(QString(":%1").arg(GetCurrentFirmware()->getFlashSize()));
|
||||||
memory.append(QString(":%1").arg(MAX_FSIZE));
|
|
||||||
else
|
|
||||||
memory.append(QString(":%1").arg(512*1024));
|
|
||||||
}
|
}
|
||||||
args << bcd.getDFUArgs();
|
args << bcd.getDFUArgs();
|
||||||
if (!filename.endsWith(".dfu")) {
|
if (!filename.endsWith(".dfu")) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue