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