Skocz do zawartości

Wymiana danych między rdzeniami Raspberry Pi Pico (kolejka FIFO)


FeeJay

Pomocna odpowiedź

Poniższe pytanie zostało wydzielone z tematu: https://forbot.pl/forum/topic/19365-premiera-raspberry-pi-pico-za-4-z-nowym-ukladem-rp2040/
______

@Pyth0n Dzięki za odpowiedź, ciekawa sprawa swoją drogą, teoretycznie to jest jeden standard ARM SWD.

Kombinuje cały czas z płytką i spotkałem się dzisiaj z ciekawym jak dla mnie problemem. W kolejce fifo między rdzeniami można przekazywać tylko int'y, w examplu multicore_runner przekazano funkcje za pomocą

multicore_fifo_push_blocking((uintptr_t) &factorial);

i

int32_t (*func)() = (int32_t(*)()) multicore_fifo_pop_blocking();

Walczę z tym jak przekazać w jakiś sposób arraya charów (char[]) w podobny sposób, lecz póki co bez skutku, co podejrzewam wynika z mojej niewielkiej wiedzy o C. Macie może jakieś pomysły na przekazywanie w taki sposób takiego arraya? Lub może jakieś inne sposoby na to?

  • Lubię! 1
Link do komentarza
Share on other sites

@Pyth0n Dzięki za odpowiedź, w sumie podobnie kombinowałem, trochę potem pomieszałem z ampersandami, wszystko już pięknie działa i prosty kalkulator pracuje sobie na dwóch rdzeniach 😄

Co do pamięci, ciekawa sprawa, sprawdziłem już wcześniej, że oba rdzenie mają dostęp do całej pamięci, więc nie przejmowałem się zbytnio tym, ale nie myślałem o tym czy zmienne są w innych blokach, żeby mogły całkowicie równolegle pracować.

Z tego co rozumiem w tym co napisałeś, skoro bloki są zorganizowane jako Stripped, prawdopodobieństwo pracy dwóch rdzeni na tych samych blokach w tym samym czasie zmniejsza się, więc konflikt na magistrali jest mniej prawdopodobny, ale wciąż możliwy.

Przy krytycznych danych chyba warto wymusić wtedy ich umieszczenie w oddzielnych SRAM4 i SRAM5.

 

Im bardziej zagłębiam się w tę płytkę, tym bardziej mi się ona podoba. Wcześniej moja przygoda opierała się głównie na Arduino, trochę na Raspberry PI. Próbowałem już PIC, STM8 i STM32, ale brak takiego wsparcia z przykładami i dużej społeczności sprawił, że była to dla mnie ciężka droga i z czasem sobie odpuściłem.

Z PICO siedzę kolejny dzień i nadal nie mam dość 😄 Wszystko jest przejrzyste i nauka jest przyjemna i daje dużo satysfakcji.

Póki co testuję różne możliwości, ale projektem będzie zrobienie gry, gdzie do PICO będzie podłączony wyświetlacz IPS 240x240. Być może uda się jego obsługę wyrzucić do PIO, a jeśli nie to drugi rdzeń by się zajmował obsługą i wyświetlaniem.

  • Lubię! 2
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.