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 

Prvi koraki s procesorji

 
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
sortaj
Član
Član



Pridružen-a: Sre 23 Jul 2008 21:51
Prispevkov: 812
Aktiv.: 3.94
Kraj: Med Vipavo in Štanjelom

PrispevekObjavljeno: Ned Avg 25, 2013 8:55 pm    Naslov sporočila:  Prvi koraki s procesorji Odgovori s citatom

V tej temi razpravljamo o nabavi vezij z Atmelovim procesorjem.
Ob zadnjem Maretovem sporočilu sem se zamislil in odločil odpreti temo v zvezi z začetki z mikroprocesorji.

Zanima me namreč, kako ste se lotili(tisti, ki delate/ste delali z mikroprocesorji) na začetku?
Jaz sem pristaš stare šole in sem začel pri branju podatkovnega lista, da se sploh seznanim s periferijo.
Potem je v podatkovnem listu precej izrazov in nastavitev v registrih, kjer je potrebno poznati ozadje periferije(na primer, delovanje DRAM-a, ethernet protokoli in nastavitve itn...), zato si moram v drugem čtivu prebrati še o tem.
V glavnem kar nekaj dela.
Sam bi namreč rad kak ta procesor programiral v C-ju, brez uporabe nekega strašnega operacijskega sistema (na primer Linux).
Je to sploh smiselno?
Kako programirate ostali?
Ko pogledam kakšno tako žival si kar ne morem predstavljati, koliko dela je zadaj. Se sploh kaj počne na nizkem nivoju?
Mimogrede, če je kakšen od RedPitaya ekipe na forumu bi mogoče želel kaj povedati o izdelavi te instrumentacijske ploščice?

Kako ste ostali začeli s procesorji?
Kako nalagate program v pomnilnik?
Katero programsko okolje uporabljate?
Kako obladovati "žival" z več 1000 stranmi podatkovnega lista?


V glavnem...
Precej vprašanj...

_________________
Svet je bil analogen, dokler ni Planck vsega zafrknil...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
smal
Član
Član



Pridružen-a: Pet 12 Mar 2010 23:19
Prispevkov: 227
Aktiv.: 1.22
Kraj: Effretikon

PrispevekObjavljeno: Ned Avg 25, 2013 10:06 pm    Naslov sporočila:   Odgovori s citatom

Vse je odvisno koliko časa boste namenili razvoju hardvera in pozneje softvera. In pa seveda če boste pri vsem tem delu sami.
No v primeru, da bi hitro hoteli imeti kaj za pokazati šefu Vam svetujem da vzamete kakšno procesorsko plato kjer ima vsebovano že vso periferijo in tudi softver je bil že preizkušen za posamezne sklope, npr.:

http://www.ebay.de/itm/STM32F4-DISCOVERY-USB-STM32F407VGT6-STM32-ARM-Cortex-M4-Development-Board-Embed-/170884988017?pt=Bauteile&hash=item27c989fc71

http://www.ebay.de/itm/Olimex-STM32-H407-St-STM32F407-Cortex-M4-Header-Board-Ethernet-Usb-/281143608624?pt=Wissenschaftliche_Ger%C3%A4te&hash=item4175770530

http://www.ebay.de/itm/NEU-NXP-ARM-Cortex-M3-LPC1768-Development-Board-3-2-TFT-LCD-Module-64KB-SRAM-/320942666451?pt=Wissenschaftliche_Ger%C3%A4te&hash=item4ab9ac72d3

Ko se vidi kaj vse posamezen procesor zmore, se naredi board npr. z JTAG-om in pripadajočo periferijo, ki bo ustrezala vašim zahtevam. Za osnovo softvera vzamete kodo, ki je že bila preizkušena na development bordu. Če nimate na voljo veliko resursov je najboljša while(1) zanka, to pomeni brez operacijskega sistema. Če boste vpeljali operacijski sistem se vse bistveno zakomplicira, vso že obstoječo kodo boste morali prilagoditi na OS in pri tem še odpravljati buge OS-a in svoje kode.
Torej vse je stvar tega kaj rabite in koliko ste pripravljeni žrtvovati, da dosežete cilj.
lp
Simon

_________________
Dr. Milan Vidmar: Transformation und Energieübertragung (1945, s.1)
Wir Techniker sind Kämpfer, technische Probleme sind Kampfprobleme!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
sortaj
Član
Član



