freeRTOS + SPI + semafory

Michal Grunt michal.grunt na gmail.com
Úterý Duben 26 09:12:42 CEST 2016


Nyní to je nastavené takto.

SRAM - inicializace ram:
vSemaphoreCreateBinary(semCanRead);
vSemaphoreCreateBinary(semCanWrite);
mux=xSemaphoreCreateMutex();

čtení:
xSemaphoreTake(mux, portMAX_DELAY);
...kód
xSemaphoreGive(mux);
xSemaphoreGive(semCanWrite);

zápis:
xSemaphoreTake(mux, portMAX_DELAY);
...kód
xSemaphoreGive(mux);
xSemaphoreGive(semCanRead);


VS1053
xSemaphoreHandle sSPI = NULL;

na záčátku funkcích, které komunikují s SPI:
uint8_t ICACHE_FLASH_ATTR spi_take_semaphore() {
if(sSPI) if(xSemaphoreTake(sSPI, portMAX_DELAY)) return 1;
return 0;
}

na konci:
void ICACHE_FLASH_ATTR spi_give_semaphore() {
if(sSPI) xSemaphoreGive(sSPI);
}

Potřeboval bych to nějak skloubit dohromady...

Děkuji, MG

Dne 25. dubna 2016 19:45 Michal Grunt <michal.grunt na gmail.com> napsal(a):
> Je to ESP8266. Na jedné SPI sběrnici mám MP3 dekodér VS1053 a SRAM 23LC1024.
> A později bych tam chtěl pověsit i SD kartu. :-)
>
> Obojí najednou fungovat nemusí. Stačí aby jeden přístup zablokoval druhý a
> naopak. Takže když zapisují do paměti nemusím komunikovat s dekoderem. Ten
> počká až bude u konce práce s paměti (zapisuje se po malých blocích).
>
> Dne pondělí 25. dubna 2016 Martin Persich <persich na transcon.cz> napsal(a):
>
>> No, pravda, asi by to šlo vysvětlit tak i tak ... počkáme na vyjádření
>> autora ... :-)
>> Martin. persich na transcon.cz
>>
>> ----- Original Message ----- From: "Jaroslav Buchta"
>> <jaroslav.buchta na hascomp.cz>
>> To: "HW-news" <hw-list na list.hw.cz>
>> Sent: Monday, April 25, 2016 6:51 PM
>> Subject: Re: freeRTOS + SPI + semafory
>>
>>
>> Aha, ja pochopil, ze pouziva 2 periferie, asi jsem to pochopil spatne.
>>
>> Dne 25.04.2016 v 18:48 Martin Persich napsal(a):
>>>
>>> Přiznávám, dvě současně běžící komunikace na jedné SPI sběrnici si nějak
>>> neumím představit...
>>> Martin. persich na transcon.cz
>>>
>>> ----- Original Message ----- From: "Jaroslav Buchta"
>>> <jaroslav.buchta na hascomp.cz>
>>> To: "HW-news" <hw-list na list.hw.cz>
>>> Sent: Monday, April 25, 2016 6:23 PM
>>> Subject: Re: freeRTOS + SPI + semafory
>>>
>>>
>>> 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)
>>>
>>>
>>> _______________________________________________
>>> 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
>>
>>
>>
>> _______________________________________________
>> 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