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


Pridružen-a: Sre 23 Jul 2008 21:51 Prispevkov: 812 Aktiv.: 3.94 Kraj: Med Vipavo in Štanjelom
|
Objavljeno: Ned Avg 25, 2013 8:55 pm Naslov sporočila: Prvi koraki s procesorji |
|
|
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 |
|
 |
smal Član


Pridružen-a: Pet 12 Mar 2010 23:19 Prispevkov: 227 Aktiv.: 1.22 Kraj: Effretikon
|
Objavljeno: Ned Avg 25, 2013 10:06 pm Naslov sporočila: |
|
|
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 |
|
 |
sortaj Član


Pridružen-a: Sre 23 Jul 2008 21:51 Prispevkov: 812 Aktiv.: 3.94 Kraj: Med Vipavo in Štanjelom
|
Objavljeno: Ned Avg 25, 2013 10:17 pm Naslov sporočila: |
|
|
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 |
|
 |
gregoral Član

Pridružen-a: Pet 24 Nov 2006 9:42 Prispevkov: 688 Aktiv.: 3.04 Kraj: Ljubljana
|
Objavljeno: Pon Avg 26, 2013 12:08 am Naslov sporočila: |
|
|
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 |
|
 |
SkunkyLee Član

Pridružen-a: Čet 12 Feb 2009 16:59 Prispevkov: 198 Aktiv.: 0.99 Kraj: Maribor, Ljubljana
|
Objavljeno: Pon Avg 26, 2013 12:43 am Naslov sporočila: |
|
|
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? 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.  |
|
Nazaj na vrh |
|
 |
PeterC Član

Pridružen-a: Tor 14 Dec 2004 20:22 Prispevkov: 204 Aktiv.: 0.86
|
Objavljeno: Pon Avg 26, 2013 12:48 am Naslov sporočila: |
|
|
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
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 |
|
 |
mujo Član


Pridružen-a: Ned 02 Jan 2005 19:24 Prispevkov: 746 Aktiv.: 3.14 Kraj: MB
|
Objavljeno: Pon Avg 26, 2013 8:41 am Naslov sporočila: |
|
|
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 |
|
 |
lbozo Član

Pridružen-a: Pet 18 Jan 2008 23:51 Prispevkov: 71 Aktiv.: 0.33 Kraj: Vodice
|
Objavljeno: Pon Avg 26, 2013 9:12 am Naslov sporočila: |
|
|
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 |
|
 |
sortaj Član


Pridružen-a: Sre 23 Jul 2008 21:51 Prispevkov: 812 Aktiv.: 3.94 Kraj: Med Vipavo in Štanjelom
|
Objavljeno: Pon Avg 26, 2013 9:15 am Naslov sporočila: |
|
|
Ž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 |
|
 |
mujo Član


Pridružen-a: Ned 02 Jan 2005 19:24 Prispevkov: 746 Aktiv.: 3.14 Kraj: MB
|
Objavljeno: Pon Avg 26, 2013 9:27 am Naslov sporočila: |
|
|
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 |
|
 |
nakamichi Član

Pridružen-a: Pon 21 Avg 2006 18:51 Prispevkov: 845 Aktiv.: 3.68 Kraj: Nova Gorica
|
Objavljeno: Pon Avg 26, 2013 9:51 am Naslov sporočila: |
|
|
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
L.P.,
Miha |
|
Nazaj na vrh |
|
 |
Mbili Član

Pridružen-a: Tor 03 Jan 2012 20:14 Prispevkov: 34 Aktiv.: 0.21 Kraj: Ljubljana
|
Objavljeno: Čet Avg 29, 2013 12:25 am Naslov sporočila: Re: Prvi koraki s procesorji |
|
|
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 |
|
 |
MvE Član


Pridružen-a: Ned 04 Jan 2009 12:24 Prispevkov: 146 Aktiv.: 0.73 Kraj: MB
|
Objavljeno: Ned Sep 01, 2013 8:14 pm Naslov sporočila: |
|
|
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 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 |
|
 |
|
|
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
|