Pridružen-a: Sre 23 Jul 2008 21:51
Prispevkov: 812
Aktiv.: 3.94
Kraj: Med Vipavo in Štanjelom

PrispevekObjavljeno: Ned Avg 25, 2013 10:17 pm    Naslov sporočila:   Odgovori s citatom

Trenutno sem še študent in nimam šefa, le zanimanje.
Običajno imam tudi dovolj časa(trenutno ne najbolj).

Drugače sem imel pod "procesorji" v mislih mikroprocesorje, navadno namenjene že skoraj osebnim računalnikom, torej zadevščine, ki tečejo na 400MHz+.
To kar niso več vgrajeni sistemi.

lp

_________________
Svet je bil analogen, dokler ni Planck vsega zafrknil...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
gregoral
Član
Član



Pridružen-a: Pet 24 Nov 2006 9:42
Prispevkov: 688
Aktiv.: 3.04
Kraj: Ljubljana

PrispevekObjavljeno: Pon Avg 26, 2013 12:08 am    Naslov sporočila:   Odgovori s citatom

Jaz gledam na to takole:
- če boš ves software na ploščici napisal sam potem OS ne rabiš
- če želiš imeti gor TCP, USB, DNS, Terminal, SSH, WEB strežnik, ... potem skoraj rabiš linux ali kak drug OS
- prednost OS-a je v tem da lahko uporabiš že napisane programe / projekte
- če je pa zadeva bolj namenska (recimo logic analyzer) potem pa vse napišeš sam

LP, Gregor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
SkunkyLee
Član
Član



Pridružen-a: Čet 12 Feb 2009 16:59
Prispevkov: 198
Aktiv.: 0.99
Kraj: Maribor, Ljubljana

PrispevekObjavljeno: Pon Avg 26, 2013 12:43 am    Naslov sporočila:   Odgovori s citatom

sortaj je napisal/a:
Trenutno sem še študent in nimam šefa, le zanimanje.

Ne zameri, nič slabega ne mislim s tem... Vendar, kakšen študent ne razume, kaj se dogaja na mikroprocesorskem nivoju? Smile Malo poveži osnove digitalne tehnike, vaje iz programiranja mikrokrmilnikov, mogoče prebereš še kakšen datasheet ali dva, pa ti stvari ne bi smele biti neznanka.

Tale Red Pitaya se zadnje čase kar rada vlači po slovenskem kotu interneta, pa me osebno nič kaj pretirano ne navduši. Ne da imam kaj proti ekipi, vsa jim čast da so našli izdelek ki ljudi zanima, vendar iz inženirskega vidika zadeva ni nič kaj posebnega.

Moj nasvet je da si zrihtaš eno Arm ploščo ter kakšen poceni LDC zaslon, potem pa napišeš kakšno knjižnico za nadzor. Smile
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
PeterC
Član
Član



Pridružen-a: Tor 14 Dec 2004 20:22
Prispevkov: 204
Aktiv.: 0.86

PrispevekObjavljeno: Pon Avg 26, 2013 12:48 am    Naslov sporočila:   Odgovori s citatom

Citiram:
Sam bi namreč rad kak ta procesor programiral v C-ju, brez uporabe nekega strašnega operacijskega sistema (na primer Linux).


Uf... Zakaj? Sicer lahko, če si zares želiš. Lahko tudi v asemblerju Wink

Ponavadi imajo takšni procesorji s konfiguracijsko besedo (preko pinov) določeno iz kje naj se bootajo (NOR, NAND, SPI FLASH,...). Iz tega medija se najprej štarta uboot, ki podpira malo morje file sistemov in ethernet opcij boota. Ta potem naloži in štarta Linux.

Potem pa voziš svojo while(1) zanko v Linuxu.

In če si pridno prerisal svoj sistem po shemi development boarda in dobil source uboota ter linuxa, sploh ne rabiš naštudirat nobenega registra. Če si pa kaj spremenil (velikost rama, FLASHa, ...), pa spremeniš kak define in na novo skompajlaš...

Tu je čar uboota in Linuxa. Ker se hočeš čimprej ukvarjati s svojo aplikacijo in čimmanj časa pokuriti za spoznavanje procesorja. Pa še koda je (načeloma dokaj) prenosljiva iz procesorja na procesor.

_________________
Time is like a fuse, short and burning fast
Nazaj na vrh
Skrit 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: Pon Avg 26, 2013 8:41 am    Naslov sporočila:   Odgovori s citatom

