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