Hitta implementation av vasprintf för avr
Hitta implementation av vasprintf för avr
Jag skulle vilja ha tillgång till funktionaliteten som vasprintf ger, till ett program som ska köras på en ATtiny85. Känner någon till ett lib eller någon implementation som man kan använda?
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Hitta implementation av vasprintf för avr
Känns inte som rätt val för 8k Flash och 512B RAM. Lös det på ett bättre/snålare sätt.
Re: Hitta implementation av vasprintf för avr
Håller med - är man så trångbodd så får man ofta skriva signa egna 'printf' och dess derivat med bara dom funktioner man absolut behöver - tex. skippa allt som har med flyttal att göra etc.
vasprintf behöver också malloc och free, vilket sällan implementeras i system med bara 512 Byte RAM och dessutom tar dessa funktioner ytterligare plats i flash.
---
Att hålla på med microkontroller med den lilla storleken på Ram och Rom så kan man inte luta sig tillbaka med att använda standard-C libbar rakt av utan det blir att till väldigt stor del snickra eget och/eller hitta kompakta libbar för MCU-familjen som andra har gjort.
vasprintf behöver också malloc och free, vilket sällan implementeras i system med bara 512 Byte RAM och dessutom tar dessa funktioner ytterligare plats i flash.
---
Att hålla på med microkontroller med den lilla storleken på Ram och Rom så kan man inte luta sig tillbaka med att använda standard-C libbar rakt av utan det blir att till väldigt stor del snickra eget och/eller hitta kompakta libbar för MCU-familjen som andra har gjort.
Re: Hitta implementation av vasprintf för avr
Bara nyfiken, vilken funktionalitet hos vasprintf är det du behöver på en så liten uC? Handlar det om att kompilera gammal kod?
Re: Hitta implementation av vasprintf för avr
Jag använder radio för bl a debugging och då kändes det smidigt att kunna göra en funktion som byggde en sträng och skickade i ett, med variabelt antal argument. I mitt sökande hittade jag vasprintf som även innebar att man slapp fundera på minnesallokering vilket kändes bekvämt innan jag ens tänkt på vad det innebar för krav på µC.
Re: Hitta implementation av vasprintf för avr
Vilken hittade du?
Här är kanske ett annat exempel.
Kan också vara samma som du redan hittat. Det vet vi inget om.
http://www.sparetimelabs.com/tinyprintf/tinyprintf.php
Här är kanske ett annat exempel.
Kan också vara samma som du redan hittat. Det vet vi inget om.
http://www.sparetimelabs.com/tinyprintf/tinyprintf.php
- lillahuset
- Gått bort
- Inlägg: 13969
- Blev medlem: 3 juli 2008, 08:13:14
- Ort: Norrköping
Re: Hitta implementation av vasprintf för avr
För debug brukar jag ha en funktion som tar tre argument, en pekare till en sträng som skrivs som rubrik, ett heltal som talar om hur många data som ska skrivas ut och en vektor med heltal som skrivs ut. Ganska resurssnålt.
Detta brukar jag göra även när jag kör ARM Cortex-M med relativt mycket minne.
Detta brukar jag göra även när jag kör ARM Cortex-M med relativt mycket minne.
Re: Hitta implementation av vasprintf för avr
Jag brukar ha en buffer till "diverse" där jag skriver i vad jag vill (sprintf(Buffer, "<something>", <whatever>);) och sedan skickar buffern via den rutin jag har för att skicka en sträng.
Re: Hitta implementation av vasprintf för avr
AVR libc har någon nerbantad variant av printf.
http://www.nongnu.org/avr-libc/user-man ... stdio.html
Dock var det några år sedan jag använde detta. Vill även minnas att det åt lite mer programminne än vad jag hade hoppas på.
http://www.nongnu.org/avr-libc/user-man ... stdio.html
Dock var det några år sedan jag använde detta. Vill även minnas att det åt lite mer programminne än vad jag hade hoppas på.