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

Pridružen-a: Pon 20 Mar 2006 21:20 Prispevkov: 16 Aktiv.: 0.07
|
Objavljeno: Tor Avg 11, 2009 11:35 am Naslov sporočila: Nezeleni User/System mode |
|
|
Pozdravljeni
Ali se je morda ze komu zgodilo, da mu je koda popolnoma normalno tekla na razvojni plosci, ko pa jo je prenesel na lastni hardware pa se mu je zadeva obesila? Situacija je naslednja: projekt mi brez vsakega problema tece na razvojni plosci MCB2130, normalno lahko debugiram itd... Ko kodo prenesem na svojo ploscico se ustavi. Flash nalozim brez problema, ko pa v uVisnu skusam zadevo debugirati mi sistem preide v User/System mode (PC 0xfffffff2, vsi ostali registri 0xffffffff) in tam obstoji. OK ocitno je nekaj narobe z mojo ploscico. Vendar me bega, ker preprosti primeri (blinker, ...) na tej isti plosci delujejo in jih lahko tudi normalno debugiram. Zanima me, ce je imel ze kdo podobno tezavo in kako je jo resil? Hvala za odgovor.
Bp Ales |
|
Nazaj na vrh |
|
 |
. Član

Pridružen-a: Pon 23 Avg 2004 16:16 Prispevkov: 16777190 Aktiv.: 70643.54
|
Objavljeno: Tor Avg 11, 2009 12:58 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika. |
|
Nazaj na vrh |
|
 |
Umnik Član

Pridružen-a: Čet 16 Sep 2004 17:52 Prispevkov: 958 Aktiv.: 4.03 Kraj: Novo mesto
|
Objavljeno: Tor Avg 11, 2009 1:13 pm Naslov sporočila: Re: Nezeleni User/System mode |
|
|
AlesH je napisal/a: |
Flash nalozim brez problema, ko pa v uVisnu skusam zadevo debugirati mi sistem preide v User/System mode (PC 0xfffffff2, vsi ostali registri 0xffffffff) in tam obstoji. |
Sistem preide takoj v to stanje ali lahko pred tem normalno poganjaš debugger? |
|
Nazaj na vrh |
|
 |
AlesH Član

Pridružen-a: Pon 20 Mar 2006 21:20 Prispevkov: 16 Aktiv.: 0.07
|
Objavljeno: Tor Avg 11, 2009 3:17 pm Naslov sporočila: |
|
|
Uporabljam LPC2138. ISP enable pin (P0.14) je ob zagonu na visokem nivoju. Sistem je nekaj sekund v Supervisor nacinu potem pa avtomaticno preide v User/System s katerega ni vec mogoce priti.
Se ena zanimivost, ki sem jo opazil:
Zadeva zacne delovati ko zakomentiram 7 vrstic spodnje funkcije, ceprav funkcije v main ali kjerkoli drugje sploh ne uporabim. Za test sem sprogramiral preprost blinker zraven pa prevedel se vse funkcije celotnega projekta (vendar jih nikjer ne klicem). S poizkusanjem sem prisel do tega, da so problematicne samo zakomentirane vrstice v spodnji funkciji. Ko te vrstice zakomentiram, lahko spet normalno debugiram itd. V cemu je trik?
Koda: |
void glcd_Text(uint8_t left, uint8_t top, uint8_t font, const char *str)
{
uint8_t x = left;
uint8_t glyph;
uint8_t width;
uint8_t height;
uint8_t store_width;
const uint8_t *glyph_ptr;
while(*str != 0x00)
{
glyph = (uint8_t)*str;
/* check to make sure the symbol is a legal one */
/* if not then just replace it with the default character */
if((glyph < fonts[font].glyph_beg) || (glyph > fonts[font].glyph_end))
{
// glyph = fonts[font].glyph_def;
}
/* make zero based index into the font data arrays */
// glyph -= fonts[font].glyph_beg;
// width = fonts[font].fixed_width; /* check if it is a fixed width */
if(width == 0)
{
// width=fonts[font].width_table[glyph]; /* get the variable width instead */
}
// height = fonts[font].glyph_height;
// store_width = fonts[font].store_width;
// glyph_ptr = fonts[font].glyph_table + ((unsigned int)glyph * (unsigned int)store_width * (unsigned int)height);
/* range check / limit things here */
if(x > GLCD_RIGHT)
{
x = GLCD_RIGHT;
}
if((x + width) > GLCD_RIGHT+1)
{
width = GLCD_RIGHT - x + 1;
}
if(top > GLCD_BOTTOM)
{
top = GLCD_BOTTOM;
}
if((top + height) > GLCD_BOTTOM+1)
{
height = GLCD_BOTTOM - top + 1;
}
glcd_Glyph(x,top,width,height,glyph_ptr,store_width); /* plug symbol into buffer */
x += width; /* move right for next character */
str++; /* point to next character in string */
}
}
|
Se enkrat naj povdarim, da celotna koda, tudi zgornja (nezakomentirana) funkcija, deluje na razvoji plosci MCB2130. Opisan problem se pojavlja samo na lastni plosci. |
|
Nazaj na vrh |
|
 |
Lagrange Član

Pridružen-a: Pet 10 Okt 2003 10:07 Prispevkov: 164 Aktiv.: 0.69 Kraj: Ljubljana
|
Objavljeno: Tor Avg 11, 2009 4:00 pm Naslov sporočila: |
|
|
Za hec poglej, ce imas na P0.14 vse v redu. S stanjem tega pina ob vklopu poves procesorju ali naj se postavi v ISP. |
|
Nazaj na vrh |
|
 |
alessio Član

Pridružen-a: Pon 04 Dec 2006 8:39 Prispevkov: 363 Aktiv.: 1.60 Kraj: Ljubljana
|
Objavljeno: Tor Avg 11, 2009 4:33 pm Naslov sporočila: |
|
|
Kateri revision čipa uporabljaš na svoji plati?
Kakšne imaš nastavitve MAM-a in clock-a core-a in periferije? _________________ Question is more important than the answer.(Plato) |
|
Nazaj na vrh |
|
 |
AlesH Član

Pridružen-a: Pon 20 Mar 2006 21:20 Prispevkov: 16 Aktiv.: 0.07
|
Objavljeno: Sre Avg 12, 2009 9:04 am Naslov sporočila: |
|
|
Na svoji plati uporabljam revision D. MAM disabled, CCLK 12 MHz (PLL disabled), PCLK 12 MHz.
Pregledal sem celoten errata sheet revizije D, vendar nisem odkril nic sumljivega (tudi P0.31 med resetom ni privezan na GND). |
|
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
|