Cortex M7 MPU a DMA

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Středa Únor 13 15:52:59 CET 2019


No musim nejak potlacit cache v oblastech pameti, kde pouzivamDMA, nebo 
je tam LCD atp. Takze to resim pres MPU coz je IMHO nejelegantnejsi 
varianta reseni.
write allocate zrejme znamena, ze se alokuje cache pri zapisu a vlastni 
zapis do pameti se neprovede vubec.

Zkousel jsem ruzne varianty konfiguraci a je to asi OK.  Nejlepsi zrejme 
je zakazat cache vseho v techto oblastech, stejne to ctu nebo zapisuju 
procesorem jenom jednou u DMA prenosu


Dne 13.02.2019 v 15:09 Josef Štengl napsal(a):
> Co má co společného nastavení přístupu k paměti a DMA, kromě toho že 
> ji DMA používá? No nechme toho.
>
> Pokud si správně pamatuji (když tak mě prosím opravte), tak shareable 
> znamená, jestli je sdílená paměť více procesory. Tudíž u single CPU 
> systému nastavit nulu a neřešit :-)
>
> Jestli myslíte cache CPU, tak to je úplně jiná věc než ostatní buffery 
> u periférií. Prakticky když máte vypnuté bufferování, tak operace 
> zápisu může být dokončena až po té, co je proveden zápis procesorem; 
> prostě to déle trvá a CPU nečeká na dokončení, pokud další instrukce 
> nepracuje s tím samým zařízením. Jednoduše: s B=1 můžou být operace 
> čtení a zápisu rychlejší s pohledu procesoru, ale nemusí nutně 
> souhlasit s aktuálním stavem zařízení, ne, že by to bylo chybné, ale 
> aktuální stav může být poněkud opožděn od okamžiku začátku čtení / 
> ukončení zápisu procesorem. Ve většině případů to opravdu nevadí. 
> Nabývá významu (z hlediska rychlosti) u asynchronních sběrnic.
>
> Jen si nepamatuji, co znamená write allocate, ale to vás nezajímalo. :-)
>
>
>
> On 13. 02. 19 10:32, Jaroslav Buchta wrote:
>> Jsem z toho trosku jelen, jak nastavit MPU pro cteni ze SRAM -> DMA, 
>> napr. vysilani UART a pro zapis DMA -> SRAM, funkcni stav mam ale 
>> abych zbytecne neomezoval cache. Pro ethernet jsem to vzal podle 
>> prikladu a taky mi nastaveni neni uplne jasne. (tabulka z PM v priloze)
>>
>> Descriptory v SRAM D2: TEX=0, C=0, B=1, S=0    - proc neni B=0, pro 
>> typ Device pisou, ze zapis muze byt bufferovan, to nevadi?
>>
>> The different ordering requirements for Device and Strongly-ordered 
>> memory mean that the memory system can buffer a write to Device 
>> memory, but must not buffer a write to Strongly-ordered memory.
>>
>>
>> Rx Buffery jsou v defaultnim regionu ve SRAM D2, nemuze byt problem 
>> aktivni cache pro cteni?
>>
>> Tx Buffery maji TEX=0, C=1, B=0, S=0 - tady je to asi OK, zadna cache 
>> pro zapis, jen nevim, proc je S=0
>>
>> No a pro vlastni DMA prenosy jsem to nastavil:
>>
>> DMA->SRAM D2: TEX=0, C=1, B=0, S=0
>>
>> SRAM D2->DMA: TEX=0, C=0, B=1, S=0
>>
>> Je to OK?
>>
>>
>> _______________________________________________
>> 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