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

Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 70800.54
|
Objavljeno: Pet Apr 07, 2006 2:00 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.56
|
Objavljeno: Pet Apr 07, 2006 2:03 pm Naslov sporočila: |
|
|
No, 128-256 bajtov sploh ni malo Odvisno od prevajalnika ti funkcija/procedura najbrz ne bo vsakic porabila enako stacka, ampak odvisno od situacije; npr. ce je funkcija klicana samo enkrat ali dvakrat v celi kodi, napisana pa je iz estetskih razlogov (da je koda lazje berljiva), potem jo bo dovolj inteligenten prevajalnik prevedel "inline", torej neposredno vkljuceno na mesto navideznega klica (= brez klica). Enako ni nobene potrebe, da bi bil stack frame vsakic iste oblike, ampak je lahko kdaj manjsi, kdaj vecji (po potrebi) in je tako edini "obvezni" element, spravilu katerega se ne mores izogniti niti pri klicu funkcij v assemblerju, PC.
Najpreprostejse funkcije lahko v C-ju opises tudi v obliki nekaksnih makrov z #define, in potem delujejo enako kot prave inline funkcije (koda je vstavljena na navidezno mesto klica). Tako zrtvujes nekaj (nekaj bajtov, ne govorimo o kaksnih bajnih stevilkah) programskega pomnilnika in prihranis nekaj bajtov stacka (ki ga je na voljo manj kot flasha).
Paziti je seveda potrebno pri rekurziji (da ne zaides pregloboko in SP odtava ven iz RAMa oz. se obrne naokoli in pregazi spodnje registre), a tega si zagotovo ze navajen pri Bascomu, kjer veljajo iste omejitve platforme. Ce ne poganjas nicesar rekurzivno, potem lahko ocenis potrebno globino in vidis ali si sel predalec ali ne, mislim pa, da bos zelo tezko prisel do omejitve, ce ne bi tega ravno pocel namenoma. |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3361 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Pet Apr 07, 2006 5:23 pm Naslov sporočila: Potem pa naprej! |
|
|
Potem pa naprej!
Po nasvetu sem si pretočil iz Keil-love strani C51 DEMO
Kot sem prebral, je več kot dovolj za moje male atmelčke in 8252!
Bom javil, kako se bil uspešen!
Morda bom še kaj spraševal, pa ne bodite hudi!
Pozdrav! _________________ Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart |
|
Nazaj na vrh |
|
 |
silica Član

Pridružen-a: Ned 29 Avg 2004 20:01 Prispevkov: 360 Aktiv.: 1.52 Kraj: Logatec
|
Objavljeno: Pet Apr 07, 2006 9:03 pm Naslov sporočila: |
|
|
Sokrat, Keilovih MCB2130 in ULINK USB JTAG adapterjev je se nekaj
na voljo (http://www.silica.com/en/news_events/productnews/keil_lpc.html).
Najbolje da Boris organizira kaksno skupno nabavo, ce je se kdo interesent.
LP Tomaz _________________ Za www.quectel.com |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3361 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Sob Apr 08, 2006 9:03 am Naslov sporočila: Prvi dotik |
|
|
uVision C 8051 prvi vtisi in primerjava z Bascom8051
Potem, ko sem pretočil k sebi demo distribucijo orodij za 8051, se je le ta lepo in brez problemov instalirala a c:\keil
1. Med tem, ko so programi v Bascomu vedno v celoti v neki datoteki, se pri
uVision nahajo vsak v svojem direktoriju, kjer so datoteke, ki skupaj sestavljajo programe, ki se tukaj imenujejo projekti. Ni dovolj, da napišeš program v C-u in ga prevedeš, kot se to zgodi v Bascomu, potrebno je da se naredi več stvari, in program narediš z Build Targets ali nekaj takega. Le to vsebuje prevajanje programa in dograjevanje v programu klicanih podprogramov in definicij (stdio.h, etc) To je lahko tudi prednost, posebno, če kombiniraš dele programov, narejene z različnimi orodji, recimo podprograme v assemblerju. A zahteva malo več miselne telovadbe.
2. Med tem, ko je z Bascomom dobi cca 80 programov-primerov za učenje, je pri uVision C 8051 le slabih 30, pa še ti so zelo elementarni kod "Hello" in podobno, a organizirani za različne mikroprocesorje. Nisem našel recimo nekaj podobnega, kot je v Bascom.primerih LCD.bas, kjer je prikazano, kako priključiti in kako uporabljati LCD.
3. Med tem, ko sem uspel brez napak sestaviti projekt "Hello", če je bil ta v oroginalnem direktoriju, sem dobil napake, če sem direktorij prekopiral na drugo mesto, pred vsem zato, da ne bi na originalu kaj 'zapacal'. Pri build targets mi je javil napake, nedefiniran naslov. Verjetno le ni vse prav nastavljeno. Bom moral še raziskati.
4. Med tem, ko pri bascomu kar v programu povemo recimo
Koda: |
$regfile = "89s8252.DAT"
$crystal = 11059200
$baud = 2400 |
in potem bascom sam postavi interne registre na pravo vsebino, je potrebno pri C-u pravo vsebino registrov vedeti in nastaviti z
Koda: |
#ifndef MONITOR51
SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */
TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */
TH1 = 221; /* TH1: reload value for 1200 baud @ 16MHz */
TR1 = 1; /* TR1: timer 1 run */
TI = 1; /* TI: set TI to send first char of UART */
#endif |
--
Nisem še uspel se prebiti skozi vse tiste nujno potrebne možnosti, ki jih nudi uVision in ki jih moram obvladati, da preprost program spravim v delovanje. Potreboval bi pomoč. Ali je me vami kdo, ki bi se mi javil za tutorja, da pridem preko prvih čeri in prideva do tega, da dobim "Hello World" iz mojega mikroprocesorja, se pravi, da dobim .hex datoteko na disku, ki jo lahko pretočim v mikroprocesor z programatorjem PG302. Seveda s tem ne bi obremenjavli foruma, to pomoč bi prosil preko zasebnih sporočil ali email-a
--
Pozdrav _________________ Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.32
|
Objavljeno: Sob Apr 08, 2006 9:43 am Naslov sporočila: |
|
|
Da ne bo tema zaplavala nekam drugam?  |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3361 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Sob Apr 08, 2006 10:56 am Naslov sporočila: Odstopam! |
|
|
Odstopam!
Ne toliko, ker bi bil razočaran z uVision orodjem, saj vem, da ga še ne poznam, in so verjetno zadovoljivi odgovori na vsa moja vprašanja, temveč zato, ker si ga enostavno ne morem privoščiti. Ravnokar sem dobil cenik od zastopnika, kjer bi moral za razvojni komplet 8051 plačati 2600EUR kar je izven moje kupne moči, med tem, ko sem si BASCOM8051 lahko kupil. Sedaj se več ne spomnem, koliko sem zanj dal, a mislim, da tam nekje okrog 30.000.- Sit ali manj.
Tako je, mislim, ta tema s tem zaključena.
Hvala vsem sodelujočim
VS _________________ Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.32
|
Objavljeno: Sob Apr 08, 2006 12:44 pm Naslov sporočila: |
|
|
Nikar ne obupaj tako hitro. Obstajajo tudi brezplačna orodja za razvoj. Za 8051 nisem ravno prepričan, vendar za ARMe obstaja popolnoma brezplačen prevajalnik GCC, debuger (GDB oz. Insight), tudi JTAG je zelo poceni (kakšen EU ali dva).
Zanimivo bi bilo zvedeti, kdo vse uporablja uVision tukaj (no ali pa katero drugo razvojno orodje, ki ni brezplačno). In koliko od vseh teh ga uporablja legalno. Če bi bili vsi pošteni, bi se od tukaj sodelujočih oglašal le eden ali pa morda še kakšen.
Za info, jaz uporabljam gcc. Kot si napisal, nekaj o tem piše tudi v SE. Če si pa prebral, da potrebuješ Unix, si pa slabo bral.  |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 70800.54
|
Objavljeno: Sob Apr 08, 2006 1:29 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.32
|
Objavljeno: Sob Apr 08, 2006 2:06 pm Naslov sporočila: |
|
|
Plate gor ali dol, če pozabiš povedat, da ULINK dela samo s Keilovim razvojnim okoljem.
Torej, kupim board za 25 jurjev. Dobim JTAG, ki dela samo z enim orodjem in še to je omejeno na 16KB.
Kaj naj naredim, ko mi bo 16KB premalo? Kupim celo verzijo za par tisoč $. Uporabim drugo okolje, kjer ULINK ne dela? Emule?
Kaj pa IAR... uh, malce več svobode ponuja.
(je možno odpreti anketo in iskreno odgovoriti na "Uporabljam: "
- kupljen Keil
- demo Keil
- skrekan/shekan/whatever Keil
- ... |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3361 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Sob Apr 08, 2006 10:36 pm Naslov sporočila: OK |
|
|
OK, bom posvetil še nekaj časa Demo verziji za 8051, morda pridem 'na okus krvi', kot smo temu včasih rekli.
Hvala za vzpodbude! _________________ Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.56
|
Objavljeno: Sob Apr 08, 2006 11:15 pm Naslov sporočila: |
|
|
Vilko, moj odgovor se nanasa na vse (od ugotovitve kaj vse uVision omogoca, do tega kako je potrebno delati z njim in seveda cene/omejitev):
Glede na to, da si navajen na en visokonivojski jezik (s precej omejitvami), sem mocno preprican, da bos kvecjemu profitiral s skokom v drugacne vode, tudi ce za vecje hisne projekte ne ostanes pri uVisionu (zaradi cene in s tem povezanih moralnih zadrzkov recimo). Kot si ze sam ugotovil, je C precej manj prizanesljiv (= zahteva boljse poznavanje arhitekture, ki je prakticno na nivoju, potrebnemu za delo v assemblerju, le da poenostavi zapis koncnega programa) od Bascoma, kar ti bo kvecjemu koristilo, saj bos arhitekturo spoznal bolj podrobno, ne le tisto, kar je skrito za debelim nivojem (vgrajenih) knjiznic.
Sam si tudi ugotovil, da je ena tipicnih lastnosti C-ja uporaba "deljene" (shared) kode iz zunanjih enot (knjiznic), kar ti Bascom bolj ali manj uspesno prikrije (prikrije ze uspesno med programiranjem, vprasanje pa je kako to vpliva na velikost koncnega programa - ali vkljuci samo relevatno kodo npr. za LCD, ali kar celo knjiznico ...). Kot bos ugotovil po nekoliko daljsem ukvarjanju, je to ogromna prednost - nisi namrec omejen na knjiznice, ki pridejo s programom, ampak najdes take, ki tebi ustrezajo in jih morda tudi nekoliko prilagodis. Potem jih lahko uporabis v vsaki aplikaciji, a morda spet s kaksno malenkostno spremembo (drugacen tip LCDja recimo ? itd.), v koncni izdelek so pa vkljucene le v delu, ki je relevanten za tvoj program. Mislim, da je to velik plus, ki ti bo zagotovo vsec, ko bo enkrat imel napisane headerje s kljucnimi funkcijami, ki jih uporabljajo vsi tvoji projekti. Z lastnim razvojem le-teh pridobis ogromno fleksibilnosti v primerjavi z nespremenljivimi knjiznicami Bascoma, je pa res, da je vanje potrebo vloziti nekaj dela (ce jih ni napisal ze kdo drug - recimo proizvajalec orodja).
Z boljsim poznavanjem arhitekture bos zagotovo tudi raje posegel po programiranju v assemblerju, ki ni nikakrsen bavbav in je za manje (ali casovno kriticne; mislim "casovno" ob izvajanju, ne po casu razvoja) projekte edina resna moznost, saj vse drugo pobere enako casa, rezultat je pa nekajkrat vecja koda.
Pa se o brezplacnih orodjih: za ARMe so ze omenili gcc (ki je precej glomazna zadeva, a je na voljo popolnoma zastonj). Tudi za 8051 ocitno obstaja podoben projekt (SDCC); manj glomazna stvar, a pravtako povsem brezplacna. Jaz se se nisem ukvarjal z njim, a ne more biti nic posebno kompliciranega v primerjavi z gcc-jem - ce bi se ga rad lotil in rabis kaksne napotke, si ga lahko ogledam od blizu ... po izkusnjah z drugimi podobnimi orodji najbrz ne more biti kompliciran za uporabo in bi z njim kar hitro prisel do delujocega programa - nima pa zelo uporabnih igrack, ki jih Keilovo okolje ima (sploh simulator z vsemi pritiklinami je odlicen).
Kakorkoli ze, ne se ustrasiti Raje vparsaj kaksno stvar vec kot premalo, lahko tudi po PM (ce ti bom znal pomagati). |
|
Nazaj na vrh |
|
 |
Proteus Član



Pridružen-a: Sre 15 Jun 2005 10:03 Prispevkov: 1943 Aktiv.: 8.20
|
Objavljeno: Ned Apr 09, 2006 12:22 pm Naslov sporočila: |
|
|
No končno konkretna vprašanja
Citiram: |
Med tem, ko so programi v Bascomu vedno v celoti v neki datoteki, se pri
uVision nahajo vsak v svojem direktoriju, kjer so datoteke, ki skupaj sestavljajo programe |
Sam sem nad Bascomom obupal že pred leti, predvsem zaradi njegove počasnosti, zato lahko napišem nekaj primerjav med njim in C.
Običajna praksa pri programiranju je, da program razbiješ po smiselnih celotah v ločene datoteke (n.pr. "lcd.c", "tipkovnica.c", "EEPROM.c" itd...). Na ta način lahko isto kodo uporabljaš v več projektih. Predvsem je njeno vzdrževanje tako bistveno lažje, kot pa da segmente kopiraš iz datoteke v datoteko.
Tudi sicer je sistem "vsa koda v eni datoteki" primeren le za dokaj enostavne projekte. Nihče pa ti ne brani, da to ne delaš tudi v C-ju.
Citiram: |
Med tem, ko je z Bascomom dobi cca 80 programov-primerov za učenje, je pri uVision C 8051 le slabih 30. |
To ni čisto res, na C moraš gledati širše, saj lahko uporabiš segmente kode, ki so namenjeni kakšni povsem drugi zadevi; algoritem je pač algoritem. Velikokrat lahko z majhnimi spremembami uporabiš tudi kodo, ki je namenjena AVR-jem, PIC-em itd...
Citiram: |
sem dobil napake, če sem direktorij prekopiral na drugo mesto |
To sem preveril in deluje 100% brez problema. Hello demo sem skopiral sem ga na "C:\HELLO". Ga odprl: <Project> -> <Open Project> in <Build target> (lahko tudi tipka F7) deluje brez problema.
Napiši kaj več; kaj konkretno ti javi?
Citiram: |
4. Med tem, ko pri bascomu kar v programu povemo recimo |
Bascom ima pač že vgrajene knjižnice za določene funkcije. Na osnovi frekvence kristala (ki jo podaš) ti že pripravi funkcije za serijsko komunikacijo itd... To v C-ju poteka na malce drugačen način, saj nima integriranih tovrstnih funkcij.
Za začetnike je to sicer super, toda takoj ko hočeš nekaj več trčiš v omejitve. Tukaj boš pač moral ugrizniti v kislo jabolko. Pozitivna stran kislega jabolka je bistveno večji nadzor nad HW-jem in bistveno boljše performanse sistema.
Citiram: |
se pravi, da dobim .hex datoteko na disku, |
Da dobiš HEX datoteko moraš v <Project> -> <Options for Target>; zavihek "Output" označiti opcijo "Create HEX file".
Citiram: |
temveč zato, ker si ga enostavno ne morem privoščiti. |
To se da zaobiti na dokaj eleganten in legalen način. Za začetek je 4K več kot dovolj. Nadalje lahko določene zadeve prevedeš ločeno (n.pr. vse tekste za LCD itd...) in jih "relociraš" v višje dele memorije. Pa še kaj se najde  |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3361 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Ned Apr 09, 2006 8:35 pm Naslov sporočila: Hvala Proteus za konkretne odgovore |
|
|
Hvala Proteus za konkretne odgovore! Trenutno se še prebijam skozi help, in bom šel po tej poti, da bom najprej enostavne naloge, ki jih v Bascomu že obvladam, poizkusil realizirati v C-ju.
lcd.c hm, ja ampak jaz ga ne znam napisati, v bascomu mi ni bilo potrebno študirati protokola, s katerim komunicirata uP in lcd. Ali ima uvision kako knjžnico, kjer bi bili podprogrami, ki jih lahko vključim v moj program za komuniciranje s C-jem, I2c, 1wire, in podobno. Prepričan sem, da nima smisla ponovno odkrivati kolo, to so že izumili, torej tudi taki podprogrami so že napisani. Samo kje jih iskati, v okviru uvision ali izven njega
Hvala
vs _________________ Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 70800.54
|
Objavljeno: Ned Apr 09, 2006 9:54 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
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: 495 dni
Powered by phpBB © 2001, 2005 phpBB Group
|