Мобільний телефон як мікроконтролер


19

У мене є кілька мобільних телефонів, один з них такий: http://www.gsmarena.com/sony_ericsson_elm-3057.php


Можна очистити флеш-пам’ять і замінити її завантажувачем, а потім завантажити ескізи ардуїно або ескізи pic32 (C # / C ++).

Я отримав цю ідею, оскільки це дуже дешева платформа для розробки апаратних проектів. (Ви отримуєте екран, кнопки, аудіо введення / виведення, Інтернет тощо), ви отримуєте все за дуже дешеву ціну порівняно з тією, яку отримуєте, купуючи кожну частину окремо.)

Чи можна стерти флеш-пам’ять і встановити завантажувач завантаження в телефон, щоб використовувати його як вбудований комп'ютер?


3
Чому голосування проти, це відмінне питання.
Rocketmagnet

Це дійсно потрібно прибрати. (Я не проголосував, але я зробив очікуване редагування, яке дійсно очищає запитання)
CyberMen

Можливо, вас зацікавить проект Rockbox, який займається чимось подібним з mp3-програвачами. Люди, які беруть участь у цьому, можуть сказати вам, як важко отримати інформацію про власницьке обладнання.
Жанна Піндар

@CyberMen Я не впевнений, що ви маєте на увазі під словом "Яке форматування флеш-пам’яті в телефоні та встановлення"
varesa

@varesa не питайте мене, запитуйте ОП. Використовуйте свої дедуктивні навички англійської мови.
CyberMen

Відповіді:


1

Вартість ніколи не є проблемою. Багато ентузіастів будуть готові платити помірну ціну за легко зламані пристрої високого класу. Проблема полягає в тому, що ARM - це закрита платформа. Зазвичай є частина, названа приватним ПЗУ на самому кремнію SoC (система на мікросхемі). Він блокує повторне використання.

Ця частина ПЗУ відповідає за вибір завантажувача у певному порядку: Z-модем на послідовному, зовнішньому Nand, послідовному ROM, SDCard, зовнішньому USB. Для кожного пристрою замовлення є індивідуальним і погано задокументовано, як правило, ви повинні утримувати кілька кнопок під час включення до альтернативного завантажувача. Зображення завантажувача, якщо більшість часу перевіряється на цифровий підпис власника платформи. Тож не щастить.

Для одноразового проекту добре вибрати випадковий пристрій. Але вас, можливо, більше зацікавить добре відомий пристрій, опубліковані схеми та доступний вихідний код для Linux, Android тощо.

Тому я пропоную переглянути пристрої, оточені спільнотами активних користувачів : Raspberry Pi, BeagleBone, BeagleBoard, деякою платформою оцінки Samsung (PandaBoard?)

Мій особистий досвід роботи з TI AM35XX закінчився розчаруванням складністю всього. Найменший Linux у світі під назвою Angstrom має 3 Гб зображення розподілу. Документи для чіпів - 4000-5000 сторінок. Це не дуже схоже на хобі і не було приємним.

Ситуація може змінитися після того, як Intel Atom SoC стане популярним. Я очікую величезний інтерес користувачів і буду стежити за натовпом у напрямку найменшого можливого Atom з екраном. Сподіваємось, хтось виконає встановлену на панелі деталь із розміром кредитної картки та GPIO. Це буде весело.


2
Насправді TI AM35XX є приголомшливим - найменший Linux на цій платформі добре вміщує 3 Мб. Я особисто використовую ці (та AM33XX) цілу купу речей, як тільки ви стикаєтеся з клопотами перехресних компіляцій, у вас є добре підтримуваний, добре задокументований апарат. Так, це складно, і TRM (5000 сторінок) - це величезна цегла, але це мається на увазі як довідковий документ, а не як колискова (ти це також може слугувати)
qdot

+1. Так, я погоджуюся, що TI ARM, можливо, найкращий, який можна знайти. Я мав на увазі лише свій особистий досвід як хобі. Якби це була моя щоденна робота в боротьбі з ARM в команді, було б набагато веселіше.

