freeRTOS + SPI + semafory

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


Teď jsem si všiml, že u VS1053 je ještě u inicializace:
if(!sSPI) vSemaphoreCreateBinary(sSPI);

Dne 26. dubna 2016 9:12 Michal Grunt <michal.grunt na gmail.com> napsal(a):
> 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