我周围有几部手机,其中一个是这个手机:http
:
//www.gsmarena.com/sony_ericsson_elm-3057.php
可以清除闪存并用引导程序替换,然后上传arduino草图或pic32草图(C#/ C ++)。
我有这个主意,因为它是用于开发硬件项目的非常便宜的平台。(与单独购买每个部件相比,您可以获得屏幕,按钮,音频I / O,互联网等,并且以非常便宜的价格获得所有产品。)
是否可以擦除闪存并将引导加载程序安装到电话中以用作嵌入式计算机?
我周围有几部手机,其中一个是这个手机:http
:
//www.gsmarena.com/sony_ericsson_elm-3057.php
可以清除闪存并用引导程序替换,然后上传arduino草图或pic32草图(C#/ C ++)。
我有这个主意,因为它是用于开发硬件项目的非常便宜的平台。(与单独购买每个部件相比,您可以获得屏幕,按钮,音频I / O,互联网等,并且以非常便宜的价格获得所有产品。)
是否可以擦除闪存并将引导加载程序安装到电话中以用作嵌入式计算机?
Answers:
成本从来都不是问题。许多发烧友将愿意为容易破解的高端设备支付适中的价格。问题在于ARM是一个封闭的平台。通常在SoC(片上系统)的硅片上有一个称为专用ROM的部分。它阻止了重用。
ROM的这部分负责按某种顺序选择引导加载程序:串行Z-Modem,外部Nand,串行ROM,SDCard,外部USB。对于每个设备,订单都是单独的且记录不充分,通常在电源以分支到备用加载器时应按住几个按钮。如果大多数时候检查平台所有者的数字签名,则为引导加载程序的映像。所以没有运气。
对于一个项目,可以选择随机设备。但是您可能会对知名设备更加感兴趣,包括已发布的原理图和适用于Linux,Android等的源代码。
因此,我的建议是看一下活跃用户社区包围的设备:Raspberry Pi,BeagleBone,BeagleBoard,某些三星评估平台(PandaBoard?)
我在TI AM35XX上的个人经历以对一切复杂性的失望而告终。世界上最小的名为Angstrom的Linux具有3GB分发映像。芯片的文档为4000-5000页。它感觉不像是一种爱好,也不愉快。
在Intel Atom SoC变得流行之后,情况可能会改变。我希望引起广大用户的关注,并将在屏幕尽可能小的Atom方向上跟随人群。希望有人能完成一张面板安装的,具有信用卡和GPIO大小的部件。应该会很好玩。
早在一个世纪前,就有一个项目要做类似的事情(对一个便宜且非常受欢迎的电话系列进行反向工程)。
http://nokix.pasjagsm.pl/help/blacksphere/sub_050main.htm
是的,Android选项可能是最简单的..或Windows Mobile,它也相当开放。
我对此没有经验,但是我认为这并不容易(即使可能的话)。我认为您可能会忘记使用C ++或C#而不是ASM + C对其进行编程。它与arduino草图或PIC32代码或任何不是特定于CPU的东西不兼容。许多新手机具有类似ARM内核的功能。
我真的不知道如何对设备进行编程,但是我认为这是可能的,因为如果您将固件发送给他们进行维修,他们通常可以更新固件。
此外,您还必须为所有硬件(显示器,WLAN,传感器等)编写自己的驱动程序,如果没有有关硬件的更多信息,这将非常困难,电话制造商可能不会向您发布这些信息。 。
我认为最简单的方法是使用旧的android手机,因为您可以免费获得带有驱动程序和所有低级内容的源代码。您可以撕开或使用用户可见的UI和其他组件。但这可能不是您想要的,除非您周围有一些旧的Android手机。
另外,如果手机被“黑客攻击”以运行任何其他操作系统,尤其是像android之类的开源操作系统,则您可能能够获取要使用的端口的源代码。
自己最多只能做到这一点。Rockbox项目支持的设备之一将使您的工作更加轻松,该设备是mp3播放器的开源固件。其中一些设备价格便宜,并具有您提到的许多优点,它们旨在通过USB升级固件。您将得到一个活跃社区的帮助,他们已经弄清楚了有关编译器,引导加载程序等的基本问题,以及一些开始的源代码。
Rockbox的一个不错的功能是将设备设置为双启动,因此当您不使用新固件时,它们仍可用于其原始用途。
没有。
该手机的公共文档(例如在您链接到的页面上)甚至没有列出处理器类型。即使这样做,您仍然需要原理图(包括所有IC的部件号)才能为其编写代码。这将是Sony / Ericsson专有的,因此您将无法获得它)。其他任何手机都一样。
在极少数情况下,您会获得处理器,闪存等的所有文档,可能需要花费数周的时间才能编写与Arduino兼容的Bootloader。当然,这将需要您获得手机的开发环境,这可能会花费数百甚至数千美元。
即使你能写的Arduino兼容的引导程序,这将是不可能重复不可能上传并因为:1)编译器的Arduino是去为一个Arduino兼容微控制器(的Atmega,PIC32等)进行发射的代码运行的Arduino草图,而且手机绝对不会使用其中的大部分-很有可能是ARM的某种变体);2)I / O端口不会与Arduino放在手机上的相同位置(端口)。
请注意,有一些开放源代码的手机,但是您将无法在与我上面引用的相同的那些软件上运行Arduino软件(处理器和硬件不兼容)。其他一些答案建议使用Android,但请注意,由于专有驱动程序,它不在开源电话列表中。再一次的问题是,您可以在这些代码上运行Arduino代码吗,答案是肯定的。
因此,它的方式便宜,只是硬着头皮,并得到一个Arduino板和外设。
如何将各种“日常”硬件转变为微控制器平台?Sprite的mod是灵感的绝佳来源。它很好地说明了“打开”设备并获得对它们的控制所需的过程。TL; DR:您可以在SD卡和硬盘驱动器上运行Linux。不,不使用硬盘驱动器。在硬盘驱动器上-在功能强大的CPU(即驱动器的控制器)上。