Mam kilka telefonów komórkowych, z których jeden to ten:
http://www.gsmarena.com/sony_ericsson_elm-3057.php
Możliwe jest wyczyszczenie pamięci flash i zastąpienie jej programem ładującym, a następnie przesłanie szkiców arduino lub szkice pic32 (C # / C ++).
Wpadłem na ten pomysł, ponieważ jest to bardzo tania platforma do opracowywania projektów sprzętowych. (Dostajesz ekran, przyciski, wejścia / wyjścia audio, internet itp., Dostajesz wszystko za bardzo niską cenę w porównaniu do tego, co dostajesz, kupując każdą część osobno.)
Czy można usunąć pamięć flash i zainstalować moduł ładujący w telefonie, aby używać go jako komputera wbudowanego?
microcontroller
telephone
bootloader
cellphone
Harry Svensson
źródło
źródło
Odpowiedzi:
Koszt nigdy nie stanowi problemu. Wielu entuzjastów będzie skłonnych zapłacić umiarkowaną cenę za łatwo hakujące urządzenia z wyższej półki. Problem polega na tym, że ARM to zamknięta platforma. Zwykle na silikonie SoC (system na chipie) jest część o nazwie prywatna pamięć ROM. Blokuje ponowne użycie.
Ta część ROM jest odpowiedzialna za wybranie bootloadera w określonej kolejności: Z-Modem na szeregowy, zewnętrzny Nand, szeregowy ROM, SDCard, zewnętrzny USB. Dla każdego urządzenia zamówienie jest indywidualne i słabo udokumentowane, zwykle należy przytrzymać kilka przycisków podczas włączania do alternatywnego modułu ładującego. Obraz bootloadera, jeśli przez większość czasu sprawdzany jest podpis cyfrowy właściciela platformy. Więc nie ma szczęścia.
W przypadku jednorazowego projektu można wybrać losowe urządzenie. Ale być może bardziej zainteresuje Cię dobrze znane urządzenie, z opublikowanymi schematami i dostępnym kodem źródłowym dla systemu Linux, Android itp.
Więc proponuję spojrzeć na urządzenia otoczone przez aktywne społeczności użytkowników : Raspberry Pi, BeagleBone, BeagleBoard, niektóre platformy testowe Samsung (PandaBoard?)
Moje osobiste doświadczenia z TI AM35XX zakończyły się rozczarowaniem złożonością wszystkiego. Najmniejszy Linux na świecie o nazwie Angstrom ma obraz dystrybucji 3 GB. Dokumenty dotyczące żetonów to 4000-5000 stron. Nie przypominało to hobby i nie było przyjemne.
Sytuacja może się zmienić, gdy Intel Atom SoC stanie się popularny. Spodziewam się ogromnego zainteresowania użytkowników i podążę za tłumem w kierunku najmniejszego możliwego Atomu z ekranem. Mam nadzieję, że ktoś ukończy element do montażu panelowego o rozmiarze karty kredytowej i GPIO. Będzie fajnie.
źródło
Przed laty istniał projekt zrobienia czegoś podobnego (inżynieria wsteczna taniej i bardzo popularnej rodziny telefonów).
http://nokix.pasjagsm.pl/help/blacksphere/sub_050main.htm
I tak, opcja Androida jest prawdopodobnie najłatwiejsza .. lub Windows Mobile, jest również dość otwarta.
źródło
Nie mam na to doświadczenia, ale nie sądzę, że byłoby to łatwe (jeśli w ogóle możliwe). Myślę, że można zapomnieć o programowaniu w C ++ lub C #, a raczej w ASM + C. Nie byłby kompatybilny ze szkicami arduino, kodem PIC32 ani czymkolwiek innym, co nie jest przeznaczone dla konkretnego procesora. Wiele nowych telefonów ma coś w rodzaju rdzenia ARM.
Naprawdę nie wiem, jak zaprogramowałbyś urządzenie, ale zakładam, że jest to możliwe, ponieważ zazwyczaj mogą zaktualizować oprogramowanie, jeśli wyślesz je do serwisu.
Będziesz także musiał kodować własne sterowniki dla całego sprzętu (wyświetlacza, sieci WLAN, czujników itp.), Co byłoby naprawdę trudne bez dodatkowych informacji na temat sprzętu, którego producent telefonu prawdopodobnie nie wyda .
Myślę, że najłatwiejszym sposobem byłby stary telefon z Androidem, ponieważ możesz pobrać kod źródłowy ze sterownikami i wszystkimi rzeczami niskiego poziomu za darmo. Możesz zgrać lub użyć interfejsu użytkownika i innych komponentów widocznych dla użytkownika. Ale prawdopodobnie nie jest to, czego chcesz, chyba że masz jakieś stare telefony z Androidem.
Ponadto, jeśli telefon został „zhakowany” w celu uruchomienia dowolnego innego systemu operacyjnego, zwłaszcza takiego jak Android, możesz być w stanie uzyskać źródła dla portu do grania.
źródło
Robienie wszystkiego samemu będzie w najlepszym wypadku trudne. Będziesz miał dużo łatwiejszy czas z jednym z urządzeń obsługiwanych przez projekt Rockbox , który jest oprogramowaniem układowym typu open source dla odtwarzaczy mp3. Niektóre z tych urządzeń są niedrogie i oferują wiele zalet, o których wspomniałeś, i mają na celu aktualizację oprogramowania układowego przez USB. Będziesz miał pomoc aktywnej społeczności, która już nauczyła się podstawowych problemów dotyczących kompilatorów, programów ładujących itp., A także kodu źródłowego na początek.
Przyjemną cechą Rockboksa jest to, że konfiguruje urządzenia do podwójnego rozruchu, dzięki czemu można ich nadal używać zgodnie z ich pierwotnym przeznaczeniem, gdy nie używasz nowego oprogramowania układowego.
źródło
Nie.
Dokumentacja publiczna tego telefonu (na przykład na stronie, do której prowadzi łącze) nie podaje nawet typu procesora. Nawet gdyby tak było, potrzebujesz schematu (w tym numerów części wszystkich układów scalonych), aby móc napisać dla niego kod. Byłoby to zastrzeżone dla Sony / Ericsson, więc nie dostaniesz tego). To samo dla każdego innego telefonu komórkowego.
W mało prawdopodobnym przypadku, gdy masz całą dokumentację dotyczącą procesora, pamięci flash itp., Może być możliwe napisanie bootloadera kompatybilnego z Arduino po spędzeniu kilku tygodni czasu. Oczywiście wymagałoby to stworzenia środowiska programistycznego dla telefonu, które prawdopodobnie kosztowałoby setki, jeśli nie tysiące dolarów.
Nawet jeśli były w stanie napisać bootloader Arduino kompatybilne, to byłoby niemożliwe powtórzyć niemożliwe , aby przesłać i uruchomić Arduino szkice, ponieważ 1) kompilator dla Arduino będzie emitujących kod dla mikrokontrolera Arduino kompatybilnym (ATmega, PIC32 itd.) , a telefon na pewno nie będzie z nich korzystać - najprawdopodobniej będzie to jakiś wariant ARM); oraz 2) porty I / O nie będą znajdować się w tych samych miejscach (portach) w telefonie komórkowym, jak w Arduino.
Zauważ, że istnieją telefony komórkowe typu open source , ale nie będziesz mógł uruchamiać oprogramowania Arduino na tych samych urządzeniach, które wymieniłem powyżej (niezgodność procesora i sprzętu). Niektóre inne odpowiedzi sugerują Androida, ale zauważ, że nie ma go na liście telefonów open source z powodu zastrzeżonych sterowników. I znowu pytanie brzmiało: czy można na nich uruchomić kod Arduino, a odpowiedź zdecydowanie nie.
Więc jest to sposób tańszy tylko zacisnąć zęby i uzyskać Arduino pokładzie oraz urządzeń peryferyjnych.
źródło
Co trzeba zrobić, by zmienić „codzienny” sprzęt w platformy mikrokontrolerów? Mody Sprite są doskonałym źródłem inspiracji. Daje dobre wyjaśnienie procesu potrzebnego do „otwarcia” urządzeń i przejęcia nad nimi kontroli. TL; DR: Linux można uruchomić na karcie SD i na dysku twardym. Nie, nie używając dysku twardego. Na dysku twardym - na dość mocnym procesorze, który jest kontrolerem napędu.
źródło