mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-26 17:46:14 +01:00
EXRAIL ling segment
This commit is contained in:
parent
263ed18b25
commit
478e9661bb
|
@ -203,7 +203,7 @@ private:
|
||||||
uint16_t getOperand(byte n);
|
uint16_t getOperand(byte n);
|
||||||
|
|
||||||
static bool diag;
|
static bool diag;
|
||||||
static const HIGHFLASH byte RouteCode[];
|
static const HIGHFLASH3 byte RouteCode[];
|
||||||
static const HIGHFLASH int16_t SignalDefinitions[];
|
static const HIGHFLASH int16_t SignalDefinitions[];
|
||||||
static byte flags[MAX_FLAGS];
|
static byte flags[MAX_FLAGS];
|
||||||
static Print * LCCSerial;
|
static Print * LCCSerial;
|
||||||
|
|
|
@ -121,14 +121,14 @@ const byte RMFT2::compileFeatures = 0
|
||||||
#include "EXRAIL2MacroReset.h"
|
#include "EXRAIL2MacroReset.h"
|
||||||
#undef ROUTE
|
#undef ROUTE
|
||||||
#define ROUTE(id, description) id,
|
#define ROUTE(id, description) id,
|
||||||
const int16_t HIGHFLASH const RMFT2::routeIdList[]= {
|
const int16_t HIGHFLASH RMFT2::routeIdList[]= {
|
||||||
#include "myAutomation.h"
|
#include "myAutomation.h"
|
||||||
INT16_MAX};
|
INT16_MAX};
|
||||||
// Pass 2a create throttle automation list
|
// Pass 2a create throttle automation list
|
||||||
#include "EXRAIL2MacroReset.h"
|
#include "EXRAIL2MacroReset.h"
|
||||||
#undef AUTOMATION
|
#undef AUTOMATION
|
||||||
#define AUTOMATION(id, description) id,
|
#define AUTOMATION(id, description) id,
|
||||||
const int16_t HIGHFLASH const RMFT2::automationIdList[]= {
|
const int16_t HIGHFLASH RMFT2::automationIdList[]= {
|
||||||
#include "myAutomation.h"
|
#include "myAutomation.h"
|
||||||
INT16_MAX};
|
INT16_MAX};
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ const FSH * RMFT2::getRouteDescription(int16_t id) {
|
||||||
const int StringMacroTracker1=__COUNTER__;
|
const int StringMacroTracker1=__COUNTER__;
|
||||||
#define THRUNGE(msg,mode) \
|
#define THRUNGE(msg,mode) \
|
||||||
case (__COUNTER__ - StringMacroTracker1) : {\
|
case (__COUNTER__ - StringMacroTracker1) : {\
|
||||||
static const char HIGHFLASH const thrunge[]=msg;\
|
static const char HIGHFLASH thrunge[]=msg;\
|
||||||
strfar=(uint32_t)GETFARPTR(thrunge);\
|
strfar=(uint32_t)GETFARPTR(thrunge);\
|
||||||
tmode=mode;\
|
tmode=mode;\
|
||||||
break;\
|
break;\
|
||||||
|
@ -186,7 +186,7 @@ case (__COUNTER__ - StringMacroTracker1) : {\
|
||||||
#undef LCD
|
#undef LCD
|
||||||
#define LCD(id,msg) \
|
#define LCD(id,msg) \
|
||||||
case (__COUNTER__ - StringMacroTracker1) : {\
|
case (__COUNTER__ - StringMacroTracker1) : {\
|
||||||
static const char HIGHFLASH const thrunge[]=msg;\
|
static const char HIGHFLASH thrunge[]=msg;\
|
||||||
strfar=(uint32_t)GETFARPTR(thrunge);\
|
strfar=(uint32_t)GETFARPTR(thrunge);\
|
||||||
tmode=thrunge_lcd; \
|
tmode=thrunge_lcd; \
|
||||||
lcdid=id;\
|
lcdid=id;\
|
||||||
|
@ -195,7 +195,7 @@ case (__COUNTER__ - StringMacroTracker1) : {\
|
||||||
#undef SCREEN
|
#undef SCREEN
|
||||||
#define SCREEN(display,id,msg) \
|
#define SCREEN(display,id,msg) \
|
||||||
case (__COUNTER__ - StringMacroTracker1) : {\
|
case (__COUNTER__ - StringMacroTracker1) : {\
|
||||||
static const char HIGHFLASH const thrunge[]=msg;\
|
static const char HIGHFLASH thrunge[]=msg;\
|
||||||
strfar=(uint32_t)GETFARPTR(thrunge);\
|
strfar=(uint32_t)GETFARPTR(thrunge);\
|
||||||
tmode=(thrunger)(thrunge_lcd+display); \
|
tmode=(thrunger)(thrunge_lcd+display); \
|
||||||
lcdid=id;\
|
lcdid=id;\
|
||||||
|
@ -274,7 +274,7 @@ const byte RMFT2::rosterNameCount=0
|
||||||
#include "EXRAIL2MacroReset.h"
|
#include "EXRAIL2MacroReset.h"
|
||||||
#undef ROSTER
|
#undef ROSTER
|
||||||
#define ROSTER(cabid,name,funcmap...) cabid,
|
#define ROSTER(cabid,name,funcmap...) cabid,
|
||||||
const int16_t HIGHFLASH const RMFT2::rosterIdList[]={
|
const int16_t HIGHFLASH RMFT2::rosterIdList[]={
|
||||||
#include "myAutomation.h"
|
#include "myAutomation.h"
|
||||||
INT16_MAX};
|
INT16_MAX};
|
||||||
|
|
||||||
|
@ -314,7 +314,7 @@ const FSH * RMFT2::getRosterFunctions(int16_t id) {
|
||||||
#undef VIRTUAL_SIGNAL
|
#undef VIRTUAL_SIGNAL
|
||||||
#define VIRTUAL_SIGNAL(id) id,0,0,0,
|
#define VIRTUAL_SIGNAL(id) id,0,0,0,
|
||||||
|
|
||||||
const HIGHFLASH int16_t const RMFT2::SignalDefinitions[] = {
|
const HIGHFLASH int16_t RMFT2::SignalDefinitions[] = {
|
||||||
#include "myAutomation.h"
|
#include "myAutomation.h"
|
||||||
0,0,0,0 };
|
0,0,0,0 };
|
||||||
|
|
||||||
|
@ -503,7 +503,7 @@ int RMFT2::onLCCLookup[RMFT2::countLCCLookup];
|
||||||
|
|
||||||
// Build RouteCode
|
// Build RouteCode
|
||||||
const int StringMacroTracker2=__COUNTER__;
|
const int StringMacroTracker2=__COUNTER__;
|
||||||
const HIGHFLASH byte const RMFT2::RouteCode[] = {
|
const HIGHFLASH3 byte RMFT2::RouteCode[] = {
|
||||||
#include "myAutomation.h"
|
#include "myAutomation.h"
|
||||||
OPCODE_ENDTASK,0,0,OPCODE_ENDEXRAIL,0,0 };
|
OPCODE_ENDTASK,0,0,OPCODE_ENDEXRAIL,0,0 };
|
||||||
|
|
||||||
|
|
3
FSH.h
3
FSH.h
|
@ -56,6 +56,7 @@ typedef __FlashStringHelper FSH;
|
||||||
#if defined(ARDUINO_AVR_MEGA) || defined(ARDUINO_AVR_MEGA2560)
|
#if defined(ARDUINO_AVR_MEGA) || defined(ARDUINO_AVR_MEGA2560)
|
||||||
// AVR_MEGA memory deliberately placed at end of link may need _far functions
|
// AVR_MEGA memory deliberately placed at end of link may need _far functions
|
||||||
#define HIGHFLASH __attribute__((section(".fini2")))
|
#define HIGHFLASH __attribute__((section(".fini2")))
|
||||||
|
#define HIGHFLASH3 __attribute__((section(".fini3")))
|
||||||
#define GETFARPTR(data) pgm_get_far_address(data)
|
#define GETFARPTR(data) pgm_get_far_address(data)
|
||||||
#define GETHIGHFLASH(data,offset) pgm_read_byte_far(GETFARPTR(data)+offset)
|
#define GETHIGHFLASH(data,offset) pgm_read_byte_far(GETFARPTR(data)+offset)
|
||||||
#define GETHIGHFLASHW(data,offset) pgm_read_word_far(GETFARPTR(data)+offset)
|
#define GETHIGHFLASHW(data,offset) pgm_read_word_far(GETFARPTR(data)+offset)
|
||||||
|
@ -63,6 +64,7 @@ typedef __FlashStringHelper FSH;
|
||||||
// AVR_UNO/NANO runtime does not support _far functions so just use _near equivalent
|
// AVR_UNO/NANO runtime does not support _far functions so just use _near equivalent
|
||||||
// as there is no progmem above 32kb anyway.
|
// as there is no progmem above 32kb anyway.
|
||||||
#define HIGHFLASH PROGMEM
|
#define HIGHFLASH PROGMEM
|
||||||
|
#define HIGHFLASH3 PROGMEM
|
||||||
#define GETFARPTR(data) ((uint32_t)(data))
|
#define GETFARPTR(data) ((uint32_t)(data))
|
||||||
#define GETHIGHFLASH(data,offset) pgm_read_byte_near(GETFARPTR(data)+(offset))
|
#define GETHIGHFLASH(data,offset) pgm_read_byte_near(GETFARPTR(data)+(offset))
|
||||||
#define GETHIGHFLASHW(data,offset) pgm_read_word_near(GETFARPTR(data)+(offset))
|
#define GETHIGHFLASHW(data,offset) pgm_read_word_near(GETFARPTR(data)+(offset))
|
||||||
|
@ -80,6 +82,7 @@ typedef __FlashStringHelper FSH;
|
||||||
typedef char FSH;
|
typedef char FSH;
|
||||||
#define FLASH
|
#define FLASH
|
||||||
#define HIGHFLASH
|
#define HIGHFLASH
|
||||||
|
#define HIGHFLASH3
|
||||||
#define GETFARPTR(data) ((uint32_t)(data))
|
#define GETFARPTR(data) ((uint32_t)(data))
|
||||||
#define GETFLASH(addr) (*(const byte *)(addr))
|
#define GETFLASH(addr) (*(const byte *)(addr))
|
||||||
#define GETHIGHFLASH(data,offset) (*(const byte *)(GETFARPTR(data)+offset))
|
#define GETHIGHFLASH(data,offset) (*(const byte *)(GETFARPTR(data)+offset))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user