STM32F3 ADC

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Úterý Prosinec 18 22:03:53 CET 2018


Tak jsem udelal par pokusu
- presun adcsvc_IsrDma do CCM - minimalni vyznam, vysledek asi 2.3us, to 
me trosku zklamalo
- presun DMA1_Channel1_IRQHandler tamtez - 1.8us, coz mne prekvapilo - 
kod vypada takto:

FASTRUN void DMA1_Channel1_IRQHandler(void)
{
   /* USER CODE BEGIN DMA1_Channel1_IRQn 0 */
     DIAG1_S();
     if (LL_DMA_IsActiveFlag_HT1(DMA1))
     {
         adcsvc_IsrDma(0);
         LL_DMA_ClearFlag_HT1(DMA1);
     }
     if (LL_DMA_IsActiveFlag_TC1(DMA1))
     {
         adcsvc_IsrDma(1);
         LL_DMA_ClearFlag_TC1(DMA1);
     }
   /* USER CODE END DMA1_Channel1_IRQn 0 */

   /* USER CODE BEGIN DMA1_Channel1_IRQn 1 */
     DIAG1_R();

   /* USER CODE END DMA1_Channel1_IRQn 1 */
}

Takze dobry, prvni pokus zklamal, druhy prekvapil, asi vliv skoku, 
adcsvc_IsrDma  je prelozena tak, ze se provadi cela sekvencne, pokud 
neni splnena nektera z podminek, coz samozrejme exekuci prodlouzi a tady 
CCM ma viditelne velky vyznam (CM4 nema nejakou predikci a nepredcita 
instrukce? )

Dne 18.12.2018 v 21:11 Jan Waclawek napsal(a):
>> Mohou tam [CCM RAM] byt i vektory,
> No ak sa tam nakopiruju a prislusne zmeni SCB_VTOR, preco nie. Toto nie je
> Cortex-M0 ale M4.
>
>> nebo jen v RAM,
> Nerozumiem.
>
>> nebo to nema smysl presouvat z FLASH?
>> Snizi to pozorovatelne latenci preruseni?
> No, ak viete pozorovat usporu casu v trvani poctu waitstatov pre jeden
> pristup do FLASH... :-) asi to nejaky valny vyznam nema.
>
> wek
>
>
> ----- Original Message ---------------
>
> Subject: Re: STM32F3 ADC
>     From: Jaroslav Buchta <jaroslav.buchta na hascomp.cz>
>     Date: Tue, 18 Dec 2018 20:52:06 +0100
>       To: hw-list na list.hw.cz
>
> Dekuji za osvetleni, zkusim tam jeste presunout program  ISR a data
> nechat v RAM.
>
>
> Dne 18.12.2018 v 20:34 Jan Waclawek napsal(a):
>>> nejake vysvetleni?
>> Tipujem, ze kolizia s pristupmi do FLASH na D-zbernici (z toho disasm by sa
>> dalo mozno mudrovat viac, ale stale je to len mudrovanie; ak chcete cistu
>> a nespornu pravdu, v ST radi nastartuju simulator, ak sa Vas odber zacne
>> ratat na vagony).
>>
>> Ta CCM RAM v 'F3 je pripojena cez maticu zbernic, tj. inak nez je to v 'F4.
>> A aj jej pouzitie a efekt je tym padom iny; predovsetkym je urcena na to,
>> aby z toho bezal rychly kus programu namiesto z FLASH (ktora v 'F3 nema
>> jumpcache a data cache, aka ART, ako to ma 'F4).
>>
>> JW
>>
>>
>> ----- Original Message ---------------
>> Tak super, uz to funguje jak vino.
>> Jen jedna divna vec, zpracovavam tam rychle ADC data a myslel jsem si,
>> ze kdyz vse, krome DMA bufferu presunu do CCM RAM, tak by se to mohlo
>> trosku zrychlit protoze se pristupy do RAM nebudou prat s DMA - opak je
>> pravdou, operace trva o chlup dele. Kod v disassembleru vypada tak nejak
>> stejne, nejake vysvetleni?
>> Testovaci program ISR je pro test zatim takto a ISR trva v prumeru 2.5us
>> pro RAM a 2.7us pro CCM. V RAM ma cas trosku vetsi rozptyl. Nejake
>> vysvetleni? Myslel jsem, ze CCM je pro procesor nejlepe pristupna, dela
>> to nejaka zapisova cache?
>>
> _______________________________________________
> 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