[elektro] Cortex M4 Interrupt, stack
elight
elight at gmail.hu
Tue Apr 7 17:04:20 CEST 2015
Ok.
Egyetértek,
de a stack-ban hibát keresni sem piskóta..
Igaz , ha csak 1 db INT vagy DMA fut ,
még könnyen realizálható,
de gondolom nem feltétlen ez a célod.
Nem kell feltétlen kerülőutat keresned,
csak megvizsgálnod, lehet e kedvezőbben
realizálható , tesztelhető más megoldás.
És ha nem , akkor sajna neki kell ugrani,
bugarászni a stack-ot , bármily rázós..
Üdv István
2015-04-07 16:47 keltezéssel, Bali Zoltan írta:
> Szia!
>
> A kerülő alternatíva meg, általában
> növeli az időt. Ez meg, éppenséggel
> időkritikus. Tiszta szoft, nem lehet
> megoldani HW-esen, uC HW adott.
> Vagyis, meg lehetne, de FPGA-ban
> nincs több csatornás AD, meg kis
> lábszámú QFP FPGA, meg nem olcsó.
> Hely se sok van, 61x25mm-es panel.
>
> Üdv. Zoli
>
>
> 2015.04.07. 12:13 keltezéssel, elight írta:
>> Szia Zoli
>>
>> Még el se jutott a tudatomig
>> konkrétan mit is szeretnél és azt hogyan..
>>
>> Szerintem ha ilyen bonyolult a manipuláció
>> és nem biztos a kimenetele..
>> akkor én rögtön olyan kerülő alternatívát keresnék,
>> amelyet egyértelműbb megvalósítani.
>> Pl valami hardveres átkapcsolót
>> vagy egy más típusú folyamatvezérlést
>> is kigondolnék, azzal is próbálkoznék.
>> Mindezt a gyorsabb , stabilabb eredmény érdekében.
>> Csak nagy szériáknál érdemes egy algoritmust
>> ( az első kézenfekvőt ) csiszolgatni a végletekig.
>> Előbb utóbb az ilyen trükköknél bejön az
>> "Ezekután hogyan tesztelem le ezt 100%-osan?"
>> kérdés is!
>> Üdv István
>>
>>
>>
>> 2015-04-07 10:18 keltezéssel, Bali Zoltán írta:
>>> Hali!
>>>
>>> Van egy DMA csatorna interupt-al. Alap esetben
>>> megy az ADC 6 csatornájának a mentése ezzel
>>> a DMA csatornával. Egy eseménykor, aminek a
>>> legmagasabb prioritású interruptja van, át kell
>>> programozni az ADC-t két csatornára és a DMA-t
>>> félbe szakítania, majd azt is az ADC két csatornához,
>>> meg más célterületre felprogramozni. Eközben még fenn
>>> állhat az alap eset szerinti, a magas prioritás miatt
>>> félbeszakított alap DMA interrupt, amire nincs szükség, sőt
>>> zavaró és komlpkálja a kezelést.
>>>
>>> Ki lehet ezt a magas prioritású it futásakor szedni
>>> valahogy stack manipulációval? Gondoltam valami POP-PUSH
>>> kombinációval, de nem látom át hirtelen a bukatókat.
>>> Ki kellene a futó IT exc. frame-jét szedni és menteni, majd az alatta
>>> levő exc. framet is persze csak beazaonosítás után, végül visszapakolni a mentett
>>> frame-et. Működhet ez? Vajon mennyi időmbe kerülhet ez?
>>> Vagy, egy frame memcpy a stacken lefele, gondolom a frame méret állandó,
>>> aztán a stack pointert arra állítani. Talán gyorsabb mint a push-pop.
>>>
>>> Köszi
>>>
>>> Üdv. Zoli
>>>
>>>
>>>
>>>
>>> -----------------------------------------
>>> elektro[-flame|-etc]
>>>
>> -----------------------------------------
>> elektro[-flame|-etc]
>>
>>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list