 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
71GA Član


Pridružen-a: Tor 16 Jun 2009 18:53 Prispevkov: 391 Aktiv.: 2.00 Kraj: Ljubljana
|
Objavljeno: Pet Feb 07, 2014 10:15 am Naslov sporočila: |
|
|
vpeter je napisal/a: |
mujo je napisal/a: |
potem pridemo do tega, da nihče več ne pazi kako piše kodo (ker se ni poglobil v periferijo/procesor). Pri tem pa dobimo neoptimizirano kodo, ki za normalno delovanje potrebuje močan procesor z še hitrejšo uro. |
Kje bi lahko našel kakšne smernice za pravilnejše programiranje? |
Prvi korak je dobro poznavanje ARM mikroprocesorjev. Daleč najboljše opise ukazov najdeš v njihovi bibliji tukaj . Ko sem pisal diplomo, mi je ta Info center prišel neizmerno prav, saj vsebuje opise vseh ARM ukazov. Tudi tistih najbolj specifičnih za bilokateri mikroprocesor. Toplo ti pa priporočam branje knjige: Sloss, ARM system devellopers guide
Tako se boš naučil ARM assembly. Potem pa ko boš to znal si poglej malo kako je tvoj mikrokrmilnik zgrajen (spet moraš nujno prebrati user manual za svoj mikrokrmilnik) in poiskusi napisat kako ARM assembly izvorno datoteko. Sledi iskanje razvojne verige (ali pa IDE, ki vključuje razvojno verigo), ki bo zmožna prevesti vse ukaze za tvoj mikroprocesor. Iz ARM info centra zbezaj, kateri ISA ("Instruction Set Architecture" oz. nabor ukazov) podpira tvoj mikroprocesor, nato poišči verigo, ki podpira isti ISA in ta bo definitivno zmožna prevesti tvoj program. Nato še prevedeš program z razvojno verigo in to je to. Seveda je način prevajanja in priprave izvršljive datoteke odvisen od načina nalaganja programa na mikrokrmilnik (USB, JTAG, RS232...)
Na žalost pa ni neke enostavne poti...
|
|
Nazaj na vrh |
|
 |
vpeter Član

Pridružen-a: Pon 11 Jun 2012 16:05 Prispevkov: 370 Aktiv.: 2.33 Kraj: Maribor okolica
|
Objavljeno: Pet Feb 07, 2014 11:02 am Naslov sporočila: |
|
|
O pomembnosti poznavanja asemblerja je verjetno odvisno kaj programiramo. Moj trenutni (prvi) projekt s Cortex-M4 ima samo nekaj lastno napisanih vrstic v asemblerju. Pa še to samo za potrebe razhroščevanja. Takoj sem skočil na uporabo operacijskega sistema in TCP/IP omrežja. Je pač aplikacija takšna, ki nima zunanje periferije.
Kar pa se tiče uporaba Linux sistema in programiranje v njemu: ima pozitivne in negativne učinke. Pozitivni so zagotovo takšni, kot so bili napisani. Negativni pa so lahko v primeru, da se ljudje zaposlijo v podjetjih, kjer se Linux ne uporablja za razvoj. V tem primeru ljudje lahko imajo težave. Seveda se dobri prilagodijo tako na sistem kot na razvojno okolje.
Predlagana knjiga pa zgleda zelo obetavna.
|
|
Nazaj na vrh |
|
 |
Waldo Član

