ASM x C

Bc. Marek Pavlu pavlu@HWserver.cz
Pátek Srpen 28 14:10:50 CEST 2009


Ach jo, zas takova, 
lidi, ja se divim, ze to rovnou nedelate na procesorech 4004, 
trebas byste mohli delat analyzu efektivnosti daneho kodu deset let... 
Fakt to nechapu, proc nelze pouzit vykonnejsi procesor. 
Ve skutecnosti, proc nepouzit procesor na tyto aplikace mnohem lepe
vybaveny, 
ruzne dsp, dsc jsou na trhu na babku... 

Osobne mi na techto genialnich pocinech na hranici moznosti daneho procesoru
vadi jeden fakt, 
ze takovou aplikacu uz dale neni kam vyvijet, protoze kazda i piodi zmena
znamena v zasade exponencialni narust 
v nutnem case tu upravu provest a to mi neprijde jako dobre... 

S pozdravem, 
                MP 




-----Original Message----- 
From: hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz] On
Behalf Of Petr Kubáč 
Sent: Friday, July 24, 2009 10:46 PM 
To: HW-news 
Subject: Re: ASM x C 

> Docela by mě zajímalo, co znamená " casove kriticke casti programu" - 
> jako nějaký příklad. Nedokážu si prostě představit něco, co se dá udělat 
> v ASM a v C (při správném nastavení překladače, linkeru atd.) ne. 

Nedovedu si moderni a slozite procesory ala ARM nebo X86 programovat jinak 
nez ve vyssim jazyku uz kvuli nejasnemu vyznamu co je pro tyto architektury 
vlastne optimalni kod, ale pokusim se priblizit jednu aplikací, kterou si 
moc nedovedu predstavit v C 

Mam udelany z AVR na 16 MHZ ultrazvukovy dalkomer, jednim reproduktorem 
piskne a dvema mikrofony posloucha, aby krome vzdalenosti mel jeste azimut 
(podle casove diference leveho a praveho kanalu) 

Aby nedochazelo ke zkresleni v analogovem retezci tak se signal z mikrofonu 
digitalizuje primo a to na 4 nasobku pracovni frekvence - to jest 2kanaly x 
40kHz x 4 = 320kHz. 

System posloucha 0.1 sec to je 32 000 vzorku, protoze zadne bezne AVR nema 
takovou pamet tak se paralelne s digitllizaci z obou kanalu extrahuji echa a

to presneji jenom jejich "nabezne hrany" 
a spolu s casovou znackou ulozit do bufferu pro dalsi zpracovani 

A ted pocitejme - 16 MHz / 320 kHz = 50 taktu na jeden vzorek - dost jsem se

zapotil i v ASM protoze nejrobustnejsi algoritmus se ukazal byt takovy, 
ktery behem tech 50 taktu spocita dva exponencialni klouzave prumery kazdy s

jinou casovou konstatnou, ty od sebe odecte a pokud je vysledek vyssi nez 
kriticka hodnota tak si ji spolu s hodnotou timeru ulozi do bufferu 

Co vy na to v 50 taktech ? 

Zdravi Petr Kubac 


_______________________________________________ 
HW-list mailing list  -  sponsored by www.HW.cz 
Hw-list@list.hw.cz 
http://list.hw.cz/mailman/listinfo/hw-list 



  _____  

avast! Antivirus <http://www.avast.com> : Odchozi zprava cista. 


Virova databaze (VPS): 090827-0, 27.08.2009
Testovano: 28.8.2009 14:10:50
avast! - copyright (c) 1988-2009 ALWIL Software.






Další informace o konferenci Hw-list