Skocz do zawartości

Raspberry Pi.


Pomocna odpowiedź

witam

kupiłem sobie to cacko RPI3 i sobie myślę, ze wejdę na forbot pewnie coś znajdę.... patrzę kurs Raspberry ... wow ekstra.... emocje opadły gdy doszedłem do ostatniej części i nic nie ma na temat programowania.... oczywiście piszecie ze będzie wszystko nawet assembler i tylko piszecie ze będzie 🙂

Wiec zaczynam ten temat aby się cos więcej dowiedzieć.

Mam taką wrodzona niechęć do tego aby robić cos pod "systemami" pod którymi nie mam 100% kontroli nad tym co robię. Dlatego interesuje mnie bardziej programowanie w assemblerze.... jak do tego podejść. Z logicznego punktu myślenia można dojść do wniosku, ze RPi3 po uruchomieniu zaczyna czytać kartę SD i myślę ze chciałbym tak samo do tego podejść..... chciałbym napisać program w assemblerze, który na wstępie zostanie wczytany z karty SD i go uruchomi.... czy ktoś wie jak do tego podejść ?

Czy gdzieś znajdę mapę pamięci RPi3? może nawet jakieś include w asm do obsługi eth, hdmi w trybie tekstowym, gpio i etc ?

pozdro

Link to post
Share on other sites

Nie wiem, ja bym na twoim miejscu zaczął raczej od nauki C w takim przypadku oraz programowania Linuksa. Przechodzenie prosto z kursu dla przedszkolaków na assembler na gołym metalu i to jeszcze na takiej problematycznej platformie, to brzmi raczej jakbyś niekoniecznie rzeczywiście chciał coś zrobić, tylko popisywać się. No ale nie mi decydować. Skoro chcesz żeby było trudno, to będzie trudno.

Mapę pamięci, podobnie jak wszystkie inne potrzebne informacje, znajdziesz w nocie katalogowej procesora. Oczywiście pierwszym zadaniem będzie dla ciebie dowiedzieć się co to za procesor, oraz znaleźć dokumentację do niego. Z góry ostrzegam, że pełna dokumentacja wymaga podpisania NDA z Broadcomem.

[ Dodano: 26-12-2017, 17:38 ]

Jeśli jednak uznasz, że to trochę za wysoka poprzeczka na początek (ja tak sądzę), to możesz spróbować asemblera pod Linuksem. Tutaj jest nawet książka na ten temat: http://bob.cs.sonoma.edu/IntroCompOrg-RPi/intro-co-rpi.html

Link to post
Share on other sites

Umowa NDA z Broadcomem ? masakra jakaś... produkują procesor i nie można zrobić na nim swojego projektu.... bo dane utajnione.... uważam to za nonsens. co do programowania w assemblerze.... programuje w tym języku jakieś 25 lat.... przechodziłem różne procesory zaczynając od 8 bitowych z80, mos6502 później Motorola 680xx i ostatnia rodzina Intela x86 i później mikrokontrolery microchip, atmel. Teraz chciałbym spróbować coś nowego i właśnie pomyślałem, ze może dobrą platformą będzie Raspberry... i teraz się zastanawiam czy to był trafiony pomysł.

Na studiach programowałem w C, C++, Javie i tez był Assembler, nie mówiąc już o VHDL/VERILOG.

No ale każdy lubi cos bardziej a coś nie za bardzo.... tak jak pisałem wyżej lubie assembler bo dokładnie wiem co robi procek.

Czy to , ze lubię assembler i dobrze się w nim czuje jest jakimś problemem?

Wiem, ze pisanie programów w assemblerze nie jest dla większości osób łatwe, co więcej dużo osób uważa, ze pisanie programów w języku wysokiego poziomu będzie skompilowane lepiej niż pisanie kodu w assemblerze .... ( ukłon do wykładowca na jednej uczelni w PL).

Inna sprawa to biblioteki, które ułatwiają sprawę i które są chętnie używane.

ale oki.... co proponujecie w takim razie ?

Pisanie w C i używanie biblioteki Wiringpi? - tak można się pobawić wstępnie 😉

A jeżeli chcę napisać program pracujący jako aplikacja realtime, gdzie wszystkie "wodotryski linuxa" są dla mnie przeszkodą.... to co proponujecie ?

Link to post
Share on other sites

Pisanie w C i używanie biblioteki Wiringpi? - tak można się pobawić wstępnie 😉

A jeżeli chcę napisać program pracujący jako aplikacja realtime, gdzie wszystkie "wodotryski linuxa" są dla mnie przeszkodą.... to co proponujecie ?