Pridružen-a: Pet 02 Nov 2007 10:50 Prispevkov: 316 Aktiv.: 1.47 Kraj: Maribor
|
Objavljeno: Pet Feb 07, 2014 12:11 pm Naslov sporočila: |
|
|
mujo je napisal/a: |
Citiram: |
Kolikor se jaz spomnem, se je včasih bitnost MCUja nanašala na širino naslovnega vodila, ne vem, lahko da je sedaj drugače. |
Se pravilno spomniš. |
Verjetno lapsus: podatkovnega vodila. Tudi stari 8-bitniki že imajo 16-bitno naslovno vodilo.
BluPhenix je napisal/a: |
Nisem prepričan, da je hitrost procesiranja odvisna od bitnosti ... |
Ne nujno. Odvisno od arhitekture procesorja. Pomaga pa, imaš na razpolago širše vodilo in v istem ciklu iz pomnilnika naložiš ukaz in operand(e). Tako dodatni fetch cikli niso potrebni. Pomnilnik je tipično cokla procesorju.
|
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.70 Kraj: glej fogl
|
Objavljeno: Pet Feb 07, 2014 1:09 pm Naslov sporočila: |
|
|
BluPhenix je napisal/a: |
Zadeve s stroški tudi niso tako enostavne. Kot razvojnik (podjetje) je marsikaj lahko pomembnejše od tega, koliko stanejo windows, ko se odločaš katera orodja boš uporabil. Kar zgleda na prvo žogo poceni ali celo brezplačno lahko na dolgi rok privleče s seboj kar nekaj nepredvidenih stroškov. |
Katere nepredvidene stroške si tukaj mislil?
_________________ lp, Klemen |
|
Nazaj na vrh |
|
 |
71GA Član


Pridružen-a: Tor 16 Jun 2009 18:53 Prispevkov: 391 Aktiv.: 2.00 Kraj: Ljubljana
|
Objavljeno: Pet Feb 07, 2014 3:35 pm Naslov sporočila: |
|
|
vpeter je napisal/a: |
Kar pa se tiče uporaba Linux sistema in programiranje v njemu: ima pozitivne in negativne učinke. Pozitivni so zagotovo takšni, kot so bili napisani. Negativni pa so lahko v primeru, da se ljudje zaposlijo v podjetjih, kjer se Linux ne uporablja za razvoj. V tem primeru ljudje lahko imajo težave. Seveda se dobri prilagodijo tako na sistem kot na razvojno okolje.
Predlagana knjiga pa zgleda zelo obetavna. |
V bistvu nisem še videl Linux uporabnika, ki se na Windows ne bi mogel prilagoditi . Celo tako je, da Windows uporabniki prosijo za pomoč "linuxaše", ko jim kaj ne dela.
|
|
Nazaj na vrh |
|
 |
BluPhenix Član

Pridružen-a: Pet 05 Mar 2004 12:54 Prispevkov: 1018 Aktiv.: 4.29 Kraj: Sežana
|
Objavljeno: Sob Feb 08, 2014 3:48 am Naslov sporočila: |
|
|
Citiram: |
IDE od IAR, KEIL in drugi itak vse sami naredijo - samo procesor je potrebno izbrati... |
.
Naredijo sami ... ja no ... tako trivialno pa vseeno ni.
Citiram: |
Diploma je namenjena šolstvu, kjer ogromno privarčujemo, če nam ni potrebno kupovati Windows licenc. |
Ministrstvo za šolstvo redno obnavlja Microsoft licence, tako da šolam ni potrebno kupovati Windows. Ker pa so v določenih šolah delno sposobni informatiki (beri recimo knjižničarka, ki se ji doda 20% informatika, da je zaposlena za 100% delovni čas) marsikje tega ne vedo in šole na lastno pest kupujejo računalnike z Windows in nepotrebo kurijo lastni denar, ki bi ga lahko dale kam drugam. Veliko komercialnih orodij ima tudi academik licence, ki cene spravijo na zelo nizke ravni. Brez skrbi, razumem kaj hočeš povedati in se strinjam, da če gre, je uporaba proste programske opreme dobrodošla. Ampak v tem primeru lahko namesto lastniškega Eagle uporabimo tudi kaj drugega.
Glede Archa ... osebno mislim, da je za učenje in prve korake v Linuxu veliko bolj primerna kakšna druga distribucija (ne pa tista, ki se že sama definira kot "namenjena naprednim linux uporbnikom"), ampak to je itak vaša odločitev. Tudi ne razumem kaj misliš s tem, da v windows niste mogli nikoli odpreti datotek in pogledati kako deluje operacijski sistem in da posledično niste mogli učiti principov delovanja operacijskih sistemov. Dejansko res prečesujete izvorno kodo driverjev? Oziroma še kaj bolj eksotično?
Kar se tiče smernic programiranja. Tega je na internetu ogromno, vendar so večinoma prakse in prijemi iz nekaterih skupin. Sam sem pred nekaj časa naletel na en zanimiv dokument, ki opisuje dobre prakse in zahteve za programiranje v namene vojaškega letalstva, konkretno za novi JSF (ki se zelo naslanja na smernie programiranja v avtomobilski industriji). Bom probal poiskat link.
In prosim prosim, ne pisati Linuxih po vzoru Windows. Windows je lastno ime izdelka, tako kot Linux.
Citiram: |
Katere nepredvidene stroške si tukaj mislil? |
V sami industriji lahko pride marsikaj. Od recimo podpore, ki je včasih ključnega pomena in je odprtokodne rešitve marsikdaj ne poujajo. Seveda ne govorim o forumih, kjer lahko nekaj vprašaš, ampak o kontaktu s proizvajalcem toolchaina v primeru, da ti kakšen hrošč onemogoča normalno delo. Seveda obstajajo podjetja, ki tako podporo nudijo tudi na svojih izdelkih, temelječih na odprtokodnih rešitvah, ampak tudi tisto ni poceni. Potem do nepoznavanja in upoštevanja osnov odprtokodnega licenciranja, kar lahko privede tudi do kakšne odškodninske tožbe. In naprej, sej pravim tega je lahko kar nekaj, odvisno s čim se točo ukvarjamo.
Sicer pa sej pravim, pohvalno, da se tega lotevate v srednjih šolah, vendar dajte paziti na nepravilne definicije in napačne razlage, ker je učenca, ki je predhodno dobil napačno razlago, lahko zelo težko potem naučiti drugače.
_________________
Pravilo št. 1: Pišite slovensko, velja za vse.
TA SUHI ŠKAFEC PUŠČA. Saj ni tako težko, no! |
|
Nazaj na vrh |
|
 |
Mihec Član


Pridružen-a: Pet 24 Mar 2006 20:10 Prispevkov: 415 Aktiv.: 1.77 Kraj: Mengeš
|
Objavljeno: Sob Feb 08, 2014 10:10 am Naslov sporočila: |
|
|
@BluPhenix: tisti link me zanima. Prosim objavi če ga najdeš
|
|
Nazaj na vrh |
|
 |
vpeter Član

Pridružen-a: Pon 11 Jun 2012 16:05 Prispevkov: 370 Aktiv.: 2.33 Kraj: Maribor okolica
|
|
Nazaj na vrh |
|
 |
mujo Član


Pridružen-a: Ned 02 Jan 2005 19:24 Prispevkov: 746 Aktiv.: 3.14 Kraj: MB
|
Objavljeno: Sob Feb 08, 2014 4:27 pm Naslov sporočila: |
|
|
71GA,
Pohvala če vam res uspe motivirati dijake. Sam imam izkušnje (iz časa srednje šole, tudi faksa), da je večina ljudi hotela vse po liniji najmanjšega upora. Tudi učitelji/profesorji.
Latex je lušna, uporabna zadeva in sem zelo presenečen (pozitivno), da ga učite v SŠ. Sam sem komaj pred časom našel čas in motivacijo, da se ga naučim.
Citiram: |
Glede tega koliko dijakov si doma naloži Linuxe. Odgovor je: "Vse več." In to spodbujamo z revijami, ki smo jih naročili letos. Bolje, da si doma nalagajo prostodostopne OS in programe kot pa piratsko lastniško programsko opremo. Kaj ne mislite tako? Meni se ne zdi etično učence siliti v nakup lastniške piratske opreme, če je zunaj zastonjska alternativa. |
Pravilno. Se strinjam z napisanim. Dokler alternativa ustreza temu.
Pri programiranju mikroprocesorjev je potrebno ubrati malo druge načine programiranja. Recimo rekurzija se ne sme uporabljati (oz se mora zelo previdno). Zelo treba paziti na porabo pomnilnika. In se pravilno odločiti kam shraniti katero vrednost (tipi podatkov).
Si pa res ne predstvljam, kako bi izgledalo, če bi jaz v srednji šoli dobil nek ARM mikrokrmilnik in pol tone dokumentacije za njega. No zagrizel bi sigurno...
|
|
Nazaj na vrh |
|
 |
