ARM- interrupt/event

Tomas Dresler dresler na hw.cz
Středa Duben 10 19:38:35 CEST 2013


Instrukce STR [adresa], registr trva v jadre 1 CLK. Pokud je volny Write
buffer na interni sbernici jadra, zapise se a jadro pokracuje dal. Pokud
ovsem obsahuje predchozi zapisovou opraci, musite si pockat na uvolneni.

AHB je transakcni, takze si ten zapis prebere sama. Problem je s IO porty,
pokud jsou umistene na APB. Pak zpozdeni kvuli resynchronizaci mezi
frekvencemi AHB a APB si vezme az (1+pomer hodin), tj. 3 az 5 cyklu.

Pokud je GPIO port primo na AHB sbernici (novejsi procesory),trva
transakcena AHB dalsi hodinovy takt a tim je to vyrizeno (tj. 2 takty od
vykonani instrukce STR).

Nyni zpet k prikladu s GPIO. Bit-banding je velmi ucinny pro praci s RAM,
pro praci s porty se nehodi (zvlast ne pro zapis). Proc? BB musi vykonat
read-modify-write na urovni vnitrni sbernice jadra (nikoli AHB, ale tu
pouzije 2x), takze precte ODR, zmeni a zapise zpet, tj.4-5 cyklu v
idealnim pripade. AHB je behem teto transakce zamknuta a jadro to zapisem
do write bufferu ukoncilo, takze operace je atomicka, ale cas na sbernici
si vezme... Navic meni jediny bit.

To je duvod, proc STM32 nabizi v GPIO registry BSRR a BRR, ktere umoznuji
jedinym zapisem zmenit hodnotu libovolneho poctu bitu. Cela operace si
vezme 2 takty a hotovo, zadne R-M-W cykly navic.

Tomas



> Nie.
>
> Tie zapisy su buffrovane na rozhrani procesor/AHB, t.j. sa do portu
> nezapisu okamzite (a je mozne, ze su nejako buffrovane aj v samotnom GPIO
> module, kedze sposobuju v skutocnosti read-modify-write na skutocnom
> vystupnom buffri).
>
> Detaily sa bohuzial nemate sancu dozvediet. Toto je jedna z dani za to, ze
> tie 32-bitove jednocipy nie su mikrokontrolery (t.j. jednoliaty obvod
> navrhnuty na riadiace ucely) ale SoC (zlepenec procesoroveho jadra,
> pamati, periferii a roznych medzikusov) (aj ked sa vyrobcovia zurivo
> snazia, aby terminologia na tento rozdiel nepoukazovala).
>
> wek
>
>
>
>
> ----- Original Message ---------------
>
> Subject: Re: ARM- interrupt/event
>    From: Jan Smrz <jan.smrz na email.cz>
>    Date: Wed, 10 Apr 2013 15:34:35 +0200
>      To: HW-news <hw-list na list.hw.cz>
>
>>Jak je mozne, ze vystup rizen registrem je dlouhy jen jeden clock? Jadro
>> umi
>>paralelni zpracovani vice instrukci?
>>
>>J.S.
>>
>>
>>On 04/10/2013 03:21 PM, Jan Waclawek wrote:
>>>> SEV je vykonana okamzite, takze potrebujete-li nejak zobrazit
>>>> casovou vzdalenost mezi dvema udalostmi, SEV reaguje rychleji (ale
>>>> trva 1
>>>> HCLK!) nez zapis na port.
>>> Tak som si to vyskusal.
>>>
>>> http://www.efton.sk/STM32/r.png
>>> http://www.efton.sk/STM32/r.c
>>>
>>> Hore su tie dva SEV, v strede su tie dva zapisy na port (jeden do
>>> nastavovacieho registra, druhy do nulovacieho, t.j. BSRRL/BSRRH), dole
>>> su
>>> hodiny (HCLK).
>>>
>>> Ten posun zapisu na port voci tym SEV, a najma vzajomny posun tych
>>> dvoch
>>> zapisov na port - zapisy su od seba vzdialene minimalne 2 clocky vdaka
>>> tomu SEV vlozenemu medzi nimi, ale pulz je dlhy len 1 clock - to vsetko
>>> je
>>> poucne.
>>>
>>> wek
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>_______________________________________________
>>HW-list mailing list  -  sponsored by www.HW.cz
>>Hw-list na list.hw.cz
>>http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>




Další informace o konferenci Hw-list