Ну, я б боровся з машиною, що переважає потужність, ніж загалом, з недостатнім. Очевидно, що немає Arduino, але це Linux, коли ви завантажуєте на ньому ядро, воно не відрізняється від будь-якої іншої платформи crossdev. Створіть якусь користувальницьку землю (або побудуйте свій власний init та запустіть звідти), і ви вдома :)
qdot

5

Століття тому існував проект зробити щось подібне (зворотна інженерія дешевого і дуже популярного сімейства телефонів).

http://nokix.pasjagsm.pl/help/blacksphere/sub_050main.htm

І так, варіант Android, мабуть, найпростіший .. або Windows Mobile, він також досить відкритий.


Зачекайте, чи відкриті також низькі рівні для WP?
Вареза

WP чи WM? Windows Phone, тобто версія 7 і вище, - це те, з чим я маю обмежений досвід, але я думаю, що він все ще може працювати з нативними файлами C. Версія 6, яка складає основну частину старих, але надзвичайно потужних PDA-телефонів, надзвичайно відкрита - вона працює з власним кодом C, її можна компілювати з MSVC та GCC, у неї майже немає безпеки .. ви буквально можете запустити завантажувач як звичайний додаток, і він переходить на ядро ​​Linux :)
qdot

Спробувавши цю річ ще багато років тому з моїм HTC Touch Pro, я можу підтвердити це так, ви можете перейти в ядро ​​Linux (або власну збірку Android). Це не означає, що розмовляти з усім обладнанням однаково легко чи можливо. (на жаль, як я ненавиджу WM6 з пристрастю, але не було можливості зберегти той же рівень функціональності з будь-якою іншою ОС)
Alexios

qdot, чому б ви не розказали нам більше про підхід від того, щоб купити телефон Windows 6/7, придбаний у магазині, до того, щоб він міг керувати власним кодом, скажімо, 5 сервоприводів через послідовний порт.
Гаррі Свенссон

1
@qdot чи можете ви донести частину цієї інформації, щоб посилання була лише посиланням, зараз вона чутлива до гниття посилань.
Кортук

3

Я не маю досвіду з цього приводу, але не думаю, що це було б просто (якщо навіть можливо). Я думаю, ви можете забути програмувати його на C ++ або C #, а точніше в ASM + C. Це було б не сумісно з ескізами arduino або кодом PIC32 або чим-небудь іншим, що не створено для конкретного процесора. Багато нових телефонів мають щось на зразок ядра ARM.

Я не знаю, як би ви запрограмували пристрій, але я припускаю, що це можливо, оскільки вони, як правило, можуть оновити мікропрограмне забезпечення, якщо ви надішлете його для обслуговування.

Також вам доведеться кодувати власні драйвери для всього обладнання (дисплея, WLAN, датчиків тощо), що було б дуже важко без додаткової інформації про апаратне забезпечення, яке виробник телефону, можливо, не збирається видавати вам .

Я думаю, що найпростішим способом було б щось на зразок старого андроїд-телефону, оскільки ви можете отримати вихідний код з драйверами та всі матеріали низького рівня безкоштовно. Ви можете зірвати або використовувати інтерфейс користувача та інші компоненти, видимі користувачеві. Але це, мабуть, не те, що ви хочете, якщо тільки у вас лежать старі телефони для Android.

Крім того, якщо телефон "зламали" для запуску будь-якої іншої ОС, особливо з відкритим кодом, як-от Android, ви, можливо, зможете отримати джерела для порту, з яким можна грати.


Чи не вдалося б прочитати все з флеш-пам’яті та прочитати / змінити флеш-пам’ять звідти?
Гаррі Свенссон

@HarrySvensson Ну, вам доведеться або змінити пам'ять безпосередньо, або використовувати якийсь порт / заголовок програмування, який може бути там для оновлення прошивки. Можливо, але не просто.
varesa