Sam sem programiral precej družin mikrokontrolerjev (stm32, avr, msp430, 8051, pic,...) v različnih programskih jezikih (asm, c, ...).
Uporabljal sem tudi nekaj ARM zverin (Diopsis od atmela, am335 od texasa, ...) - kjer sem poganjal linux.

Povzetek s tega lahko povem:
Z programskega stališča je čisto vseeno katero kombinacijo uporabiš.
Lahko pišeš v asm, C - na koncu je odvisno od zahtev in časa.

Na mikrokontrolerjih lahko tudi uporabiš (embedded) operacijski sistem ki olajša programiranje, omogoča dodatne prednosti. Taki operacijski sistem je recimo FreeRTOS. Je pa na internetu ogromno (res ogromno) embedded operacijskih sistemov, ki so optimizirani za kakšno platformo. Ti imajo še vgrajen HAL tako, da še dodatno poenostavijo programiranje (ni potrebno tolikšno znanje o periferiji).

Dodaten plus v zadnjem času je, da so se velike firme opazile male stranke (hobby) in so začele za njih (nas) olajševati zadeve. Tako da se že na strani proizvajalca najde ogromno literature in primerov. Ter knjižnice ki olajšajo delo z periferijo. Tako da lahko uporabiš večino funkcij mikrokontrolerja, ne da bi točno pogledal kaj in kako nastaviti v registrih.
Ampak vse ni lepo in dobro - te knjižnice so ne optimizirane.

Sam nikoli nisem prebral celega 1000+ dolgega datasheeta. Prebere se tisto kaj je pomembno. Najprej o samem procesorju, vodilih, kako se vodi signal ure, sistemska periferija. Potem pa se gre na dodatne zadeve (SPI, AES,... ostala periferija).

Na zmogljivejših procesorjih (am335) sem uporabljal linux. V tem primeru sem se več ubadal z linux-om kot procesorjem. Sam sem imel srečo, da je bila vse periferija katero sem uporabljal že podprta v jedru. Samo sem prevedel z svojo konfiguracijo, si spisal svoj board file (v tej datoteki se opiše katera periferija se uporablja, kaj je priključeno na njo,...). Ko je vse to narejeno pa se samo programira kot za "običajni" linux.

Pred izbiro procesorja/mikrokontrolerja je dobro prebrati errato. Tam se vidi kaj so napake te naprave. Lahko se zgodi, da ravno tisto, kaj te najbolj pritegne za izbiro ima neko napako.

Je pa vse odvisno od zahtev in časa. Za prižiganje ene LED in vklop releja je nesmiselno uporabiti arm na katerem teče linux. Nesmiselno je tudi narediti neko hudo napravo z high-res LCD, ethernet, wifi na 8 bitnem mikrokontrolerju.

Glede na to, da praviš, da si študent si lahko privoščiš kaj te zanima. Si zmisliš in greš na neko X platformo in jo spoznaš. Se ti zdaj zalušta linux in ga naštudiraš in uporabiš nekje. Pa tudi če samo napišeš hello world. To je že dosti.
Sam sem bil trmast in ko so vsi uporabljali at mege, sem jaz začel z uporabo msp430. Res sem porabil dosti več časa (da sem spoznal platformo) ampak sem se ogromno naučil.

Razvojne plošče pa so smešno poceni (stm32 discovery; msp430 launchpad; nxp LPCXpresso; beaglebone; magari rasberry pi, ...) - tako da to tudi ni izgovor (če pa je pa ti kako lpcxpresso platko podarim).
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
lbozo
Član
Član



Pridružen-a: Pet 18 Jan 2008 23:51
Prispevkov: 71
Aktiv.: 0.33
Kraj: Vodice

PrispevekObjavljeno: Pon Avg 26, 2013 9:12 am    Naslov sporočila:   Odgovori s citatom

Jaz sem začel z Atmel mikrokontrolerji in knjigo "Programiranje mikrokontrolerjev s programskim jezikom Bascom".
Prvi programator sem si naredil sam po načrtu iz revije "Svet elektronike"-Tafe programator.
Veliko si pomagam z revijo Svet elektronike in s forumi.
Pred leti sem imel srečo, da sem na tem forumu ujel skupno naročilo za Usb programator in od takrat programiram z njim.
Programski jezik Bascom se mi je zdel za začetek najenostavnejši. Sem pa pred kratkim to odločitev obžaloval, ker je bilo pri nekem projektu nujno znanje jezika C.
Datasheet-e pogledam, ko potrebujem kakšno podrobnost. Mislim, da ne rabim nujno poznati podrobnega delovanja mikrokontrolerja, da ga lahko uporabljam.
Bascom ima vgrajenih veliko rutin oziroma ukazov, ki olajšajo programiranje npr.:
Izpis na lcd, zapisovanje v eprom, i2c komunikacija.

