マイクロコントローラーとしての携帯電話


19

私はそれらの一つはこの1つであること、周りの敷設携帯電話のカップルを持っている: http://www.gsmarena.com/sony_ericsson_elm-3057.phpは、


フラッシュ・メモリをクリアし、ブートローダと交換して、Arduinoのスケッチをアップロードすることが可能ですまたはpic32スケッチ(C#/ C ++)。

ハードウェアプロジェクトを開発するための非常に安価なプラットフォームだからです。(画面、ボタン、オーディオI / O、インターネットなどを取得します。各パーツを個別に購入するのに比べて非常に安い価格ですべてを取得できます。)

フラッシュメモリを消去し、ブートローダーを電話機にインストールして、組み込みコンピュータとして使用することはできますか?


3
なぜ反対票を投じるのか、これは素晴らしい質問です。
Rocketmagnet

本当にきれいにする必要があります。(私は投票しませんでしたが、iIMade保留中の編集は本当に質問されている質問をクリアします)
Cyber​​Men

mp3プレーヤーで同様のことを行っているRockboxプロジェクトに興味があるかもしれません。関係者は、専用ハードウェアに関する情報を入手するのがどれほど難しいかを教えてくれます。
ジャンヌピンダー

@Cyber​​Men「携帯電話のフラッシュメモリのフォーマットとインストール」とはどういう意味かわからない
-varesa

@varesaは私に聞かないで、OPに尋ねてください。演de的な英語スキルを使用します。
サイバーメン

回答:


1

コストが問題になることはありません。多くの愛好家は、簡単にハッキング可能なハイエンドデバイスに手頃な価格を支払うことをいとわないでしょう。問題は、ARMがクローズドプラットフォームであることです。通常、SoC(システムオンチップ)のシリコン上にプライベートROMという名前のパーツがあります。再利用をブロックします。

ROMのこの部分は、シリアル上のZ-Modem、外部Nand、シリアルROM、SDCard、外部USBの順でブートローダーを選択します。すべてのデバイスについて、注文は個別であり、文書化が不十分です。通常、代替ローダーに分岐するために電源を入れるときは、いくつかのボタンを押したままにしてください。ほとんどの場合、プラットフォーム所有者のデジタル署名を確認した場合のブートローダーのイメージ。運がありません。

1回限りのプロジェクトでは、ランダムなデバイスを選択しても構いません。ただし、公開されている回路図やLinux、Androidなどで利用可能なソースコードを備えた、よく知られたデバイスにもっと興味があるかもしれません。

したがって、私の提案は、アクティブなユーザーのコミュニティに囲まれたデバイス見ることです:Raspberry Pi、BeagleBone、BeagleBoard、Samsung評価プラットフォーム(PandaBoard?)

TI AM35XXでの個人的な経験は、すべてが複雑であることに失望して終わりました。Angstromという世界最小のLinuxには3GBのディストリビューションイメージがあります。チップのドキュメントは4000〜5000ページです。それは趣味のように感じられず、楽しくありませんでした。

Intel Atom SoCが普及すると、状況が変わる可能性があります。私はユーザーの大きな関心を期待しており、画面で可能な限り小さなAtomの方向に群衆をフォローします。誰かがクレジットカードとGPIOのサイズのパネルマウント可能なピースを完成させることを願っています。楽しいですよ。


2
実際、TI AM35XXは素晴らしいです。このプラットフォームで最小のLinuxは3MB未満で十分です。私は個人的にこれら(およびAM33XX)をさまざまなことに使用しています。クロスコンパイルの手間を乗り越えれば、十分にサポートされ、十分に文書化されたハードウェアが手に入ります。はい、それは複雑であり、TRM(5000ページ)は巨大なレンガですが、子守asではなく参照文書を意味します(同様に役立つこともあります)
-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バイナリを実行できると思います。古いが非常に強力なPDAフォンの大部分を構成するバージョン6は非常にオープンです-ネイティブCコードを実行し、MSVCとGCCでコンパイルでき、ほとんどセキュリティがありません。通常のアプリとしてのブートローダー
。Linux

HTC Touch Proでこのことを何年も前に試したことがあるので、Linuxカーネル(またはカスタムAndroidビルド)にジャンプできることを保証できます。それは、すべてのハードウェアと話すことが同様に簡単または実行可能であると言うことではありません。(残念ながら、情熱を持ってWM6を嫌っていましたが、他のOSと同じレベルの機能を維持する方法はありませんでした)
Alexios

qdot、ストアから6/7のWindows Phoneを購入して、シリアルポートを介して5個のサーボを制御する独自のコードを実行させる方法について詳しく教えてください。
ハリースベンソン

1
@qdotは、リンクが単なる参照であるように、この情報の一部を持ち込むことができますが、現時点ではリンクが腐敗しやすくなっています。
-Kortuk

3

私はこれについての経験はありませんが、それが簡単だとは思いません(可能であれば)。C ++またはC#ではなく、ASM + Cでプログラミングすることを忘れることができると思います。特定のCPU向けに作られていないarduinoスケッチやPIC32コードなどには互換性がありません。多くの新しい携帯電話には、ARMコアのようなものがあります。

デバイスをどのようにプログラムするかはよくわかりませんが、サービスのためにファームウェアを送信すると通常はファームウェアを更新できるため、可能だと思います。

また、すべてのハードウェア(ディスプレイ、WLAN、センサーなど)に対して独自のドライバーをコーディングする必要がありますが、ハードウェアに関する追加情報がないと非常に難しくなります。 。

最も簡単な方法は、古いアンドロイドフォンのようなものだと思います。ドライバーとすべての低レベルのものを無料でソースコードを入手できるからです。ユーザーに見えるUIやその他のコンポーネントを取り除いたり使用したりできます。しかし、これはおそらく、古いAndroid搭載の携帯電話がいくつかあるのでない限り、あなたが望むものではありません。

また、他のOS、特にAndroidなどのオープンソースOSを実行するために電話が「ハッキング」されている場合、ポートのソースを取得して再生できる可能性があります。


フラッシュメモリからすべてを読み取り、そこからフラッシュメモリを読み取り/変更することはできませんか?
ハリースベンソン

@HarrySvenssonさて、メモリを直接変更するか、ファームウェアをアップグレードするためにある種のプログラミングポート/ヘッダーを使用する必要があります。可能ですが、簡単ではありません。
ヴァレサ

2
なぜランダムな下票ですか?
ヴァレサ

@HarrySvensson、すべてのフラッシュメモリをダンプするツールがあると仮定すると(安全なブートローダーなどの異なるものを含むいくつかのフラッシュチップがあり、そうでない場合は独自のツールが必要な場合があります)、すべてをデコードするのに快適です手で?すべてがサムドライブのようにコンピューターにマウントできる素敵なファイルシステム形式であるとは思わないでください。プロプライエタリで認識できないものや、プログラムコードが存在する可能性のある生のアセンブリコードだけを見ることができます。
ジョンL

2

すべてを自分で行うのは、せいぜい難しいでしょう。Rockboxプロジェクトでサポートされているデバイスの1つを使用すると、mp3プレーヤー用のオープンソースファームウェアがはるかに簡単になります。これらのデバイスのいくつかは安価であり、あなたが言及する多くの利点を提供し、USB経由でファームウェアをアップグレードするように設計されています。コンパイラー、ブートローダーなどに関する基本的な問題と、最初に使用するソースコードを既に把握しているアクティブなコミュニティの助けが必要です。

Rockboxの優れた機能は、デバイスをデュアルブートに設定することです。したがって、新しいファームウェアを使用していない場合でも、デバイスを元の目的に使用できます。


0

いや

この電話の公開ドキュメント(リンク先のページなど)には、プロセッサタイプのリストすらありません。たとえそれができたとしても、回路図(すべてのICの部品番号を含む)がコードを記述できるようにする必要があります。これはSony / Ericssonが所有権を持つため、取得することはできません)。他の携帯電話でも同じです。

まれに、プロセッサ、フラッシュメモリなどのすべてのドキュメントを入手した場合、数週間を費やしてからArduino互換のブートローダーを作成できる可能性があります。もちろん、これには電話の開発環境を取得する必要があり、数千ドルではないとしても数百ドルかかる可能性があります。

あなたはArduinoの互換性のブートローダを書き込むことができたとしても、それは次のようになり不可能繰り返し不可能 1)Arduinoのためのコンパイラが)Arduinoの互換マイクロコントローラ(ATMEGA、PIC32などのコードを放出しようとしているので、Arduinoのスケッチをアップロードして実行します、そして携帯電話は間違いなくそれらのいずれかを使用するつもりはありません-ほとんどの場合、それはARMの何らかのバリアントになるでしょう。および2)I / Oポートは、Arduinoと同じ携帯電話の同じ場所(ポート)に配置されません。

いくつかのオープンソースの携帯電話がありますが、上で引用したものと同じもの(プロセッサとハードウェアの非互換性)でArduinoソフトウェアを実行することはできません。他の回答のいくつかはAndroidを示唆していますが、プロプライエタリなドライバーのためにAndroidがオープンソース電話のリストに載っていないことに注意してください。そして再び質問は、それらに対してArduinoコードを実行できるかどうかであり、答えは間違いなくいいえです。

そのため、弾丸を噛んでArduinoボードと周辺機器を入手する方がはるかに安価です。


0

さまざまな「日常」のハードウェアをマイクロコントローラープラットフォームに変えるには何が必要ですか?SpriteのMODは素晴らしいインスピレーションの源です。デバイスを「開き」、それらを制御するために必要なプロセスの良い説明を提供します。TL; DR:LinuxはSDカードとハードドライブで実行できます。いいえ、ハードドライブを使用していません。上のハードドライブ-ドライブのコントローラでかなり強力なCPUに。


LinksysのWRT54Gルータは、 Linksysのは、ソースコードを公開する義務れたので、それがオープンソースのソフトウェアを使用するので、ハックする人気のデバイスでした。最終的には、イーサネットポートとWi-Fiが組み込まれた、Linuxを実行するカスタマイズ可能なプラットフォームになりました
。– tcrosley
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.