freeRTOS + SPI + semafory
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Pondělí Duben 25 18:23:23 CEST 2016
Probhlem nastane, pokud ta komunikace ma bezet zaroven ;-)
Nevidim v tom problem, jen by me zajimalo, proc vubec vznika (jake jsou
ty pouzite knihovny).
Stejne to chce pri SPI pouzivat DMA a semafor se pak prirozene pouzije k
cekani na dokonceni prenosu, na blokovani pri provadeni jednotlivych
kratkych funkci bych pouzil kritickou sekci (v podstate omezeni nebo
zakaz preruseni a prepinani tasku)
Dne 25.04.2016 v 18:19 Martin Persich napsal(a):
> Podle mého by měla stačit klasika:
>
> 1. na počátku vytvořit semafor:
>
> xSemaphoreHandle xSemaphoreSpiMutex;
>
> #define SPI_ACCESS_BLOCK_TIME ((portTickType)1000) //
> Waiting time for mutexes
>
> if((xSemaphoreSpiMutex=xSemaphoreCreateMutex())==NULL) {
> // *** some error ***
> }
>
>
> 2. v každém procesu pak před přístupem na SPI rozhraní použít:
>
> if(xSemaphoreTake(xSemaphoreSpiMutex,SPI_ACCESS_BLOCK_TIME)==pdTRUE) {
> // we were able to obtain the semaphore and can now access the
> shared resource
>
> // ... obsluha SPI zařízení
>
> xSemaphoreGive(xSemaphoreSpiMutex);
> // we have finished accessing the shared resource, release the
> semaphore
> }
>
>
> Každý proces tak bude čekat, než skončí komunikace konkurenčního
> procesu. To nemůže nefungovat. :-)
>
> Martin. persich na transcon.cz
>
>
> ----- Original Message ----- From: "Michal Grunt"
> <michal.grunt na gmail.com>
> To: "HW-news" <hw-list na list.hw.cz>
> Sent: Monday, April 25, 2016 4:59 PM
> Subject: freeRTOS + SPI + semafory
>
>
> Zdravím, mám tu jednu převzatou aplikaci, kterou jsem si upravil podle
> obrazu svého. Ale musel jsem k do ní přidat jednu SPI periférii navíc
> takže tam jsou nyní dvě. Odděleně mi to funguje, ale dohromady
> bohužel. Viděl bych to na problém "hádání se" (každá SPI periférie
> běží v jiném vláknu). Jak správně nastavit semafory tak, aby když
> komunikuje jedno SPI zařízení a v tu dobu bude chtít přistupovat na
> sběrnici druhý tak aby počkalo?
>
> Děkuji
> MG
> _______________________________________________
> 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