Fujitsu SofTune, program >64k, någon som har lyckats?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Icecap
Inlägg: 26655
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Fujitsu SofTune, program >64k, någon som har lyckats?

Inlägg av Icecap »

Jag använder en Fujitsu FFMC16LX processor i ett par projekt. Själva den aktuella processor är numera obsolete så jag ska migrera skiten men det löser inte problemet jag har, jag måste understötta de enheter som redan finns.

Saken är att programmet fyller ganska nära 64k. Det finns med konstanter osv som ligger utanför denna 64k gräns så programmet är nära att gå i taket. Jag kan banta bort lite men det är en droppe i havet, processorn har 128k flash och ska teknisk sett klara av att köra program i hela detta förutom den del som går åt till interruptvektorer osv. Jag har alltså runt 54k som är oanvänd och jag vill gärna ha med dom i programminnet.

Men fan om jag kan få den att göra det! Innan jag skriker obsceniteter och skrämmer slag på halva kontoret undrar jag: är det någon här som har lyckats? Och i så fall hur?

Jag har fått tips från Fujitsus applikationsingenjör, de går precis i den riktning jag har gått och de fungerar såklart inte ett skit! De går ut på att bryta upp programmet i lagom funktioner (gjort från början, går ju inte att programmera annars!), att lägga dessa funktioner i egna filer (samma sak, gammalt!). När jag inkluderar filen via #include "xxx.c" blir det noll skillnad, om jag lägger till den som källkod i projektet omfördelas minnet till så vis att funktionen försvinner helt!

Jag funderar på om jag har missat något, någon kompilerinställning eller liknande så om någon har tips lyssnar jag mycket gärna. Anything - plllleeeease *som Roger Rabbit skulle säga det*
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Fujitsu SofTune, program >64k, någon som har lyckats?

Inlägg av blueint »

Går det att exekvera kod ovanför >64k ?

Annars lägg konstanter mm ovan 64k samt använd koden i dom första 64k till att ladda konstanter mm?

Annars ladda till ram och exekvera där?
Användarvisningsbild
Icecap
Inlägg: 26655
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Fujitsu SofTune, program >64k, någon som har lyckats?

Inlägg av Icecap »

Som jag skrev ligger konstanter redan över gränsen och med 6k RAM varav en del används är det knappast något att räkna med.

Den ska kunde exekvera program i övre banken, det finns versioner med mycket mer minne och att vara låst till 64k program och resten av 512k ska vara data och konstanter låter lite väl osannolikt.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Fujitsu SofTune, program >64k, någon som har lyckats?

Inlägg av blueint »

Bankswitching?

(som i Commodore 128)
Batman
Inlägg: 97
Blev medlem: 11 december 2010, 15:05:42
Ort: Umeå

Re: Fujitsu SofTune, program >64k, någon som har lyckats?

Inlägg av Batman »

Vad är det för kompilator? Går det att välja small/large code memory model?
Användarvisningsbild
Icecap
Inlägg: 26655
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Fujitsu SofTune, program >64k, någon som har lyckats?

Inlägg av Icecap »

Kärna kan adressera 1M och ingen bankar ska switchas då det inte finns sådan funktion, minnet är linjärt.

kompilatorn är Fujitsus SofTune, senaste version. Inte det vassaste verktyg i lådan men det är vad jag har och kompilera kan det.

Minnesmodellen är självklart ställd till Large och har varit så sedan länge.

Men det jag ber om är folk som har erfarenhet av att få SofTune att göra korrekt, alla gissningarna har jag varit igenom många gångar numera, alla inställningar jag bara kan tänka på som skulle expandera.

Fujitsu påstår att man kan ange en adress där man kan placera koden medelst:
#pragma section FAR_CODE=Ett_Namn, attr=CODE, locate=0xFF3000
för att tvinga en sektion att ligga ett visst ställe. Det fungerar inte heller.
Birger1234
Inlägg: 466
Blev medlem: 20 februari 2011, 23:32:40
Ort: Gävle

Re: Fujitsu SofTune, program >64k, någon som har lyckats?

Inlägg av Birger1234 »

Det där påminner om strulet med en viss äldre kompilator version för dsPIC/PIC24,
man fick instruera kompilatorn med en kod rad så att den switchade till high mem
efter 32k eller nått, mins inte så noga. Konstigt att det ska vara sådana här underligheter
på så små minnes mängder!?
Skriv svar