Elektronika.lt
 2024 m. gegužės 18 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2024 05 18, 22:26. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » kaip i C kompiliatoriaus programa ideti asmblerio gabala?
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 12
Pereiti prie 1, 2  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 16, 19:59 Pranešti apie taisyklių pažeidimą Atsakyti su citata
dariusmano
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Niekaip nepavyksta issiaiskinti kaip i MPLABe rasoma programa (C kalboje PIC32MX440 procesoriukui) iterpti asemblerio gabaliuka...
Senesniems mikrovaldikliams rasydavau taip (seniau naudojau CCS kompiliatoriu):

#asm
nop
BCF 0xf8a, 0x1 // LCD_CLK_0
BSF 0xf8a, 0x1 // LCD_CLK_1
MOVWF 0xf95
MOVFF 0xf83, 0xd
nop
#endasm

o kaip parasyti kad ir ta pati 'nop' MPLABo kompiliatoriui (32 bitu procui)?
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 16, 22:48 Pranešti apie taisyklių pažeidimą Atsakyti su citata
R2D2
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
gal išeitų tokia chaltūra kaip labai trumpas delay, ir kompiliatorius jį padarytų į nop

arba ieškoti kokiuose headeriuose kuriuos duoda mplab ir gal ten pavyktų užtikti asm aprašymą

arba pamėgint šitą: http://ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html

nors čia ir skirta GCC bet gal vėl, sueis...
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 11:53 Pranešti apie taisyklių pažeidimą Atsakyti su citata
dariusmano
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
R2D2 rašo:
gal išeitų tokia chaltūra kaip labai trumpas delay, ir kompiliatorius jį padarytų į nop

arba ieškoti kokiuose headeriuose kuriuos duoda mplab ir gal ten pavyktų užtikti asm aprašymą

arba pamėgint šitą: http://ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html

nors čia ir skirta GCC bet gal vėl, sueis...


nelabai supratai, man nereikia "nop" komandos iterpt i C kompiliatoriuas program..., nesugebu issiaiskint kaip 32 bitu procesoriukui isvis atrodo asemblerio komandos iterpemos i C (MPLABo) kompiliatoriaus programa... (o ka as jau ten noriu iterpt tai esmes nekeicia (viskas reikalinga norint isspaust maksimalu greiti irasant i vidini RAM duomenis ateinancius per 8 bitu lygiagretu porta...))
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 12:29 Pranešti apie taisyklių pažeidimą Atsakyti su citata
dariusmano
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
va kas lyg ir veikia....:
asm ("nop");

tik kazkodel su kitom komandom asm(" xxxxxxxxxx "); neveikia. Nu reik dar aiskintis
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 13:36 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
dariusmano rašo:
nelabai supratai, man nereikia "nop" komandos iterpt i C kompiliatoriuas program..., nesugebu issiaiskint kaip 32 bitu procesoriukui isvis atrodo asemblerio komandos iterpemos i C (MPLABo) kompiliatoriaus programa... (o ka as jau ten noriu iterpt tai esmes nekeicia (viskas reikalinga norint isspaust maksimalu greiti irasant i vidini RAM duomenis ateinancius per 8 bitu lygiagretu porta...))


Tam reikalui tas PIC DMA neturi?
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 13:45 Pranešti apie taisyklių pažeidimą Atsakyti su citata
dariusmano
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Socrates rašo:
dariusmano rašo:
nelabai supratai, man nereikia "nop" komandos iterpt i C kompiliatoriuas program..., nesugebu issiaiskint kaip 32 bitu procesoriukui isvis atrodo asemblerio komandos iterpemos i C (MPLABo) kompiliatoriaus programa... (o ka as jau ten noriu iterpt tai esmes nekeicia (viskas reikalinga norint isspaust maksimalu greiti irasant i vidini RAM duomenis ateinancius per 8 bitu lygiagretu porta...))


Tam reikalui tas PIC DMA neturi?