2
Чому випадкове голосування?
varesa

@HarrySvensson, якщо припустити, що у вас є інструменти для скидання всієї флеш-пам’яті (може бути кілька флеш-мікросхем, що містять різні речі, такі як захищені завантажувачі, а що ні, деякі, можливо, потребують власних інструментів), вам буде зручно в розшифровці всіх його вручну? Не сподівайтеся, що все це буде у приємному форматі файлової системи, яке ви зможете просто встановити на комп’ютер, як привід пальця. Ви можете побачити безліч фірмових і невпізнаваних речей або просто прокласти сирий збірний код, де може бути якийсь код програми.
Джон L

2

Зробити це все самостійно буде в кращому випадку складно. Вам було б набагато легше провести час з одним із пристроїв, підтримуваних проектом Rockbox , який є прошивкою з відкритим кодом для mp3-плеєрів. Деякі з цих пристроїв коштують недорого і пропонують багато переваг, які ви згадуєте, і вони розроблені для того, щоб оновити прошивку через USB. Вам допоможе активна спільнота, яка вже з'ясувала основні проблеми щодо компіляторів, завантажувачів тощо, а також якийсь вихідний код для початку.

Приємною особливістю Rockbox є те, що він налаштовує пристрої на подвійне завантаження, тому вони все ще можуть використовуватися для їх первісного призначення, коли ви не використовуєте нову прошивку.


0

Ні.

Загальнодоступна документація для цього телефону (наприклад, на сторінці, на яку ви пов’язані) навіть не відображає тип процесора. Навіть якби це було, вам знадобиться схема (включаючи номери деталей усіх ІМС), щоб мати можливість писати код для цього. Це було б власністю для Sony / Ericsson, тому ви не збираєтесь його отримувати). Те саме для будь-якого іншого мобільного телефону.

У випадку навряд чи у вас є вся документація на процесор, флеш-пам’ять тощо, можливо, можна буде завантажити завантажувач, сумісний з Arduino, витративши кілька тижнів вашого часу. Звичайно, це вимагатиме, щоб ви отримали середовище розробки для телефону, яке, швидше за все, коштуватиме сотні, якщо не тисячі доларів.

Навіть якби вам вдалося написати завантажувач сумісного з Arduino завантажувача, неможливо повторити неможливо завантажити та запустити ескізи Arduino, тому що 1) компілятор для Arduino буде випромінювати код для мікроконтролера, сумісного з Arduino (Atmega, PIC32 тощо). , і телефон точно не буде використовувати ті, що зникли - здебільшого це буде якийсь варіант ARM); і 2) порти вводу / виводу не будуть розташовуватися в тих же місцях (портах) мобільного телефону, що і в Arduino.

Зауважте, що є кілька мобільних телефонів з відкритим кодом , але ви не збираєтеся запускати програмне забезпечення Arduino на тих самих, як я цитував вище (несумісність процесора та обладнання). Деякі з інших відповідей запропонували Android, але зауважте, що його немає у списку телефонів з відкритим кодом через власників драйверів. І ще раз питання було, чи можна запустити Arduino код на них, і відповідь, безумовно, ні.

Таким чином , це спосіб дешевше просто зціпити зуби і отримати Arduino плати і периферійні пристрої.


0

Що потрібно, щоб перетворити різні «побутові» апаратури на мікроконтролерні платформи? Моди Sprite - чудове джерело натхнення. Це дає хороше пояснення процесу, необхідного для "відкриття" пристроїв та отримання контролю над ними. TL; DR: Linux можна запускати на SD-картці та на жорсткому диску. Ні, не використовується жорсткий диск. На жорсткому диску - на досить потужному процесорі, який є контролером диска.


Маршрутизатор Linksys WRT54G був популярним пристроєм для злому, так як він використовується програмне забезпечення з відкритим вихідним кодом , так Linksys був зобов'язаний звільнити вихідний код. Ви
отримали
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.