sprintf

Jan Waclawek konfera na efton.sk
Čtvrtek Listopad 3 18:58:27 CET 2016


>Třeba takový CodeVision má v nastavení projektu několik moµností 
>implementace (s)printf. Zároveň jsem to v AVR aµ na výjimky nepouµíval a 
>rad±i jsem měl svoje vlastní fn pro odeslání uint32, nebo float na sériák. 
>Výsledný kód byl krat±í a měl jsem nad tím plnou kontrolu.

Ano, presne toto som mal na mysli.


>Na druhou stranu, při pouµívání AM3358 s nevím kolika mega, nebo moµná giga 
>DDR jsem tyto starosti neměl a na pouµívání (s)printf jsem si zvykl:-)

To je fajn, ale to nie je mcu. 



>Teď tu mám LPC s něco přes 32 kB RAM, coµ je tak 16-128x víc neµ v AVR, ale 
>místo max. 1 řádku textu pro log pracuji s odstavci přes půl grafického 
>displeje a tak je moµné, µe stringy budou mít i dost přes 1 kB. Tak si s tím 
>trochu začínám dělat starosti.

Microcontroller je od slova control. Uz je dost zle ze tie 32-bity nemaju
granularitu "kontroly" 1 strojovy cyklus ale skor tucet. Ano, vela
"kontroly" sa da preniest do hardwaru periferii ktorych byva hodne, ale
nie vsetko sa tak da riesit, nie je to panacea. Ano, da sa argumentovat
tym ze je prostriedkov viac a frekvencie vyssie nez u 8-bitov; lenze ja
mavanie rukou nepokladam za odpoved, ale za prejav nekompetencie. A ano,
vela aplikacii nie je riadiacich - tie nech si robia co chcu a ako chcu,
aj ked odflaknuty UI so systematicky neprimeranymi odozvami a mizernou
ergonomiou je tiez velka hanba (napr. termostat aktualne u mna doma, od
vyznamnej znacky). A vdaka tym rozsiahlym prostriedkom je dost caste aj
to, ze aj v riadiacich aplikaciach su velkostou dominantne casti UI resp.
neriadiace - aj tam nech sa deje co chce, ak to nema vplyv na tu riadiacu
cast - no a toto uz spada do oblasti "kontrola", a rozhodne nie trivialnym
sposobom. 

Takze je to samozrejme na Vas. Tych 16-128x viac RAM nic neznamena,
podstatne su poziadavky na tu "kontrolu" a sposob akym ich zabezpecite.

wek




>-----Původní zpráva----- 
>From: Jan Waclawek
>Nebezpecnost je v tom moznom preteceni.
>
>Nevhodnost pre mcu je v pomerne rozsiahlych prostriedkoch ktore
>implementacia *printf plne zodpovedajucej standardu prinasa. Existuju
>nestandardne verzie *printf specialne optimalizovane pre mcu, ktore
>vynechavaju niektore (az mnohe) featury standardneho *printf (napr.
>sdcc.sourceforge.net/doc/sdccman.pdf kap. 3.15.2.1). V mnohych pripadoch
>je este lepsie si napisat svoje specializovane rutiny.
>
>>4. Co je za problém s sprintf a thready? Týká se to i printf (kromě
>>očekávatelného problému, µe by se mohl pohádat o výstupní zařízení s jiným
>>threadem)?
>
>To sa netyka len sprintf. C99, 7.1.4#4:
>The functions in the standard library are not guaranteed to be reentrant
>and may modify
>objects with static storage duration. 
>


Daląí informace o konferenci Hw-list