LCFmetr

Problémy s návrhem, konstrukcí, zapojením, realizací elektronických zařízení

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
mihal
Příspěvky: 1844
Registrován: 06 dub 2005, 00:00
Bydliště: Zilina

#46 Příspěvek od mihal »

Assembler je posvetny zaklad vsetkeho, co chce bezat na procesore :!:
Je to predsa pre cloveka prepisany strojovy kod. Takze programovanie v assembleri mimo to ze je najefektivnejsie co sa tyka rychlosti kodu a jeho velkosti urcite programovanie je. Programovat sa ale da aj priamo v strojovom kode. Takze k assembleru a stroj.kodu len s uctou prosim.
Uživatelský avatar
rnbw
Příspěvky: 37419
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#47 Příspěvek od rnbw »

To nemusi platit. Optimalizacia v kompilatore C moze vygenerovat lepsi kod ako ked ho niekto napise rucne (a zle).
Uživatelský avatar
mihal
Příspěvky: 1844
Registrován: 06 dub 2005, 00:00
Bydliště: Zilina

#48 Příspěvek od mihal »

Predpoklad je program bez chyby. Kompilator C je postaveny univerzalne, musi zvladat mnozstvo situacii v kode a ked zacne optimalizovat... stalo sa mi uz ze sa odstranili niektore pre kompilator s optimalizaciou nezaujimave casti kodu - pre mna klucove, a nezalezi ci islo o rychlost alebo kod. Testoval som kompilatory C hew od renesasu, crossworks, iar, code warrior a ziadny sa nedostal nissie ako 1.15 nasobku kodu proti asm pri zachovani funkcnosti.
Takze asm kod je v tomto vzdy lepsi - ak je bez chyb. Iba ten cas straveny nad asm :? vyvoj v C je podstatne jednoduchsi.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#49 Příspěvek od Andrea »

Přítel několik hodin hledal chybu proč mu nefunguje program v C na ARMu. Našel ji až po prozkoumání přeloženého kódu na úrovni assembleru. Překladač (gcc) byl při optimalizaci tak "geniální", že klidně přeházel pořadí příkazů a to aniž by tím něco ušetřil, naopak, v assembleru se ona část kódu (8 instrukcí) dala napsat o dvě instrukce kratší a hlavně funkční. Takže asi tak k té optimálnosti C.
A správně se má říkat "jazyk assembleru" anglicky "assembly language". Ale myslím, že to většina pochopí, když se řekne psát v assembleru.

To mtajovsky: Já zase nepředpokládám, že Vaše dcery programují v (jazyce) assembleru, každá jsme holt nějaká :)

P.S.: Tu moji minulou narážku o studentech zřejmě nikdo nepochopil, asi jsem to nenapsala dost jasně pro většinovou část zdejšího osazenstva :lol: :wink:
Martin_

#50 Příspěvek od Martin_ »

A to "přítel" nezná direktivu _volatile_ ??? Asi ne ...
Uživatelský avatar
mtajovsky
Příspěvky: 3728
Registrován: 19 zář 2007, 00:00
Bydliště: Praha

#51 Příspěvek od mtajovsky »

Andrea píše:Přítel několik hodin hledal chybu proč mu nefunguje program v C na ARMu. Našel ji až po prozkoumání přeloženého kódu na úrovni assembleru. Překladač (gcc) byl při optimalizaci tak "geniální", že klidně přeházel pořadí příkazů a to aniž by tím něco ušetřil, naopak, v assembleru se ona část kódu (8 instrukcí) dala napsat o dvě instrukce kratší a hlavně funkční. Takže asi tak k té optimálnosti C.


Co to dokazuje?
1] že gcc je ne nadarmo zadarmo a darovanému koni na zuby nehleď. Zejmena když malá (embeded) řešení nejsou zrova domovskou doménou pro gcc.

2] Že se opravdu "vyplatí" se párat s assemblerem, když mi ušetří 25% délky kódu. To je tedy zisk. Ještě by bylo dobré říci, kolik času programování v C oproti assembleru příteli ušetřilo na celé aplikaci. Že ztratil několik hodin na ojedinělém problému již víme.

3] Přeházením pořadí příkazů kompilátor něco získá, a to na rychlosti. Záleží na architektuře. Ovšem každý program může mít chybu, i gcc, že? To ovšem nedokazuje, že babrat se za každou cenu s assemblerem je produktivní.

Mě jako programátora dnes vůbec nezajímá, jestli má aplikace 200 nebo 400 kB. Ale zatraceně mě zajímá, kdy dostanu zaplaceno a jestli mi kšeft nepřebere někdo jiný, protože má kratší termíny. V céčku je napsán téměř celý Unix (Linux). To bych chtěl vidět, kdo by ho psal v asm.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#52 Příspěvek od Andrea »

mtajovsky píše:Co to dokazuje?

Že máte úplnou pravdu. Jdu si sehnat visualjavu++, jednočipy budou chrochtat blahem :?
Uživatelský avatar
mtajovsky
Příspěvky: 3728
Registrován: 19 zář 2007, 00:00
Bydliště: Praha