_________________
Lep pozdrav, Božo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
sortaj
Član
Član



Pridružen-a: Sre 23 Jul 2008 21:51
Prispevkov: 812
Aktiv.: 3.94
Kraj: Med Vipavo in Štanjelom

PrispevekObjavljeno: Pon Avg 26, 2013 9:15 am    Naslov sporočila:   Odgovori s citatom

Živjo

SkunkyLee je napisal/a:
... Vendar, kakšen študent ne razume, kaj se dogaja na mikroprocesorskem nivoju?

Očitno moram par stvari še objasnit.
Z "tamalimi" mikrokontrolerji sem že kar nekaj delal: Najprej AtMega8, nato MSP430, LPC2148 in potem AtSAM4s. Vse sem programiral v C-ju in sem napisal svoje knjižnice za periferijo.
Sedaj se zanimam za kakšne hujše "žverce", kot so že omenjeni AM335x, i.MX itd.
Prva težava, s katero se soočam je nepregledno dolg podatkovni list(za AM335x in i.MX51 ~4000 strani) in programsko okolje za procesor. Programska okolja za "majhne" mikrokontrolerje so povečini na voljo zastonj od proizvajalcev. Za te večje (vsaj pri Atmelu) tega ni. Pa tudi pri ostalih kot sem gledal, so plačljiva.
Očitno mi kot GNU/Linux pristašu ostane konzola.

PeterC je napisal/a:
...
In če si pridno prerisal svoj sistem po shemi development boarda in dobil source uboota ter linuxa, sploh ne rabiš naštudirat nobenega registra. ...

Ni ravno, kar bi jaz hotel. Knjižnicam proizvajalcev se ravno zato izogibam, ker nimam nadzora nad tem, kaj počnejo. Vsaj ne popolnega. Če bi hotel, bi moral vse naštudirat. To pa je že blizu temu, da jih sam napišem.

mujo je napisal/a:
...
Uporabljal sem tudi nekaj ARM zverin (Diopsis od atmela, am335 od texasa, ...) - kjer sem poganjal linux.
...
Uf...
Kako si pa dobil podatke o Diopsis procesorju. Ko sem nazadnje gledal, nisem uspel dobiti nič pametnega.
mujo je napisal/a:

Glede na to, da praviš, da si študent si lahko privoščiš kaj te zanima. Si zmisliš in greš na neko X platformo in jo spoznaš. Se ti zdaj zalušta linux in ga naštudiraš in uporabiš nekje. Pa tudi če samo napišeš hello world. To je že dosti.
Zelo verjetno bom tako naredil.
mujo je napisal/a:

Razvojne plošče pa so smešno poceni (stm32 discovery; msp430 launchpad; nxp LPCXpresso; beaglebone; magari rasberry pi, ...) - tako da to tudi ni izgovor (če pa je pa ti kako lpcxpresso platko podarim).
Hvala za ponudbo.
Teh ploščic imam tudi jaz eno majhno morje(STM32, Stellaris, MSP430, itn...) in bi to verjetno bila samo še ena, ki bi nabirala prah.

Očitno bom moral začet z poganjanjem GNU/Linux-a...

Hvala vsem za odgovore.
Če je še kdo uporabljal te "žverce" pa naj kar napiše.


lp

_________________
Svet je bil analogen, dokler ni Planck vsega zafrknil...
Nazaj na vrh
Skrit 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: Pon Avg 26, 2013 9:27 am    Naslov sporočila:   Odgovori s citatom

sortaj je napisal/a:

mujo je napisal/a:
...
Uporabljal sem tudi nekaj ARM zverin (Diopsis od atmela, am335 od texasa, ...) - kjer sem poganjal linux.
...
Uf...
Kako si pa dobil podatke o Diopsis procesorju. Ko sem nazadnje gledal, nisem uspel dobiti nič pametnega.


Izgleda, da se o njem na njihovi strani precej manj najde kot se je nekoč.
Probaj iskati kot Atmel 940HF

Če potrebuješ kakšen dokument mi javi.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
nakamichi
Član
Član



