Elektronika.lt
 2025 m. gruodžio 22 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 2025 12 22, 01:48. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » lūžta programa ant ARM7TDMI
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 11
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 lūžta programa ant ARM7TDMI
PranešimasParašytas: 2007 12 17, 21:35 Pranešti apie taisyklių pažeidimą Atsakyti su citata
p12
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
sveiki. bandau paleist ARMTDMI procesorių. jis lygtais ir pradeda vykdyti programą, bet paskui lūžta ir pradeda keliaut po flashą (debuginu kol kas ramuose).

Kodas:

int main(void) {
    cpu_init();
@   lcd_init();
    *tcmpb1 = 0;    //keičiamas lcd ryškumas,
@   long a, b;
    int x, y;
@   x = 0;
    y = 0;
    while (1)
      {
     for (a = 0; a<1000; a++)
        for (b = 0; b<5000; b++)
@         b++;
      x++;
      set_pixel(x, y,255);
     
      y = y+2;
      if (x>100) x=0;
      if (y>100) y = 0;
      }
.....


iki 3 taško viską praeina normaliai. ketvirto jau nebepasiekia. labiausiai neaišku dėl ko lūžta tokioje vietoje, suprasčiau funkcijose, tai ten galėjau ko nors neteisingai initializuot ar nustatys, bet dabar...

crt0.s failas truputį pakeistas, nes kompiliatorius mesdavo klaidą:
Kodas:
// file: crt0.s

    .global main                    // int main(void)

    .global _etext                  // -> .data initial values in ROM
    .global _data                   // -> .data area in RAM
    .global _edata                  // end of .data area
    .global __bss_start__             // -> .bss area in RAM
    .global __bss_end__             // end of .bss area
@   .global __stack_start__                  // top of stack
// Standard definitions of Mode bits and Interrupt (I & F) flags in PSRs
    .set  MODE_USR, 0x10            // User Mode
    .set  MODE_FIQ, 0x11            // FIQ Mode
    .set  MODE_IRQ, 0x12            // IRQ Mode
    .set  MODE_SVC, 0x13            // Supervisor Mode
    .set  MODE_ABT, 0x17            // Abort Mode
    .set  MODE_UND, 0x1B            // Undefined Mode
    .set  MODE_SYS, 0x1F            // System Mode

    .equ  I_BIT, 0x80               // when I bit is set, IRQ is disabled
    .equ  F_BIT, 0x40               // when F bit is set, FIQ is disabled

    .text
    .code 32
    .align 2


// Setup the operating mode & stack.
// ---------------------------------
    .global _start, start, _mainCRTStartup
    .func   _start

_start:
start:
_mainCRTStartup:

    mrs   r0,cpsr                   // get PSR
    orr   r0,r0,#I_BIT|F_BIT        // disable IRQ and FIQ
    msr   cpsr,r0                   // set up status register

@   ldr   r0,=__stack_start__
    mov   sp,r0

// Clear .bss
// ----------

    mov   r0,#0                     // get a zero
    ldr   r1,=__bss_start__           // -> bss start
    ldr   r2,=__bss_end__           // -> bss end
2:  cmp   r1,r2                     // check if data to clear
    strlo r0,[r1],#4                // clear 4 bytes
    blo   2b                        // loop until done

    ldr   r1,=main
    mov   lr,pc
    bx    r1                       // enter main()

    .size   _start, . - _start
    .endfunc

    .end


parsisiųstam startup'e šiam procesoriui vietoje __stack_start__ buvo _stack, bet čia visgi neesminis skirtumas.

cpuinit() tiktais sukonfiguruojami portai.
lcd initializacija taip pat pakopinta.

kas galėtų būti? kompiliuoju su CrossStudio for ARM
 lūžta programa ant ARM7TDMI
PranešimasParašytas: 2007 12 17, 23:10 Pranešti apie taisyklių pažeidimą Atsakyti su citata
jedas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Idomi sintakse for (b = 0; b<5000; b++)
@ b++;

tikrai ten antra karta tu nori padaryti b++; ? nesakau kad cia klaida, ale nera prasmes taip daryti, zutektu b<2500 :) juolab kad gal but cia ir gali but bugas

_________________
-----
That's what she said.
 lūžta programa ant ARM7TDMI
