www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Programiranje ARM9 mikrokrmilnikov v Linuxu
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
71GA
Član
Član



Pridružen-a: Tor 16 Jun 2009 18:53
Prispevkov: 391
Aktiv.: 2.00
Kraj: Ljubljana

PrispevekObjavljeno: Pet Feb 07, 2014 10:15 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
vpeter
Član
Član



Pridružen-a: Pon 11 Jun 2012 16:05
Prispevkov: 370
Aktiv.: 2.33
Kraj: Maribor okolica

PrispevekObjavljeno: Pet Feb 07, 2014 11:02 am    Naslov sporočila:   Odgovori s citatom

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
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Waldo
Član
Član



Pridružen-a: Pet 02 Nov 2007 10:50
Prispevkov: 316
Aktiv.: 1.47
Kraj: Maribor

PrispevekObjavljeno: Pet Feb 07, 2014 12:11 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
trot
Član
Član



Pridružen-a: Čet 18 Jan 2007 20:25
Prispevkov: 1282
Aktiv.: 5.70
Kraj: glej fogl

PrispevekObjavljeno: Pet Feb 07, 2014 1:09 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
71GA
Član
Član



Pridružen-a: Tor 16 Jun 2009 18:53
Prispevkov: 391
Aktiv.: 2.00
Kraj: Ljubljana

PrispevekObjavljeno: Pet Feb 07, 2014 3:35 pm    Naslov sporočila:   Odgovori s citatom

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 Smile. Celo tako je, da Windows uporabniki prosijo za pomoč "linuxaše", ko jim kaj ne dela. Rolling Eyes
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
BluPhenix
Član
Član



Pridružen-a: Pet 05 Mar 2004 12:54
Prispevkov: 1018
Aktiv.: 4.29
Kraj: Sežana

PrispevekObjavljeno: Sob Feb 08, 2014 3:48 am    Naslov sporočila:   Odgovori s citatom

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.

_________________
Exclamation Pravilo št. 1: Pišite slovensko, velja za vse.

TA SUHI ŠKAFEC PUŠČA. Saj ni tako težko, no!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Mihec
Član
Član



Pridružen-a: Pet 24 Mar 2006 20:10
Prispevkov: 415
Aktiv.: 1.77
Kraj: Mengeš

PrispevekObjavljeno: Sob Feb 08, 2014 10:10 am    Naslov sporočila:   Odgovori s citatom

@BluPhenix: tisti link me zanima. Prosim objavi če ga najdeš Very Happy
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vpeter
Član
Član



Pridružen-a: Pon 11 Jun 2012 16:05
Prispevkov: 370
Aktiv.: 2.33
Kraj: Maribor okolica

PrispevekObjavljeno: Sob Feb 08, 2014 11:54 am    Naslov sporočila:   Odgovori s citatom

Morda JOINT STRIKE FIGHTER AIR VEHICLE C++ CODING STANDARDS FOR THE SYSTEM DEVELOPMENT AND DEMONSTRATION PROGRAM Document Number 2RDU00001 Rev C December 2005?
Nazaj na vrh
Prisoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mujo
Član
Član



Pridružen-a: Ned 02 Jan 2005 19:24
Prispevkov: 746
Aktiv.: 3.14
Kraj: MB

PrispevekObjavljeno: Sob Feb 08, 2014 4:27 pm    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
BluPhenix
Član
Član



Pridružen-a: Pet 05 Mar 2004 12:54
Prispevkov: 1018
Aktiv.: 4.29
Kraj: Sežana

PrispevekObjavljeno: Ned Feb 09, 2014 2:59 pm    Naslov sporočila:   Odgovori s citatom

Mihec točno ta link, ki ga je objavil vpeter Smile
_________________
Exclamation Pravilo št. 1: Pišite slovensko, velja za vse.

TA SUHI ŠKAFEC PUŠČA. Saj ni tako težko, no!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
71GA
Član
Član



Pridružen-a: Tor 16 Jun 2009 18:53
Prispevkov: 391
Aktiv.: 2.00
Kraj: Ljubljana

PrispevekObjavljeno: Ned Feb 09, 2014 6:23 pm    Naslov sporočila:   Odgovori s citatom

Nekako se zanimam, da bi diplomo nadaljeval. Za začetek bi rad zdizajniral neke vrste "breadboard", da bi nožice čipa LPC3141 lahko spravil na protoboard.
LPC3141 ima podnožje TFBGA180, kjer so nožice dosegljive le na spodnji strani čipa.



V EAGLU sem že sprojektiral dve verziji podnožja (priloga). Pri prvem podnožju sem naredil napako. Proti koncu sem opazil, da nikakor ne morem ven
spraviti vseh 180 nožic in bo nujno potrebno uporabiti VIA ter zasnovati multilayer ploščico. Mi lahko mogoče kdo pove, kako pravilno zdimenzioniram sledi
("trace") za LPC3141? Glede na uporabniški priročnik ima mikrokrmilnik lahko izhodne tokove okoli 4mA. Koliko je max upornost sledi na PCB?



Iskal sem že, da bi na "breadboard" naspajkal TFBGA180 podnožje, ki bi omogočalo menjavo MCU brez spajkanja. Na žalost tako majhna podnožja stanejo
čisto preveč:



Ima kdo kako relativno poceni idejo / rešitev s katero bi nekako nadomestil tako podnožje?



LPC.zip
 Opis:
EEGLE knjižnice za LPC3141

Download
 Ime datoteke:  LPC.zip
 Velikost datoteke:  62.69 KB
 Downloadano:  0 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
BluPhenix
Član
Član



Pridružen-a: Pet 05 Mar 2004 12:54
Prispevkov: 1018
Aktiv.: 4.29
Kraj: Sežana

PrispevekObjavljeno: Ned Feb 09, 2014 7:05 pm    Naslov sporočila:   Odgovori s citatom

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.

_________________
Exclamation Pravilo št. 1: Pišite slovensko, velja za vse.

TA SUHI ŠKAFEC PUŠČA. Saj ni tako težko, no!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
71GA
Član
Član



Pridružen-a: Tor 16 Jun 2009 18:53
Prispevkov: 391
Aktiv.: 2.00
Kraj: Ljubljana

PrispevekObjavljeno: Čet Feb 13, 2014 8:57 pm    Naslov sporočila:   Odgovori s citatom

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. Shhh
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
Pojdi na:  
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