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*
Fujitsu SofTune, program >64k, någon som har lyckats?
Re: Fujitsu SofTune, program >64k, någon som har lyckats?
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?
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?
Re: Fujitsu SofTune, program >64k, någon som har lyckats?
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.
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.
Re: Fujitsu SofTune, program >64k, någon som har lyckats?
Bankswitching?
(som i Commodore 128)
(som i Commodore 128)
Re: Fujitsu SofTune, program >64k, någon som har lyckats?
Vad är det för kompilator? Går det att välja small/large code memory model?
Re: Fujitsu SofTune, program >64k, någon som har lyckats?
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.
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.
-
- Inlägg: 466
- Blev medlem: 20 februari 2011, 23:32:40
- Ort: Gävle
Re: Fujitsu SofTune, program >64k, någon som har lyckats?
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!?
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!?