PranešimasParašytas: 2007 12 18, 09:44 Pranešti apie taisyklių pažeidimą Atsakyti su citata
p12
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
čia tik užlaikymas, o ta b++ palikau dėl to, kad tų ciklų kompiliatorius nesugalvotų optimizuot
 lūžta programa ant ARM7TDMI
PranešimasParašytas: 2007 12 18, 10:10 Pranešti apie taisyklių pažeidimą Atsakyti su citata
jedas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Ok, bet tu keitalioji ciklo kintamojo reiksme. Nemanau kad tai gera mintis. Velgi greiciausiai nesusijusi su luzimu.

_________________
-----
That's what she said.
 lūžta programa ant ARM7TDMI
PranešimasParašytas: 2007 12 19, 22:01 Pranešti apie taisyklių pažeidimą Atsakyti su citata
CodeC
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
asembleri tai tikrai tingiu skaityt ir gilintis, jei kompiliatorius mesdavo klaida, tai ne siai sau. jei kazka keitei, tai turi suprast ka darai. tas crt0 labai glaudziai susietas su linkerio skriptu. tai pirmiausiai i tai siulyciau demesi atkreipt.

poto, jei viskas gerai su inicializacija, pasitikrint visus pointerius. nes bent jau man dauguma klaidu yra buve butent su pointeriais.
 lūžta programa ant ARM7TDMI
PranešimasParašytas: 2007 12 19, 23:12 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
problema turbut bus su pertraukimais jei tokius naudoji. o luzta toje vietoje todel kad ten daugiausia laiko praledzia.

beje reiketu pasiziureti ant kokio exception sustoja (kokia klaida ivyksta)
tada galima ant jo padeti breakpointa ir ziureti is kurios vietos ten patekai.
jei problema su pointeriu tai labai gretai surasi is kurios vietos. bet sio atveju tai abejoju kad bus taip.

beje idomu ar tau sigle step veikia? man tas tas crosstudio daugumos breakpointu tesingai nepadeda, ir singles tep veikia kazkaip absurdiskai
 lūžta programa ant ARM7TDMI
PranešimasParašytas: 2007 12 19, 23:19 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Digix
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
jedas rašo:
Ok, bet tu keitalioji ciklo kintamojo reiksme. Nemanau kad tai gera mintis. Velgi greiciausiai nesusijusi su luzimu.

idomu kodel manai kad mintis bloga?
ciklo kintamuosius galima kaitalioti kada norsi arba galima isvis ju nenaudoti. galima pvs padaryti toki cikla


for (;Wink
amzinas ciklas
for (;a<20;)
for (c=1;b>0;a++)
ir kaip tik nori kitaip
 lūžta programa ant ARM7TDMI
PranešimasParašytas: 2007 12 20, 08:11 Pranešti apie taisyklių pažeidimą Atsakyti su citata
jedas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje
Digix: daugiau subjektyvi nuomone. Prie kazkokiu salygu buvo ten labai nepastebimas bugas, ir nuo to laiko vengiu tokiu dalyku. Readability irgi nepagerina tokia sintakse kaip parasei :) O prisikabinau prie tos vietos, kuri man vienintele kazkiek itartina pasirode.

_________________
-----
That's what she said.
 lūžta programa ant ARM7TDMI
PranešimasParašytas: 2007 12 24, 18:34 Pranešti apie taisyklių pažeidimą Atsakyti su citata
p12
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
pagaliau išsiaiškinau kame buvo problema - tam ųC pagal defaulta buvo įjungiamas watchdogas, tai jis ir resetindavosi kas kažkiek laiko. o kankinausi tai nemažai prie tokio dalyko. įdomu kam gamintojams normaliems žmonėms nervus gadint? prireiks watchdogo, tai ir įsijungs.. Smile
Pradėti naują temą  Atsakyti į pranešimą
 
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

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

Programuotojas Tautvydas – interneto svetainių-sistemų kūrimas

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Must have farming mods
Farming simulator modhub, Best farming simulator mods
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Ets2 mods, Ats mods, Beamng drive mods
allmods.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
Mokslo festivalis „Erdvėlaivis žemė“
www.mokslofestivalis.eu
Reklama


Reklama