tikrai turi, bet man kolkas dar nesuprantamas tas DMA ... (gal kada ir issiaiskinsiu su kuo ji valgo....) , o siuo metu zinant kad C i masinini programos koda prikisa visokiu siuksliu noriu ju isvengt gabaleli programos rasant asembleriu....
Dabar tikslas padaryt kiek galima greitesni duomenu irasima, o jau ateityje issiaiskinus kaip DMA veikia ir pasiekti max irasimo reiksme.... (pakoreguojant tik programa (nelieciant gelezies)) (aisku nebent kas sugebetu konkreciai parodyt pavizdziu kaip dirbama su DMA (netikiu kad tokiu atsiras, tad Sad , kaip ir seniau, man anglu kalba netapo gimtoji.... - kazka suprantu, bet nera noro angliskai skaityt viso DMA aprasimo ir gaist savaites kad perprast panaudojima.
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 16:18 Pranešti apie taisyklių pažeidimą Atsakyti su citata
R2D2
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
dariusmano rašo:

nelabai supratai, man nereikia "nop" komandos iterpt i C kompiliatoriuas program..., nesugebu issiaiskint kaip 32 bitu procesoriukui isvis atrodo asemblerio komandos iterpemos i C (MPLABo) kompiliatoriaus programa... (o ka as jau ten noriu iterpt tai esmes nekeicia (viskas reikalinga norint isspaust maksimalu greiti irasant i vidini RAM duomenis ateinancius per 8 bitu lygiagretu porta...))


o .h failuose mėginai ieškoti kaip apsirašo asm?

arba parodyk kaip tu tą C kodą rašai ir bus aišku kodėl ten kažkas ne taip greitai daroma (tik pridėk komentarus).

o dėl DMA, tai žinok jis nesveikai geras dalykas ir verta dėl jo paaukoti savaitę, na bet mes apie DMA jau diskutavome, kiek pamenu.
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 16:36 Pranešti apie taisyklių pažeidimą Atsakyti su citata
dariusmano
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
R2D2 rašo:
dariusmano rašo:

nelabai supratai, man nereikia "nop" komandos iterpt i C kompiliatoriuas program..., nesugebu issiaiskint kaip 32 bitu procesoriukui isvis atrodo asemblerio komandos iterpemos i C (MPLABo) kompiliatoriaus programa... (o ka as jau ten noriu iterpt tai esmes nekeicia (viskas reikalinga norint isspaust maksimalu greiti irasant i vidini RAM duomenis ateinancius per 8 bitu lygiagretu porta...))


.... parodyk kaip tu tą C kodą rašai ir bus aišku kodėl ten kažkas ne taip greitai daroma (tik pridėk komentarus)...


kaip apsirasyta...:
#define PIC_C_0 mPORTBClearBits (BIT_5)
#define PIC_C_1 mPORTBSetBits (BIT_5)
#define PIC_DATA mPORTERead()


mano C toks:
PIC_C_1;
PIC_C_0;
Buferis[0] = PIC_DATA;

PIC_C_1;
PIC_C_0;
Buferis[1] = PIC_DATA;

PIC_C_1;
PIC_C_0;
Buferis[2] = PIC_DATA;

....

pasiunciamas "PIC_C" taktavimo impulsas (1, paskui 0), ir jau tada nuskaitoma gauta info is PIC_DATA
ir visa tai uztrunka 11Cycles (prie 80MHz=137,5ns=7,27MHz) kaip ir mazoka man.... idealiu variantu noretus pasiekt irasimo greiti 20 ar 40MHz

Senesniem PICams rasant programos dalis kritines greiciui rasydavau su asembleriu ir idedavau i C programa.... taip esu pasiekes ir 7 kartus greitesni programos atkarpos darba.
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 16:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
R2D2
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
dariusmano rašo:


kaip apsirasyta...:
#define PIC_C_0 mPORTBClearBits (BIT_5)
#define PIC_C_1 mPORTBSetBits (BIT_5)
#define PIC_DATA mPORTERead()



dabar parodyk kaip tas mPORTERead() atrodo.
ir kaip buffer apsirašęs esi.
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 16:50 Pranešti apie taisyklių pažeidimą Atsakyti su citata
dariusmano
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
R2D2 rašo:
dariusmano rašo:


kaip apsirasyta...:
#define PIC_C_0 mPORTBClearBits (BIT_5)
#define PIC_C_1 mPORTBSetBits (BIT_5)
#define PIC_DATA mPORTERead()



dabar parodyk kaip tas mPORTERead() atrodo.
ir kaip buffer apsirašęs esi.



....
UINT8 Buferis[512] ;
....


nesupratau klausimo- "dabar parodyk kaip tas mPORTERead() atrodo."
ta turejai galvoj:
TRISE = 0b11111111; // iejimai
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 17:01 Pranešti apie taisyklių pažeidimą Atsakyti su citata
R2D2
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
dariusmano rašo:

....
UINT8 Buferis[512] ;
....


nesupratau klausimo- "dabar parodyk kaip tas mPORTERead() atrodo."
ta turejai galvoj:
TRISE = 0b11111111; // iejimai


žinoma kad ne tas. TRISE gi ne prie ko.
parodyk kaip ta f-ja mPORTERead() atrodo. nors iš esmės tai čia ji tau greičiausiai ir darys daugiausiai instrukcijų.
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 17:06 Pranešti apie taisyklių pažeidimą Atsakyti su citata
dariusmano
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
R2D2 rašo:
dariusmano rašo:

....
UINT8 Buferis[512] ;
....


nesupratau klausimo- "dabar parodyk kaip tas mPORTERead() atrodo."
ta turejai galvoj:
TRISE = 0b11111111; // iejimai


žinoma kad ne tas. TRISE gi ne prie ko.
parodyk kaip ta f-ja mPORTERead() atrodo. nors iš esmės tai čia ji tau greičiausiai ir darys daugiausiai instrukcijų.


neisivaizduoju kaip ta funkcija atrodo.... ji yra standartine kompiliatoriaus (ne mano)

"mPORTERead()" sunaudoja 5Cycles (62,5ns) (ant senu PIC uztekdavo 3Cycles)
"mPORTBClearBits (BIT_5)" sunaudoja 3Cycles (37,5ns) (ant senu PIC uztekdavo 1Cycles)
"mPORTBSetBits (BIT_5)" sunaudoja 3Cycles (37,5ns) (ant senu PIC uztekdavo 1Cycles)
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 17:10 Pranešti apie taisyklių pažeidimą Atsakyti su citata
dariusmano
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
va ka parodo dissasembleris:


44: PIC_C_1;
9D00204C 3C03BF88 lui v1,0xbf88
9D002050 24020020 addiu v0,zero,32
9D002054 AC626068 sw v0,24680(v1)
45: PIC_C_0;
9D002058 3C03BF88 lui v1,0xbf88
9D00205C 24020020 addiu v0,zero,32
9D002060 AC626064 sw v0,24676(v1)
46: Buferis[0] = PIC_DATA;
9D002064 3C03A000 lui v1,0xa000
9D002068 3C02BF88 lui v0,0xbf88
9D00206C 8C426110 lw v0,24848(v0)
9D002070 A0620DB4 sb v0,3508(v1)
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 17:10 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Socrates
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
O koks clock'as? Mano nuomone, kad tu dabar gaishti laika kazka spausdamas, nei ismoktum kaip veikia DMA Smile PIC'ams manau rusu literaturos nemazai.
 kaip i C kompiliatoriaus programa ideti asmblerio gabala?
PranešimasParašytas: 2010 07 17, 17:13 Pranešti apie taisyklių pažeidimą Atsakyti su citata
dariusmano
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Socrates rašo:
O koks clock'as? Mano nuomone, kad tu dabar gaishti laika kazka spausdamas, nei ismoktum kaip veikia DMA Smile PIC'ams manau rusu literaturos nemazai.


nemanau kad pamaisytu zinoti kaip asemleri iterpt i C... man dabar gal labiau princio reikalas issiaiskint (jei neatsibos anksciau)
p.s. lygiagreciai siam susirasinejimui skaitau ir apie DMA (tik naudos Rolling Eyes )

Clock'as= 80MHz (cia po daugintuvu ir dalikliu) (esme ne tame...):

#pragma config FPLLMUL = MUL_20, FPLLIDIV = DIV_2, FPLLODIV = DIV_1, FWDTEN = OFF
#pragma config POSCMOD = HS, FNOSC = PRIPLL, FPBDIV = DIV_8
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie 1, 2  Toliau
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

GENERAL FINANCING BANKAS

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

„Deinavos baldai“ — šeimos baldai

FS 22 Tractors
Farming Simulator 19 Mods, FS 22 Maps, FS22 Mods
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS22 Trucks
VAT calculator
VAT number check, What is VAT, How much is VAT
Paskola internetu
Vartojimo paskola, paskola automobiliui, paskola būsto remontui
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS22 Mods
FS22 Harvesters, FS22 Tractors Mods, FS22 Maps Mods
FS22 Mods
FS22 Maps,
FS22 Harvesters,
FS22 Tractors
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
Sims 4 Mods
Sims 4 CC Clothes,
Sims 4 Hair CC,
Sims 4 Skill Cheat
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
Farming Simulator 2019 Mods, FS22 Mods, FS22 Maps
farmingsimulator19mods.fr
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama