Сотовый телефон как микроконтроллер


19

У меня есть несколько сотовых телефонов, один из которых: http://www.gsmarena.com/sony_ericsson_elm-3057.php


Можно очистить флэш-память и заменить ее загрузчиком, а затем загрузить эскизы Arduino или рисунки pic32 (C # / C ++).

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

Можно ли стереть флэш-память и установить в телефон загрузчик, чтобы использовать его как встроенный компьютер?


3
Почему голосование против, это отличный вопрос.
Ракетный магнит

Это действительно нужно очистить. (Я не проголосовал против, но iIMade ожидает редактирования, который действительно проясняет вопрос, который задают)
CyberMen

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

@CyberMen Я не уверен, что вы имеете в виду с «Что такое форматирование флэш-памяти в телефоне и установка»
Вареса

@varesa не спрашивай меня, спроси OP. Используйте свои дедуктивные навыки английского языка.
CyberMen

Ответы:


1

Стоимость никогда не является проблемой. Многие энтузиасты будут готовы платить умеренную цену за легко взламываемые устройства высокого класса. Проблема в том, что ARM является закрытой платформой. Обычно на частичном кристалле SoC (система на кристалле) есть часть с именем Private ROM. Это блокирует повторное использование.

Эта часть ПЗУ отвечает за выбор загрузчика в некотором порядке: Z-модем на последовательном порту, внешний Nand, последовательный диск, 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 и выше, является чем-то, с чем у меня ограниченный опыт работы, но я думаю, что он все еще может работать с собственными двоичными файлами Си. Версия 6, составляющая основную часть старых, но чрезвычайно мощных PDA-телефонов, чрезвычайно открыта - она ​​запускает собственный код C, его можно скомпилировать с помощью MSVC и GCC, она практически не имеет защиты ... вы буквально можете запустить загрузчик как обычное приложение, и он переходит на ядро ​​Linux :)
qdot

Попробовав то же самое несколько лет назад с моим HTC Touch Pro, я могу подтвердить, что да, вы можете перейти к ядру Linux (или к пользовательской сборке Android). Это не значит, что разговаривать со всеми аппаратными средствами одинаково легко или выполнимо. (к сожалению, поскольку я ненавидел WM6 со страстью, но я никак не мог сохранить тот же уровень функциональности с любой другой ОС)
Alexios

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

1
@qdot, можете ли вы донести часть этой информации, чтобы ссылка была просто ссылкой, сейчас она подвержена гниению ссылок.
Кортук

3

У меня нет опыта в этом, но я не думаю, что это будет легко (если вообще возможно). Я думаю, что вы можете забыть программировать его на C ++ или C #, а точнее на ASM + C. Он не будет совместим с набросками arduino, кодом PIC32 или чем-то еще, что не предназначено для конкретного процессора. Многие новые телефоны имеют что-то вроде ядра ARM.

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

Кроме того, вам придется кодировать свои собственные драйверы для всего аппаратного обеспечения (дисплей, WLAN, датчики и т. Д.), Что было бы очень сложно без дополнительной информации об оборудовании, которую производитель телефона, вероятно, не собирается предоставлять вам. ,

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

Кроме того, если телефон был взломан для запуска любой другой ОС, особенно с открытым исходным кодом, например, Android, вы можете получить исходные коды для порта, с которым можно играть.


Разве нельзя было бы прочитать все с флэш-памяти и прочитать / изменить флэш-память оттуда?
Гарри Свенссон

@ HarrySvensson Что ж, вам придется либо напрямую изменить память, либо использовать какой-либо программный порт / заголовок, который может быть там для обновления прошивки. Возможно, но не легко.
Вареса

2
Почему случайное понижающее голосование?
Вареса

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

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 был обязан освободить исходный код. В итоге вы получили настраиваемую платформу под управлением Linux со встроенными портами Ethernet и Wi-Fi.
получили tcrosley
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.