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