Bez znajomości OS(w tym przypadku Linux) nie zrobisz nic, czy to w C, czy w assemblerze. Może zacznij od dokumentacji do jednego z "bootloaderów" stosowanych w Linuksach. I od budowy jądra (jego kompilacji) oraz komunikacji miedzy-procesowej (pamięć współdzielona, pipes, sockety itp). Poczytej o narzędziach typu "strace", czy "tusc" i "gdb". Potem popróbuj skrypty shell (bash+sed+awk) bez ich znajomości nie zdebugujesz żadnego programu na tej platformie. Potem zainstaluj sobie assemblera i debbugera i programuj.

BTW: ja chociaż kilka ładnych lat pisałem soft pod Unixami (Solaris,HPUX) w C/C++ to na "Malince" często wystarczały mi skrypty shell (bash) np do sterowania pinami GPIO i programy w Pythonie (Python jest językiem w którym pisane jest najwięcej softu na ten komputerek).

Pozdrawiam

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Pisanie w asemblerze na RPi jest jak najbardziej możliwe - google podpowie Ci kilka gotowców, znajdziesz trochę dokumentacji do procesora BCM2835 chociażby tutaj: https://www.raspberrypi.org/app/uploads/2012/02/BCM2835-ARM-Peripherals.pdf

Na Broadcom-a nie masz co liczyć, bo nawet jeśli będziesz zamawiał 1mln procesorów rocznie i podpiszesz NDA pełnej dokumentacji nie dostaniesz. Ale jak pisałem BCM2835 jest już całkiem dobrze udokumentowany, w sieci jest trochę przykładów i można się tym pobawić - polecam fajna sprawa.

Jest tylko jeden problem. Dokumentacja dotyczyc RPi1 (i zero), do 3 jeszcze prawie nic nie ma... Nawet do 2 jest niewiele.

Więc jeśli chcesz pisać w asemblerze, proponowałbym kupić Rpi0 i programator - to pozwoli zaoszczędzić mnóstwo czasu i nerwów na przekładanie kart SD.

Natomiast zdrowy rozsądek w przypadku RPi nie działa. Kod jest co prawda ładowany z karty SD, ale i tak rdzeń ARM to raptem dodatek do "prawdziwego" procesora, czyli GPU... Podobno tez jest już o nim trochę informacji - ale też głównie do starszych wersji.

Natomiast programowanie w asemblerze na procesory to trochę inna trudność niż w przypadku mikrokontrolerów. Proponowałbym jednak pogodzić się z linuxem - to dużo ułatwia. Ale jeśli lubisz asembler, nic nie stoi na przeszkodzie w programowaniu aplikacji w tym języku. To jednak zupełnie inna historia niż bare metal.

[ Dodano: 26-12-2017, 21:08 ]

Tutorial do bare-metal na Rpi w C: http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal-programming-in-cpt1/

Oryginał tutoriala był w assemblerze: http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/ (jednak Cambridge to dobra uczelnia 😉 )

Jest jeszcze fajne środowisko do pisania w Pascalu: https://ultibo.org/

Link to post
Share on other sites

Ja nie mówię, że asembler jest be, albo, że pisanie w asemblerze dla pi nie jest możliwe. Ale autor podał bardzo konkretny sposób w jaki chciałby te programy uruchamiać — bez systemu operacyjnego, na gołym procesorze. To oczywiście nadal jest możliwe, ale o kilka rzędów wielkości trudniejsze. Zacząłbym od asemblera pod Linuksem, tak jak w tym linku, który podałem.

Link to post
Share on other sites
kupiłem sobie to cacko RPI3 i sobie myślę, ze wejdę na forbot pewnie coś znajdę.... patrzę kurs Raspberry ... wow ekstra.... emocje opadły gdy doszedłem do ostatniej części i nic nie ma na temat programowania.... oczywiście piszecie ze będzie wszystko nawet assembler i tylko piszecie ze będzie

Widzę, że dostałeś już konkretne linki i wskazówki. Dla formalności odniosę się jednak do powyższego fragmentu: tak jak było już mówione, to jest kurs zupełnych podstaw Raspberry Pi, który nie skupia się wyłącznie na programowaniu i podłączaniu elektroniki. W tej serii chcemy pokazać wszystkie najważniejsze informacje, tak aby po wykonaniu ćwiczeń każdy mógł biegle korzystać z malinki, a jej zastosowania nie ograniczają się wyłącznie do podpinania elektroniki. Programowanie będzie tylko częścią tego kursu, która zostanie rozszerzona w kolejnej, zupełnie osobnej serii (jeśli będą zainteresowani). Wszystko te informacje od samego początku znajdowały się w zapowiedzi i wstępie do kursu 😉

Link to post
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.