#53 Příspěvek od mtajovsky »

Ale to je, Andreo, trošičku pod pás.

Jednak nemám ve všem a úplnou pravdu, to byste mi opravdu, ale opravdu křivdila :D .

Druhak je otázka, jaký jednočip bude chrochtat. Víte, že Java byla původně vyvinuta na programování mikrořadičů v bílé technice a jiných "jednočipových" aplikacích? Co jednočipy v Java telefonech? Co Java čipové karty?

To až osvojení jejích dobrých objektových vlastností programátory "velkých" aplikací vedlo k prudkému rozvoji různých knihoven a frameworků a hlavně vzniku "velké" Javy J2EE, takže se tvrdě prosadila v business aplikacích a dnes na ní běží bankovní systémy a obchodování nadnárodních korporací.

Jestli byste chtěla zkusit programovat v Java, tak si nepořizujte žádné Visual-něco, ale doporučuji free produkt Eclipse. :prst:
Uživatelský avatar
piitr
Příspěvky: 1003
Registrován: 19 říj 2007, 00:00
Kontaktovat uživatele:

#54 Příspěvek od piitr »

Naprostý souhlas s mtajovsky. Do puntíku. Jen doplním jednu věc. V mnoha případech je i pro jednočipy mnohem lepší Java než assembler (proto taky vznikla). Jde o případy, kdy je aplikace již trochu složitější - má více stavů, více procesů, funkcí. Tehdy je už hodně znát, že v Javě se nenapáchá tolik chyb a program nepadá. A to je právě u embedded aplikací opravdu hodně důležité. Když mi jednou za měsíc spadne Paintbrush, tak ho holt spustím znova. Když mi jednou měsíčně bude padat lednička, topení atd., tak to ponesu hůř.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#55 Příspěvek od Andrea »

To piitr a mtajovsky: Nefér je to od vás dvou, protože jste díky počtu v psychologické převaze. Takže já si budu dál programovat v assembleru vy si také programujte v tom co vám vyhovujte a nehodnotťe něco o čem nic nevíte. Moje aplikace v assembleru nepadají, což se třeba o sw v mém mobilu za 10tis. říct nedá, autorovi který ten sw napsal (v javě) bych nejradši rozkopla úsměv. Ale určitě to měl napsaný rychle a přehledně. A že padá Paintbrush? To asi nebude tim, že by byl napsanej v assembleru, to už se přece dávno nenosí. :?
Uživatelský avatar
piitr
Příspěvky: 1003
Registrován: 19 říj 2007, 00:00
Kontaktovat uživatele:

#56 Příspěvek od piitr »

Co se na to dá říct? Napadlo mě jen tohle: Co se na to dá říct? Napadlo mě jen tohle: Co se na to dá říct? Napadlo mě jen tohle: Co se na to dá říct? Napadlo mě jen tohle: ...
Uživatelský avatar
mtajovsky
Příspěvky: 3728
Registrován: 19 zář 2007, 00:00
Bydliště: Praha

#57 Příspěvek od mtajovsky »

Andrea << dobrá, zakopáme válečnou sekyru. Jen bych se ohradil proti tomu, že o programování v asm nic nevím. Programováním v asm jsem se živil 10 let. Od minipočítačů až k 8051. 8-)
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#58 Příspěvek od Andrea »

mtajovsky píše:Andrea << dobrá, zakopáme válečnou sekyru. Jen bych se ohradil proti tomu, že o programování v asm nic nevím. Programováním v asm jsem se živil 10 let. Od minipočítačů až k 8051. 8-)

Měla jsem na mysli, že nevíte nic o tom jak já programuju v assembleru.
Uživatelský avatar
FERYACT
Příspěvky: 2285
Registrován: 20 dub 2005, 00:00
Bydliště: Krnov

#59 Příspěvek od FERYACT »

Zdá se že je možno se vrátit k původnímu tematu.Padla zmínka proč na PIN5
je přesný odpor 1%. 1C1 je multivibrátor /20k+2k+C7/.Odpory jsou v poměru 1/10 což je správné.K C7 se připojuje vnější kondík a ladí.
Chceme li dosáhnout stálého poměru odporů musíme použít přesných a tím pádem stabilních odporů
Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#60 Příspěvek od ZdenekHQ »

No, technický cit mě říkal, že u CMOS je poměr 1/10 úplně stejnej jako 1/30...

Nicméně jsem to zapojil,jako RA použil potenciometr 25K, jako RB 2k2, jako C7 1N a změřil. Při snižování RA do hodnoty RA=5K se prakticky nic nedělo (změna kmitočtu do 10%), pak už byl oscilátor trošku nestabilní, ale kmital (trošku nesmyslně) i s RA=0. Tu nestabilitu přičítám hlavně kapacitě vstupu hradla.

Poměr RA/RB/C7 se srovná kalibrací, tudíž stále si dovoluji popřít význam 1% odporů. Spíš bych se přikláněl k použití teplotně nezávislých odporů, byť s tolerancí 20%. Stejně tak je sebevražda dát jako C7 keramiku.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Odpovědět

Zpět na „Řešení problémů s různými konstrukcemi“