Fórum témák

» Több friss téma
Fórum » ARM - Miértek hogyanok
 
Témaindító: gtk, idő: Jún 26, 2007
Lapozás: OK   12 / 177
(#) TJ_peti válasza kapu48 hozzászólására (») Jún 27, 2012 /
 
Segíteni fog és köszönöm, de egyenlőre még nem jött össze ez az OpenOCD-s dolog. Írtam hozzá egy .cfg fájlt, ami szerintem jó, mert megtalálja a az összes TAP-ot, felismeri az ICEPICK-et és nem dob ki hibaüzenetet de még figyelmeztetést sem.
Most annyi a baj, hogy az IAR nem ugyanazokat az értékeket olvassa vissza amiket beleír az ARM-ba, de gyakran tiszta 0-át olvas vissza. Valamint, hogy nem tudja a procit HALT üzemmódba tenni.

Foglalkozott már valaki az OpenOCD-vel, esetleg tudna segíteni a jó beállításokban?
(#) tandarit hozzászólása Jún 28, 2012 /
 
Sziasztok!
Vettem tanulás céljára egy Olimex LPC-MT-2106 fejlesztő panelt és hozzá a ARM-USB-Tiny-H JTAG programozót és sikerült is beállítanom hozzá a cfg filet is. Az openocd is szépen elindult nem dobott errort az inditáskor, azomban amikor a IAR-t elinditom miután beállítottam a GDB-t is a következő hibát dobja ki (halt kiadása után és előtt is, ahogy a képen látszik ) és nem hajlandó futni a debbugger és nem is tölti be a programot.
Valakinek valami tippje miért csinálja ezt?
(#) cpt.zoltan.simon hozzászólása Júl 10, 2012 /
 
Hali!

STM32-ben van valakinek bármi adata arról hogy az FSMC kontra SSD1963 használatához milyen FSMC regiszter beállításokat kellene használni? Nem akarok egyenlőre SRAM-ot használni, tehát csak a PCR4, SR4, PMEM4, PATT4, és ECCR regiszterekre lenne szükségem.
(#) fehrudi válasza cpt.zoltan.simon hozzászólására (») Júl 10, 2012 /
 
Hali!

Az alábbi dokumentumot találtam régebben, bár még nem ástam magam bele, de hátha hasznosnak találod.
Bővebben: Link
(#) cpt.zoltan.simon válasza fehrudi hozzászólására (») Júl 10, 2012 /
 
Hi!

Ezt ismerem. Az a baj vele hogy sok a homály benne, ráadásul a hozzá tartozó ZIP fileban a CMSIS-t használja, ergó követhetetlen.
Youtube alapján találtam ma egy Litván gyereket aki jól megcsinálta amit akarok, a vicc az hogy ő is CMSIS-t használ. Amikor mondtam neki hogy Register direct write, azt mondta kit érdekel meg fölösleges, merthogy az STM32F407 800x480 on 60FPS-t tud, és az FSMC-t lassítani kellett mert az SSD1963 nem birta követni... Szóval meg lehet csinálni CMSIS-es Standard Peripherial Library-kkel, de attól hogy "véletlen" működik sajna okosabb még nem leszek...
(#) fehrudi válasza cpt.zoltan.simon hozzászólására (») Júl 10, 2012 /
 
Ebben az esetben sajnos nem tudok segíteni, jómagam a kezdetektől a CMSIS könyvtárakkal programoztam. Mondjuk még most is kezdő vagyok
(#) cpt.zoltan.simon válasza fehrudi hozzászólására (») Júl 12, 2012 /
 
Nekem igazából a CMSIS egy nagy kavar. Biztos jó, meg szép, de ugyan annyit kell olvasni mintha a reference manual-t olvasnád, és ezek után még mindig nem tudod melyik regiszterbe mit ír.
A kérdést úgy tenném fel inkább: van itt olyan valaki akinek elsősorban FSMC, másodsorban FSMC+SSD1963 témában volt sikerélménye? A helyes beállítást vadászom. Bár lassan nagyon ott tartok hogy kell egy LA.
(#) cpt.zoltan.simon hozzászólása Júl 18, 2012 /
 
Egyenlőre feladtam az FSMC-t. Vakon nem lehet csinálni szóval várom hogy megjöjjön a Logikai Analizátorom.
Más: közben felakasztottam a GPS-em USART1-re. Tudom hogy működik, PIC32-vel már nagyon jól ment. Elkezdtem olvasni a megszakításokról, viszont nem egyértelmű:
El tudná mondani valaki hogy ha tudom mi az hogy Interrupt akkor mi az Exceptions?
És az STM32F2xx-nél hol van dokumentálva az Interrputs? Mert ami a Reference Manual-ban van az talán 10 oldal összesen...
(#) _vl_ válasza cpt.zoltan.simon hozzászólására (») Júl 18, 2012 / 1
 
Én az STM családot nem ismerem, de az Interrupt és az Exception között minden általam ismert CPU-nál az a különbség, hogy az Interruptot egy külső esemény kezdeményezi (érkezik egy jel, lejár egy timer, kiürül/megtelik egy periféria puffere), míg az Exception a CPU belső működéséből keletkezik (jellemzően utasítások végrehajtásából, mint pl. nullával osztás, nem valós címtartomány megcímzése).
(#) cpt.zoltan.simon válasza _vl_ hozzászólására (») Júl 18, 2012 /
 
Akkor ha jól értem:
Exception = Megszakítás a mag-ban
Interrupt = Megszakítás a perifériákban?
(#) _vl_ válasza cpt.zoltan.simon hozzászólására (») Júl 18, 2012 /
 
Kb.
Az exceptiont inkább "hibára futásként" kéne elképzelni. Azaz a CPU valamilyen műveletet nem tud végrehajtani. A "valamilyen művelet" nem mindig köthető közvetlenül egy utasításhoz (de általában igen), mivel az exception rutinra ugrás maga is okozhat exceptiont.
(#) cpt.zoltan.simon válasza _vl_ hozzászólására (») Júl 18, 2012 /
 
Beállítottam az USART-ot. Jön adat a GPS-ből, és az RXNE bit is 1 azaz van bejövő adat.
Valaki pár utasítással meg tudná mutatni SOS-be hogy mit globálisan hogy kell engedélyezni az IT-t, és hogy néz ki az ISR rutin?
(#) weberlars hozzászólása Júl 24, 2012 /
 
[code=c]
Ez a rövid assemblerkód (ARM-CPU) azt ellenőrzi, hogy egy megadott
dátum valós-e vagy hibás.

-input: hónap R1 ( hex értékben )
-input: nap R2 ( hex értékben )
-output: R3 ( 0=hiba )

Hiba akkor van, ha olyan dátumot adunk meg, ami nem fordulhat elő.
-Pl.: xxxx.04.31, xxxx.02.30, xxxx.08.45, xxxx.34.12, stb.

xxxx.02.29.-ét azért fogadja el jó dátumnak, mert amíg az év
nem ismert, addig ez lehetséges. A programnak ezt a lehetőséget
a későbbiekben tovább kell vizsgálnia. ( szökőév probléma )

A programot én ( weberlars.tata@gmail.com ) írtam, érdekessége, hogy
-nem használ táblázatot a hónapokhoz tartozó
maximális lehetséges napok számával,
-nem használ sok IF-THEN kérdést, utasítást,
-egy függvénnyel számítja ki a maximum lehetséges napokat.

Így a program elég rövid.
Ha valakinek lenne rövidebb megoldása, ötlete, úgy kérlek
közöljétek velem. Nem fogok emiatt megsértődni.

...
*0c e3522001 cmp r2,#0x1 ; nap=0 ?
*10 23511001 cmpcs r1,#0x1 ; hónap=0 ?
*14 2271300c rsbcss r3,r1,#0xc ; hónap>12 ?
*18 202131a1 eorcs r3,r1,r1,lsr #0x3 ; kiszámítja maximum hány
*1c 2383301e orcs r3,#0x1e ; napból állhat a hónap.
*20 21533002 cmpcs r3,r2 ; több nap mint szabadna ?
*24 03311002 teqeq r1,#0x2 ; február 30 ?
*28 e3a33000 mov r3,#0x0 ; ha csak egyszer is igen
*2c 9afffffe bls 0x2c ; akkor itt vége (r3=0 hiba)
*30 eafffffe b 0x30 ; stop

0XE3522001 0X23511001 0X2271300C 0X202131A1 0X2383301E 0X21533002 0X03311002 0XE3A33000 0X9AFFFFFE 0XEAFFFFFE
(#) cpt.zoltan.simon válasza cpt.zoltan.simon hozzászólására (») Júl 25, 2012 /
 
Ha esetleg valaki Register Direct csinálja az ARM-ot Keil-ban akkor meglett a megoldás.
Keil csak akkor csinál egy funkcióból interrupt handlert ha:
1:
A kezelő neve pontosan stimmel a startup file-ban lévő táblázattal, esetemben "USART1_IRQHandler"

2: A kezelő így néz ki:
void USART1_IRQHandler (void) __irq
{
//blablabla
}
(#) El_Pinyo válasza cpt.zoltan.simon hozzászólására (») Júl 25, 2012 /
 
Az a __irq szerintem nem nagyon kell oda. Anélkül is megy, legalábbis nekem eddig ment (Csupán nemrég kezdtem én is STM32-vel bíbelődni).
(#) cpt.zoltan.simon válasza El_Pinyo hozzászólására (») Júl 25, 2012 /
 
Nálam enélkül nem ment. Nem tudom miért, de amíg működik, nem is érdekel...
Közben kiderült a gond, az FSMC-vel. Ahogy az ábrán is látható, se a #CS, se az RS láb...

001.jpg
    
(#) icserny válasza El_Pinyo hozzászólására (») Júl 26, 2012 /
 
Idézet:
„Az a __irq szerintem nem nagyon kell oda.”
Nagyon is kell, mert anélkül nem lesz belőle megszakítás-kiszolgáló függvény.

Idézet:
Function Attributes for Hardware Support.
The ARM C compiler provides function attributes that give you access to ARM hardware features. For example:

__irq allows you to create interrupt service routines in C.
__swi(id) allows you to invoke a software interrupt handler.”
Bővebben: Link
(#) cpt.zoltan.simon hozzászólása Júl 26, 2012 /
 
Van bárkinek Low Level tapasztalata FSMC-vel?
3 adatot küldenék ki FSMC-vel. 0xB4, 0x0F, és 0x01.
De : B4 helyett B0, és az adatok sorrendje se ok.
(#) cpt.zoltan.simon válasza cpt.zoltan.simon hozzászólására (») Júl 26, 2012 /
 
Meglettek a megoldások. Egy DATA láb elkötve, és FSMC teljesen szétkonfigurálva. Kiizzadva a rendes adatokat, működik a szerencsétlen. STM32F207ZGT6, 150MHz.
Fél hardveres a cucc, mert ugyan az adatokat az FSMC tolja ki, de abba bele szoftveres do-while tolja, szóval most már csak annyi van hogy SDRAM, abba bele egy 800x480 tömb, aztán a DMA mást se csináljon csak adja ki a tömböt FSMC-nek. Ha meg valaki valamit ki akar írni a képre az írjon a tömbbe.
(#) fehrudi válasza cpt.zoltan.simon hozzászólására (») Júl 26, 2012 /
 
STM32 + SDRAM? Megkérdezhetem hogyan?
(#) cpt.zoltan.simon válasza fehrudi hozzászólására (») Júl 26, 2012 /
 
Persze.
STM32F207ZGT6 Ebay modul

Közben Level-2 optimalizációval a törlési idő 38ms-re esett vissza, ez 26FPS, ha jól számolom, még mindig do-while ciklussal etetve. Most már nagyon kíváncsi lettem hogy fog menni DMA-val.
Valaki mondja már meg nekem hogy kell azt megcsinálni, hogy egy 384000 elemű adott nevű tömböt a memória egy adott helyére akarok tenni.
(#) cpt.zoltan.simon válasza cpt.zoltan.simon hozzászólására (») Júl 26, 2012 /
 
Sorry. SRAM! Hiába... SDRAM kézre áll
(#) El_Pinyo válasza icserny hozzászólására (») Júl 27, 2012 /
 
Mint említettem nálam megy anélkül is. Valószínűsítem, hogy a project-hez nem volt hozzáadva a startup_stm32f2xx.s nevezetű file. Ezt a project létrehozásánál megkérdezi az IDE, hogy hozzá akarjuk-e adni a project-hez, vagy sem. Nálam hozzá van adva a system_stm32f2xx.c file-val együtt.
Egyébként, ha minden igaz a 207-es max 120 MHz-en mehet.
(#) cpt.zoltan.simon válasza El_Pinyo hozzászólására (») Júl 27, 2012 /
 
Igaz. (Egyes) papírokon 120MHz, máshol 168 van írva. Itt az asztalomon stabil 150MHz-en, de futott már 168-al is. Egy Litván gyerek mondta neki a 407 ami papiron 168, stabilan megy 200on is.
(#) cpt.zoltan.simon hozzászólása Júl 27, 2012 /
 
hali!

Egy kis segítséget kérnék.
Innolux AT070TN83 7" TFT-t használnék.
A timing diagramjába beírtam az adatlap által közölt értékeket (1. melléklet).
Nem megy a fejembe hogy hogy kell átkopizni ezeket az SSD1963 adatlapjában található timing diagrammra (2.melléklet)
Mert a probléma a 3. képen látható...
(#) Gezaba válasza cpt.zoltan.simon hozzászólására (») Júl 27, 2012 /
 
Hi,

Hol vetted a stm32f407et meg az lcdt?
(#) Gezaba válasza cpt.zoltan.simon hozzászólására (») Júl 28, 2012 /
 
Logikai Analizátor, milyen tipus?
Ebayről?
(#) Gezaba válasza cpt.zoltan.simon hozzászólására (») Júl 28, 2012 /
 
Amúgy mi lesz ebből ha kész lesz?
(#) cpt.zoltan.simon válasza Gezaba hozzászólására (») Júl 28, 2012 /
 
Logikai Anallizátor
STM32F207ZGT6
7" TFT
A TFT nem teljesen ez, én akkor vettem amikor ennek még csak készült az érintő képernyős változata.
Egy litván gyerekkel konzultálva, ma már az STM-et nem igy venném meg, mert pl az SRAM amit a kínai rápakolt 65ns-os, a srác viszont maga tette rá az SRAMot, a 8ns fajtából. Mindegy, ez jó lesz asztalon, és ha lassú, még mindig megrendelhetem ennek az "utódját", az STM32F407-et memók nélkül.
Ez az egész jelenleg egy baromi drága GPS, mert annak van felprogramozva. Egyenlőre hobbi, de valószínűleg a kocsiba fog bemenni, egy csomó mindent helyettesítvén.
A hibákat egyébként sikerült helyrehozni. Jelenleg 150MHz-en (120 helyett) DMA nélkül a képernyő törlés 38ms, egy 800x480 kép 49ms, de byte-os tömbből, szóval a do-while ciklusban van jó pár kivédhető dolog. Igaz most csak az volt a lényeg hogy a kép kerüljön ki, szépen egybe a kijelzőre.
(#) cpt.zoltan.simon hozzászólása Júl 28, 2012 /
 
Én is kérdezek akkor. Image2LCD szép tömböt csinál. A gondom az hogy a benne lévő tömb nem 16bites, így "rengeteget" kell matekolni, ahelyett hogy az ember csak szórná ki a tömb-adatokat. Tud valaki valamit ami a 8bites tömböt 16 bitessé rakja össze?
Következő: »»   12 / 177
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem