Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MC9S08, arhitektura, performanse, programiranje i razvojni alati

[es] :: Elektronika :: Mikrokontroleri :: MC9S08, arhitektura, performanse, programiranje i razvojni alati

Strane: 1 2 3

[ Pregleda: 11137 | Odgovora: 46 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pelctronics
Beograd

Član broj: 133821
Poruke: 74
*.astra-net.com.



Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati23.02.2007. u 22:42 - pre 209 meseci
Sto se tice kompajlera za 21vek najbolje bi bilo da da uzmes mikrofon i kazes tvom malisi sta treba da uradi i on pakuje hexa kod u memoriju hahah...Ja sam dao ideju nije to mala stvar..
Ako hocete da razvijate tako nesto ja sam uz vas barem da vam kuvam kafu... dok radite..

Pozdrav
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati24.02.2007. u 15:09 - pre 209 meseci
OK

Samo nisi rekao na kom jeziku da se diktira ono sto treba da radi MCU.

Pozdrav.
 
Odgovor na temu

pelctronics
Beograd

Član broj: 133821
Poruke: 74
*.astra-net.com.



Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati24.02.2007. u 19:33 - pre 209 meseci
Pa srpski da ceo svet razume....

Pozdrav...
 
Odgovor na temu

pelctronics
Beograd

Član broj: 133821
Poruke: 74
*.astra-net.com.



Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati24.02.2007. u 19:37 - pre 209 meseci
hahaha..ovo je bilo dobro verovatno si mislio na programski jezik...

Srpski za motorola MCU najnovija verzija
//hahah
Pozdrav
 
Odgovor na temu

zofr

Član broj: 126534
Poruke: 119
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati24.02.2007. u 22:30 - pre 209 meseci
Super ideja,
naravno Srpski. Ima 30 znakova i 30 glasova, a Engleski 20-tak znakova i 40-tak glasova (namesti usta za glas taj i taj a proizvedi ne znam koji drugi glas) sto bi bila nocna mora za svaki algoritam u bilo kom MCU. Mozda bi u obzir dosao pred Sekspirovski Engleski, ali se bojim da ga niko ne bi razumeo.

Pozdrav.

 
Odgovor na temu

pelctronics
Beograd

Član broj: 133821
Poruke: 74
*.astra-net.com.



Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati25.02.2007. u 15:31 - pre 209 meseci
Ti mu kazes "aj proveri stanje pina" a on izgenerise 010110101001010010101111010111.ili nesto slicno jbg nisam Neo iz matrixa pa sad da vam prevedem tacno....hi.hi
 
Odgovor na temu

zofr

Član broj: 126534
Poruke: 119
*.dynamic.sbb.co.yu.



+1 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati26.02.2007. u 00:01 - pre 209 meseci
Ma ne,
ako mu kazes "aj proveri stanje pina", on tebi kaze: "a koj porta i koji pin?". Nesme da bude toliko glup
 
Odgovor na temu

pelctronics
Beograd

Član broj: 133821
Poruke: 74
*.astra-net.com.



Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati26.02.2007. u 06:17 - pre 209 meseci
pa to se podrazumeva....mislio sam u principu..
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati22.05.2007. u 13:22 - pre 206 meseci
Ova tema dugo nije bila aktivna, ali to ne znaci da se po njoj ne radi.

Imam dilemu, bilo bi lepo da cujem misljenja onih koji koriste C jezik (nije vazno sto nije PASCAL) za programiranje svojih mikrokontrolera.

Radi se o setovanjima potrebnim za odredjeni projekat, sa odredjenim mikrokontrolerom.

Neki kompajleri imaju za odredjen broj tipova mikrokontrolera napisane include fajlove sa definicijom svih registara, ali i podatke o memorijskim resursima. Kada se pojavi novi tip mikrokontrolera koji vas kompajler ne podrzava sta uraditi?

CodeWarior (za MC908) nudi apdejtovanje preko interneta, jeli slicno i u Keilu. Drugo resenje je da sam programer napise u svom izvornom kodu ono sto mu ne nudi kompajler, sto pravi neke mele probleme, ali se kompajler moze prevariti da bi to proslo.

Ja imam ideju da sam korisnik kreira sve potrebne podatke vezano za neki mikrokontroler.

1. Postoji tabela u cek list boksu sa nazivima svih registra koji se pojavljuju kod svih tipova, i ona se moze prosirivati novim registrima.
2. Postoji lista svih tipova mikrokontrolera koja se, takodje moze prosirivati.

U listu tipova upisete novi tip mikrokontrolera, a u cek list boksu cekirate registre koje taj mikrokontroler ima. Takodje, upisete (na mestu za tu namenu) i podatke o memorijskim resursima tog tipa mikrokontrolera. Ti podaci se pamte tako da su u vezi sa imenom tipa dodatog mikrokontrolera. Na ovaj nacin niste vezani za proizvodjaca kompajlera i mozete sami dodati novi tip kada se on pojavi na trzistu.

Drugo resenje, koje sam do sada koristio, se ne bazira na tipu mikrokontrolera, vec programer sam definise registre kao variijable smestene na apsolutnim adresama tipa skup od 8 elemenata (elementi skupa su konstante koje imaju imena bitova). Memorijski resursi se definisu sa: data[pocetak..kraj] i code[pocetak..kraj]. Meni, licno, odgovara ovaj drugi nacin, ali je pitanje odgovara li i siroj populaciji programera.

Molim vas, voleo bih da cujem vase misljenje o ovoj, vaznoj, osobini razvojnog alata, s obzirom da se novi tipovi stalno pojavljuju, a zelja nam je da imamo jedan razvojni alat za sve tipove jedne familije.



Pozdrav.
 
Odgovor na temu

Odin D.
Mlađi referent za automatizaciju
samoupravljanja

Član broj: 37292
Poruke: 2549



+8370 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati24.05.2007. u 10:42 - pre 206 meseci
Citat:
korak:
Neki kompajleri imaju za odredjen broj tipova mikrokontrolera napisane include fajlove sa definicijom svih registara, ali i podatke o memorijskim resursima. Kada se pojavi novi tip mikrokontrolera koji vas kompajler ne podrzava sta uraditi?


Napises sam novi include fajl, ako ga vec proizvodjac nije isporucio ili bar onaj ko razvija razvojno okruzenje, mada nikad nisam cuo da se tako nesto desilo!? Pojava novih mikrokontrolera se ne desava bas svaki dan, pa da bi ti zato trebao poseban alat, a i kako bi ti unapred ubacio u tu tabelu registre koje treba cekirati u novom tipu mikrokontrolera, kad neznas koji ce se to novi registri pojaviti, a ako ih moras sam dodavati, onda isto to mozes uraditi i rucno u nekom ranijem include fajlu koga ces prepraviti.
Ovo naravno vazi za mikrokontrolere koji su bazirani na istom jezgru, a neki od njih imaju neke periferije na nekim adresama koje su kod drugih neiskoriscene i obratno. Ali ako se mikrokontroleri ¨sustinski¨ razlikuju, onda moras ili da nadogradis kompajler ili da ga promjenis. Tu nikakav include fajl ne pomaze.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati24.05.2007. u 16:12 - pre 206 meseci
Hvala Odine,

slazem se sa tobom, to je prihvatljivije za malo iskusnije programere. I ja tako radim. Ali sam se uhvatio sa definicijama registara i dosta potrosio vremena, pa se pitem nije li to uzaludan posao. Neoprezno sam se poveo za onim sto ima C kompaljer Code Warrior, gde cak imas i neki Processor Expert gde imas blok semu MCU-a i gde graficki definises pinove i portove, programiras module (SCI, SPI, ADC i t.d.) a on ti umece u kod funkcije sa kodom, gde ti treba samo da dopises onim sto ti treba. Mislim da si iskusan programer i da tako nesto tebi ne treba. Ja vise volim da se sve sto je definisano vidi u izvornom kodu.

Bilo bi lepo da se javi i neki manje iskusan programer, ali se bojim da nece imati pravu sliku o vaznosti ove stvari za ugodan rad.

Pozdrav.
 
Odgovor na temu

mradomir
mradomir
Novi Sad

Član broj: 123964
Poruke: 169
*.zrlocal.net.



+28 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati24.05.2007. u 23:17 - pre 206 meseci
Kada ćemo o boji editora, meni se sviđa plava.
Šalim se :).

Mislim da ćeš teško napraviti univerzalni kompajler.
Inače šta bi radio kada ga završiš (pored brojanja šuške).

Svaki procesor ima nešto hardverski specifično,
razlikuju se u istoj familiji i jezgra (imaju više ili manje instrukcija).

Najbolje rešenje, po meni, bi bio update softvera.
A ako se nekom nesviđa, pa toliko ste platili.

Naravno da bi super bilo da korisnik može sam da
definiše registre, pa kada bi mogao da ubacuje i
instrukcije..., ali bojim se da kada krene takva priča
(bar kod mene) često posao ostane nezavršen.

Mada nije loša ni zelena - mislim boja.

PS

Drago mi je da vidim upornost na delu,
samo tako.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati25.05.2007. u 12:35 - pre 206 meseci
Drago mi je da si se oglasio mradomir,

presudilo je ono sto je Odin napisao. Potrosio sam 3 nedelje da napravim sledece:

1. U jednom prozru sa StrGrid-om pravis i editujes listu svih registara (ime registres, adresa, i 8 imena bitova) koje ima jedna familija. U pocetku imas samo za 1 ili 2 tipa. Kada predjes na novi, jednostavno dodas nedostajuce registre. Primetio sam da vecina tipova ima iste registre na istim adresama, tako da se broj registara ne uvecava enormno..

2. U drugom prozoru postoji stablo familije mikrokontrolera i ceklist boks sa svim predhodno definisanim rgistrima. Izaberes iz stabla mikrokontroler i cekiras registre za njega. Takodje postoji i mesto na toj formi gde se definisu memorijski resursi, i eventualno skup instrukcija (jer je nekada razlicit za pojedine tipove familije). I sve se to zapamti.

Kada otvaras nov projekat ti samo izaberes tip mikrokontrolera, a program na osnovu toga generise modul sa svid potrebnim definicijama.

E, tu je nastao problem. Ispada da nistane stedis, umesto da pises definicije direktno u kod modula, pises ih u neke tabele, sto ti dodje isto. Ja licno volim da ne postoje skrivene definicije po nekakvim prozorima za setovanje, vise volim da sve to vidim u izvornom kodu. Zato sam obrisao sve sto sam radi oko 3 nedelje, ali posto to nije u kontinuitetu radjeno, vec u slonodnom vremenu to se proteglo na vise meseci. Bilo mi je zao kada sam to obrisao, ali mi je lakse, jer sam se vratio samom sebi, da bude onako kako i ja mislim da treba da bude.

Hvala ti, pozdrav.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati24.06.2007. u 18:59 - pre 205 meseci
Ovo ne znaci nista

Nesto probam [KNJMEOJGKMDOPPBKFCGBIGEIOCJADDPNPAPOILFHLILDDFOL] pa da vidim da li je uspelo.

Izvinite.
 
Odgovor na temu

pelctronics
Beograd

Član broj: 133821
Poruke: 74
194.106.187.*



Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati24.06.2007. u 19:15 - pre 205 meseci
Pa jesi uspeo?Da se radujemo zajedno...
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati25.06.2007. u 17:15 - pre 205 meseci
Mozes da se radujes. Pogledaj temu kriptovanje i t. d.
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati19.07.2007. u 12:50 - pre 204 meseci
Odavno teme nije bila aktivna, sto ne znaci da se na njoj ne radi. Radi se prema onome sto je napisano u temi, ali posao ide sporo jer uvek postoje neke prece i glupe stvari koje moraju da se urade da bi se prezivelo.

Napravljeno je razvojno okruzenje, ali nisam do kraja zadovoljan jer komponenta koju sam kupio AdvMemo nije ono sto sam ocekivao, ili je nisam dobro upoznao, zureci da sto pre pocnem da radim na kompajleru. Kompajler je uradjen u dva prolaza. U prvom se pravi tablica svih imena, i obelezavaju imena koja se ne koriste. U drugom prolazu se prevdi samo ono sto se koristi. Trenutno radim na najvaznijoj stvari kompajlera, to je prevod izraza. Prvo sam preveo izraz u strukturu binarnog stabla. U svakom cvoru je operator. Na dalje se binarno stablo prevodi u kod. Analizom binarnog stabla se pronalazi cvor od kojeg treba poceti prevodjenje. Kriterijum za to je da se tokom prevodjenja izraza javi najmanji broj medjurezultata koje treba pamtiti na steku. Time se dobija kraci kod, i manje zauzima stek (sto je manje vazno).

Pre pocetka prevodjenja binarnog stabla morao sam da resim jednu dilemu vezanu za operacije sa celim brojevima, na primer:

Sabiranje bajta i bajta moze dati word. Ali vas program moze imati samo varijable deklarisane kao byte, sto znaci da ne ocekujete da zbir dva bajta premasi vrednost 255. Onda je glupo da zbir bajtova daje word. Zbog toga sam se odlucio da nema implicitne konverzije tipa kao kod C-a. Zabranio sam operacije koje daju tip koji nije tip ni jednog od operanada. Tako bajt (0..255) ne moze da se sabera sa shortint (-128..127) jer rezultat moze da obuhvati samo tip integer. Ako programer ipak zeli da postigne ono sto je zabranjeno, mora da navede eksplicitnu konverziju tipa. Mislim da je ovo u redu.

U C-u se u iskazima dodele tip desnog izraza podesava prema tipu odredista. To pravilo ne postoji u PASCAL-u. Razlog tome je da izraz nema uvek odrediste (nije u isakzu dodele) kao sto su izrazu u IF, WHILW ili UNTIL strukturama. Naravno da oba pristupa imaju dobrih i losih strana, ali PASCAL pristup je manje podlozan greskama, jer ako ih napravite kompajler moze da ih otkrije.

Pozdrav.

 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati22.07.2007. u 16:19 - pre 204 meseci
Za one koji prate ovu temu.

Realizovane su kompajlerske preddefinisane funkcije. To su funkcije koje vracaju vrednost jos tokom kompajliranja, a na osnovu definisanja i deklarisanja raznih imena.
Code:

Za pisanje asemblerskog koda u makroima (sto ce biti najcesci slucaj) postoje sledece funkcije:

DyamicOf(varijabla ili tipizirana konstanta):boolean;  //Vraca true ako je parametar na steku

TypeOf(varijabla, tipizirana konstanta ili tip):byte ili word; //vrednost je hendler tipa

VarOf(Ime):boolean; //vraca true ako je ime varijabla

Sledece funkcije pomazu programeru u raznim situacijama, kao sto je na primer potreba da se kontrolise pristup nizu u okviru definisanog indeksa.

High(varijabla, tipska konstanta ili tip):celobrojni tip; //vraca najvecu vrednost koju moze imati naznaceni parametar funkcije. Za byte vraca 255, za string 
                                                          //vraca najveci broj znakova koje moze da ima string, za niz vraza najvecu vrednost koju moze da ima 
                                                          //indeks niza i t. d.

Low(varijabla, tipska konstanta ili tip):celobrojni tip; //Isto kao predhodna, samo se radi o najmanjoj mogucoj vrednosti.

SizeOf(varijabla, tipska konstanta ili tip):celobrojni tip; //Vraca broj bajtova koji parametar funkcije zauzima definisano deklaracijom

Celobrojni tipovi su byte, shortint, word, integer, longword i longint

Ima li neko korisnu sugestiju?
Pozdrav;
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.co.yu.



+7 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati04.10.2007. u 12:57 - pre 201 meseci
Ako neko prati ovu temu:

Radi se, ali sporo (u slobodnom vremenu).
Kao sto tema pokazuje baza je ono sto je sintetizovano sa mradomir-om.

Sada pisem najobimniji deo kompajlera, a to je prevod iskaza. Nisam u stanju da optimizaciju vrsim na bazi vise iskaza, kao sto to rade vrhunski kompajleri, jer mi se cini previse komplikovanim. Ulozeni trud i efekti mislim da ne bi bili u srazmeri. Optimizaciju vrsim na nivou jednog iskaza. Jedina optimizacija koja obuhvata vise iskaza je ona koja se odnosi na koriscenje stek pointera. Uostalom evo gde ima koristi od optimizacije koja obuhvata vise iskaza:

A := 123;
B := A;

se optimizira na:

B := 123;

ili

A := -(-(-B))

optimizira na

A := -B

i drugi slicni slucajevi. Madjutim, smatram da sam programer nece tako nesto pisati.

Pisem kompajler koji ce generisati sto kraci kod. To je fiksno jer smatram da danasnji mikrokontroleri imaju dovoljnu brzinu za ogromnu vecinu aplikacija, pa je kriticnija duzina generisanog koda. Da li se vecina slaze sa ovim? Kompajler koristi neke procedure koje sam smestio u modul SYSproc (mozda je ime trebalo biti drugacije), i u njemu imena svih procedura pocinje sa SYS_ a u nastavku ime procedure. Ove procedure se pozivaju implicitno, pa se u prvom prolazu ne moze utvrditi koje se procedure iz modula SYSproc koriste, a koje ne, sto dovodi do prevoda celog modula SYSproc, dakle i onoga sto se ne koristi. Tek u drugom prolazu, kada se generise kod i kada kompajler poziva procedure iz ovog modula moze se utvrditi koje se procedure iz SYSproc koriste. Zato sam uveo i treci prolaz kako ne bi doslo do prevodjenja ne koriscenih procedura u modulu SYSproc. Modul SYSproc je dostupan u izvornom obliku, jer ima osobine kao i bilo koji drugi modul, i rizicno bi bilo menjati ga.

Trenutno se bavim prevodom unarnih operacija.

Pozdrav.
 
Odgovor na temu

_str_

Član broj: 53798
Poruke: 878
*.mainstream.co.yu.



+10 Profil

icon Re: MC9S08, arhitektura, performanse, programiranje i razvojni alati04.10.2007. u 21:27 - pre 201 meseci
Zašto A :=123 a ne A=123?



__*__
*___*
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: MC9S08, arhitektura, performanse, programiranje i razvojni alati

Strane: 1 2 3

[ Pregleda: 11137 | Odgovora: 46 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.