BluPhenix Član

Pridružen-a: Pet 05 Mar 2004 12:54 Prispevkov: 1018 Aktiv.: 4.29 Kraj: Sežana
|
Objavljeno: Ned Feb 09, 2014 2:59 pm Naslov sporočila: |
|
|
Mihec točno ta link, ki ga je objavil vpeter
_________________
Pravilo št. 1: Pišite slovensko, velja za vse.
TA SUHI ŠKAFEC PUŠČA. Saj ni tako težko, no! |
|
Nazaj na vrh |
|
 |
71GA Član


Pridružen-a: Tor 16 Jun 2009 18:53 Prispevkov: 391 Aktiv.: 2.00 Kraj: Ljubljana
|
|
Nazaj na vrh |
|
 |
BluPhenix Član

Pridružen-a: Pet 05 Mar 2004 12:54 Prispevkov: 1018 Aktiv.: 4.29 Kraj: Sežana
|
Objavljeno: Ned Feb 09, 2014 7:05 pm Naslov sporočila: |
|
|
Multilayser bo siguno morali biti, vsaj 2 sloja boš rabil (ampak je verjetno 4 bolj realno).
Imaš več opcij:
1) Ven potegneš omejeno število nogic, samo tiste, ki jih nujno rabiš plus nekaj dodatnih
2) Kupiš že narejen vmesnik (sigurno cenejši kot da ga delaš sam)
3) nabaviš nekaj podobnega, že narejenega, recimo BeagleBoard, ki je "bolj ARM" mikrokrmilnik kot recimo RaspberryPi (verjetno najcenejša varjanta izmed vseh).
Zakaj pa bi dejansko rabil tak vmesnik, da spraviš na breadboard? Spravljanje vseh ogic ven, da lahko zadevo recimo vtakneš v protoboard ali kaj podobnega ni najboljša varjanta. Sploh, če misliš popolnoma vse zunanje elemente imeti na nekih drugih ploščicah, ker znajo v takem primeru linije med MCUjem in drugimi elementi pstati kar dolge. Blokirne kondenzatorje napajanja je recimo najboljše dajati čim bližje nogicam MCUja ipd. Lahko se odločiš vmesno varjanto, da MCU daš na neko ploščico, kjer so gor osnovne stvari (regulacija napajanja, kvarci za PLL itd), in "ven povlečeš le GPIO pine. Ampak bo tudi v takem primeru BeagleBoard verjeto najcenejša pot.
_________________
Pravilo št. 1: Pišite slovensko, velja za vse.
TA SUHI ŠKAFEC PUŠČA. Saj ni tako težko, no! |
|
Nazaj na vrh |
|
 |
71GA Član


Pridružen-a: Tor 16 Jun 2009 18:53 Prispevkov: 391 Aktiv.: 2.00 Kraj: Ljubljana
|
Objavljeno: Čet Feb 13, 2014 8:57 pm Naslov sporočila: |
|
|
Jah razmišljal sem, da bi izdelal ploščico, ki ima le:
kvarc,
napajanje izvedeno preko USB št. 1 in
priklop za programiranje preko USB št. 2.
Pine za GPIO, PWM, ADC, DAC pa bi naredil lažje dosegljive na bread boardu, da bi jih npr. lahko speljali na protoboard. Slednje sem že sedaj vedno peljal na protoboard pa je nekako zadeva funkcionirala. Zadeva mora ostati poceni, saj bi bila namenjena izobraževanju. Kaj menite o tem? Mi manjka še kaj ključnega? Prvič res dizajniram tako ploščico in zato rabim malo več napotkov.
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 8 dni
Powered by phpBB © 2001, 2005 phpBB Group
|