Pridružen-a: Pon 21 Avg 2006 18:51
Prispevkov: 845
Aktiv.: 3.68
Kraj: Nova Gorica

PrispevekObjavljeno: Pon Avg 26, 2013 9:51 am    Naslov sporočila:   Odgovori s citatom

SkunkyLee je napisal/a:
Tale Red Pitaya se zadnje čase kar rada vlači po slovenskem kotu interneta, pa me osebno nič kaj pretirano ne navduši. Ne da imam kaj proti ekipi, vsa jim čast da so našli izdelek ki ljudi zanima, vendar iz inženirskega vidika zadeva ni nič kaj posebnega.


Ne vem, če bi se ravno strinjal, zadeva ima dokaj zmogljiv procesor in FPGA ter zelo spodobne AD in DA vmesnike, omogoča kar nobena druga uC plošča ne omogoča..zajem, obdelavo in generacijo signalov v realnem času. Z raspberryjem boš to zelo težko naredil...enako z beaglebone..za inženirja veliko bolj uporabno kot sam procesor. Morda tako razmišljam, ker nisem samo SW...ampak delam od PCBja, preko HW do SW in meritev ter overjanja. Globalno gledano omogoča več..in je orodje iz mojega stališča. Seveda je potrebno več znanja za implementacijo FPGAja in OSa. Je pa to moje skromno mnenje, ko bo denar, si ga bom omislili kot spekralni analizator za nizke frekvence, morda se bo našel še kakšen front-end za RF Dancing

L.P.,
Miha
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Mbili
Član
Član



Pridružen-a: Tor 03 Jan 2012 20:14
Prispevkov: 34
Aktiv.: 0.21
Kraj: Ljubljana

PrispevekObjavljeno: Čet Avg 29, 2013 12:25 am    Naslov sporočila:  Re: Prvi koraki s procesorji Odgovori s citatom

sortaj je napisal/a:

...
Zanima me namreč, kako ste se lotili(tisti, ki delate/ste delali z mikroprocesorji) na začetku?
...


Za manjše mikrokrmilnike (sam si jih naštel nekaj s katerimi si delal)

sortaj je napisal/a:

... Z "tamalimi" mikrokontrolerji sem že kar nekaj delal: Najprej AtMega8, nato MSP430, LPC2148 in potem AtSAM4s. ...


lahko posameznik še skoraj vse naredi sam, pri večjih (ARM Cortex A5, A8, A9, ... ) pa je za obvladovanje celega mikrokrmilnika potrebna že ekipa več ljudi. Torej:

Za spoznavanje dela z zmogljivejšimi mikrokrmilniki je pametno najprej izbrati čim bolj razširjen in čim bolj cenovno ugoden izdelek, za katerega je prosto dostopna (vsa) dokumentacija in ima vgrajeno eno od "zverin". Tak izdelek je recimo "črna pasja kost" s TI čipom. Precej izdelkov je tudi na čipih od Freescale-a, Samsung-a, Allwinner-ja, Nvidia-e, so pa ali dražji, ali pa je težje priti do informacij o "drobovju".

Drugič, brez GNU/Linux-a, ali RTOS-a, ali ..., bo šlo težko, ker so tu največje knjižnice že delujoče kode ter ekipe odličnih programerjev in je tu najlažje dobiti pomoč, če se kje zatakne. In pa: začneš pri neki delujoči konfiguraciji perifernih naprav in potem vrtaš po želji v globino tudi do nivoja registrov, če je potrebno.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
MvE
Član
Član



Pridružen-a: Ned 04 Jan 2009 12:24
Prispevkov: 146
Aktiv.: 0.73
Kraj: MB

PrispevekObjavljeno: Ned Sep 01, 2013 8:14 pm    Naslov sporočila:   Odgovori s citatom

Ena stvar me zanima pri tem - multitasking. Če prav razumem bi se naj operacijski sistemi uporabljali tudi za to. Kako to izgleda? Delovanje mi je jasno, ampak ali ima Linux napisane funkcije za multitasking? Nikoli še nisem delal z OS na mikrokrmilnikih ali procesorjih, zato bolj čudna vprašanja Rolling Eyes Sicer se da neke vrste sam napisat primer tega programa pa vseeno, ga imajo vsi Linuxi "vgrajenega"? So lahko kakšne omejitve zaradi procesorja? Se tudi tukaj določajo prioritete pa taskih?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
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
Stran 1 od 1

 
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: 7 dni


Powered by phpBB © 2001, 2005 phpBB Group