Mikrodenetleyici Olarak Cep Telefonu


19

Biri bu biri olmak etrafında döşeme birkaç cep telefonu var: http://www.gsmarena.com/sony_ericsson_elm-3057.php


Flash belleği temizlemek ve bir bootloader ile değiştirmek ve daha sonra arduino skeçler yüklemek mümkün veya pic32 çizimleri (C # / C ++).

Bu fikri anladım çünkü donanım projeleri geliştirmek için çok ucuz bir platform. (Sen almak bir ekran, düğmeler, ses I / O, internet, vb olsun her şeyi bir için çok ayrı ayrı her bir parçasını satın alarak almak için karşılaştırıldığında ucuz fiyata.)

Gömülü bilgisayar olarak kullanmak için flash belleği silmek ve bir önyükleyiciyi telefona takmak mümkün müdür?


3
Neden aşağı oy, bu mükemmel bir soru.
Rocketmagnet

Gerçekten temizlenmesi gerekiyor. (Aşağı oy vermedim, ancak sorulan soruyu gerçekten temizleyen bekleyen bir düzenleme
yapıyorum

MP3 çalarlarla benzer bir şey yapan Rockbox projesiyle ilgilenebilirsiniz. Buna dahil olan kişiler size özel donanım hakkında bilgi almanın ne kadar zor olduğunu söyleyebilir.
Jeanne Pindar

@CyberMen "Telefondaki flash belleği biçimlendirme ve yükleme nedir" ile ne demek istediğinizden emin değilim
varesa

@varesa bana sorma, OP'ye sor. Tümdengelim İngilizce becerilerinizi kullanın.
CyberMen

Yanıtlar:


1

Maliyet asla bir problem değildir. Birçok meraklı, kolayca hacklenebilen üst düzey cihazlar için makul bir fiyat ödemeye hazır olacaktır. Sorun ARM'nin kapalı bir platform olması. SoC silikonu (çip üzerindeki sistem) üzerinde tipik olarak özel ROM adı verilen bir parça vardır. Yeniden kullanımı engeller.

ROM'un bu kısmı bir önyükleyiciyi bir sıraya göre seçmekten sorumludur: Seri, harici Nand, seri ROM, SDCard, harici USB'de Z-Modem. Her cihaz için sipariş ayrı ayrı ve kötü bir şekilde belgelenmiştir, alternatif yükleyiciye dallamaya güç verirken genellikle birkaç düğmeyi basılı tutmalısınız. Çoğu zaman platform sahibinin dijital imzasını kontrol ederse bootloader görüntüsü. Yani şans yok.

Bir defalık proje için rastgele cihaz seçmek tamam. Ancak, yayınlanmış şemalar ve Linux, Android vb. İçin kullanılabilir kaynak kodu ile iyi bilinen cihazla daha fazla ilgileneceksiniz.

Benim önerim, aktif kullanıcı topluluklarıyla çevrili cihazlara bakmak : Raspberry Pi, BeagleBone, BeagleBoard, bazı Samsung değerlendirme platformu (PandaBoard?)

TI AM35XX ile kişisel deneyimim, her şeyin karmaşıklığı ile hayal kırıklığı ile sona erdi. Angstrom adlı dünyanın en küçük Linux'unun 3GB dağıtım görüntüsü var. Yongalar için dokümanlar 4000-5000 sayfadır. Çok bir hobi gibi hissetmedim ve eğlenceli değildi.

Intel Atom SoC popüler hale geldikten sonra durum değişebilir. Kullanıcıların büyük ilgi görmesini bekliyorum ve kalabalığı ekranla mümkün olan en küçük Atom yönünde takip edeceğim. Birisi kredi kartı ve GPIO boyutu ile bir panel monte edilebilir parça tamamlamak umuyoruz. Eğlenceli olacak.


2
Aslında, TI AM35XX harika - bu platformdaki en küçük Linux 3MB'ın altına sığıyor . Ben şahsen bunları (ve AM33XX) bir sürü şey için kullanıyorum, çapraz derleme zorluğundan geçtikten sonra, iyi desteklenen, iyi belgelenmiş bir donanım parçasına sahipsiniz. Evet, karmaşık ve TRM (5000 sayfa) büyük bir tuğla, ancak bir ninni olarak değil, referans bir belge olarak da (bu şekilde hizmet edebilirsiniz)
qdot

+1. Evet, TI ARM'nin bulabileceğinin en iyisi olduğunu kabul ediyorum. Sadece bir hobici olarak kişisel deneyimimi kastediyordum. ARM ile bir takımda güreşmek benim günlük işim olsaydı, çok daha eğlenceli olurdu.

Genel olarak, güçsüz bir makineden daha güçlü bir makineyle güreşirdim. Açıkça Arduino yok, ama linux, çekirdeği önyükledikten sonra, diğer crossdev platformlarından farklı değil. Bazı kullanıcı arazileri inşa edin (veya kendi
initinizi oluşturun

5

Yıllar önce benzer bir şey yapmak için bir proje vardı (ucuz ve çok popüler bir telefon ailesini tersine mühendislik).

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

Ve evet, Android seçeneği muhtemelen en kolay ... veya Windows Mobile, makul derecede açık.


Bekle, WP için düşük seviye şeyler de açık mı?
varesa

WP mi WM mi? Windows Phone, yani Sürüm 7 ve üstü, sınırlı deneyime sahip bir şeydir, ancak yine de yerel C ikili dosyalarını çalıştırabileceğini düşünüyorum. Eski ama son derece güçlü PDA telefonlarının büyük bir bölümünü oluşturan Sürüm 6, son derece açık - yerel C kodu çalıştırıyor, MSVC ve GCC ile derlenebilir, neredeyse hiç güvenliği yoktur .. tam anlamıyla bir düzenli bir uygulama olarak bootloader ve linux çekirdeğine atlar :)
qdot

Yıllar önce HTC Touch Pro'mla bu şeyi denedikten sonra, evet, bir Linux çekirdeğine (veya özel bir Android derlemesine) geçebilirsiniz. Bu, tüm donanımla konuşmanın eşit derecede kolay veya uygulanabilir olduğu anlamına gelmez. (ne yazık ki, WM6'dan bir tutkuyla nefret ettiğim için, ancak başka bir işletim sistemi ile aynı işlevselliği korumamın hiçbir yolu yoktu)
Alexios

qdot, neden bize 6/7 mağazadan satın aldığınız bir Windows telefonundan kendi kodumu çalıştırmamıza kadar yaklaşım hakkında daha fazla bilgi vermiyorsunuz, seri port üzerinden 5 servo diyelim.
Harry Svensson

1
@ qdot bu bilgilerin bir kısmını getirebilir, böylece bağlantı sadece bir referanstır, şu anda çürümeye açıktır.
Kortuk

3

Bu konuda hiçbir deneyimim yok, ama kolay olacağını düşünmüyorum (mümkünse bile). C ++ veya C # ve daha çok ASM + C'de programlamayı unutabileceğinizi düşünüyorum. Arduino skeçleri veya PIC32 kodu veya belirli CPU için yapılmayan herhangi bir şeyle uyumlu olmaz. Birçok yeni telefonun ARM çekirdeği gibi bir şeyi var.

Cihazı nasıl programlayacağınızı gerçekten bilmiyorum, ancak mümkün olduğunu düşünüyorum, çünkü servis için onlara gönderirseniz genellikle bellenimi güncelleyebilirler.

Ayrıca, telefon üreticisinin size bırakmayacağı donanım hakkında daha fazla bilgi olmadan gerçekten zor olacak tüm donanımlar (ekran, WLAN, sensörler vb.) İçin kendi sürücülerinizi kodlamanız gerekir. .

Sürücüler ve tüm düşük seviye şeyler ile kaynak kodunu ücretsiz olarak alabileceğiniz gibi, en kolay yol eski bir android telefon gibi bir şey olacağını düşünüyorum. Kullanıcı arayüzünü ve kullanıcı tarafından görülebilen diğer bileşenleri parçalayabilir veya kullanabilirsiniz. Ama etrafta eski bazı android telefonlar yoksa, bu muhtemelen istediğiniz şey değildir.

Ayrıca, telefon başka bir işletim sistemi, özellikle android gibi açık kaynaklı olanları çalıştırmak için "saldırıya uğradıysa", bağlantı noktasının oynaması için kaynaklara sahip olabilirsiniz.


Flash bellekteki her şeyi okumak ve flash belleği oradan okumak / değiştirmek mümkün olmaz mı?
Harry Svensson

@HarrySvensson Peki ya doğrudan belleği değiştirmeniz veya bellenimi yükseltmek için orada olabilecek bir tür programlama portu / başlığı kullanmanız gerekir. Mümkün ama kolay değil.
varesa

2
Neden rasgele aşağı oylama?
varesa

@HarrySvensson, tüm flash belleği boşaltmak için araçlara sahip olduğunuzu varsayarsak (güvenli önyükleyici gibi farklı şeyler içermek için birkaç flash çip olabilir ve bazıları, belki de özel araçlar gerektirebilir), hepsini çözmede rahat olur muydunuz? elle? Hepsinin bilgisayarınıza başparmak sürücüsü gibi monte edebileceğiniz güzel bir dosya sistemi formatında olmasını beklemeyin. Çok sayıda tescilli ve tanınmayan şeyler görebilir veya sadece bazı program kodlarının bulunduğu ham derleme kodunu boğabilirsiniz.
Jon L

2

Hepsini kendiniz yapmak en iyi ihtimalle zor olacaktır. Mp3 çalarlar için açık kaynaklı yazılım olan Rockbox projesinin desteklediği cihazlardan biriyle çok daha kolay zaman geçireceksiniz . Bu cihazlardan bazıları ucuzdur ve bahsettiğiniz avantajların birçoğunu sunar ve ürün yazılımları USB yoluyla yükseltilecek şekilde tasarlanmıştır. Derleyiciler, önyükleyiciler, vb. İle ilgili temel sorunları ve başlangıçta bazı kaynak kodlarını zaten çözmüş olan aktif bir topluluğun yardımına sahip olacaksınız.

Rockbox'ın güzel bir özelliği, cihazları çift önyüklemeye ayarlamasıdır, bu nedenle yeni bellenimi kullanmadığınızda orijinal amaçları için kullanılabilirler.


0

Hayır.

Bu telefonun genel belgeleri (bağlandığınız sayfa gibi) işlemci türünü bile listelemez. Olsa bile, kod yazabilmek için şemaya (tüm IC'lerin parça numaraları dahil) ihtiyacınız olacaktır. Bu Sony / Ericsson'a ait olacaktır, bu yüzden elde edemezsiniz). Diğer cep telefonları için aynı.

Olası bir durumda, işlemci, flash bellek vb. İçin tüm belgeleri aldınız, birkaç hafta geçirdikten sonra Arduino uyumlu bir önyükleyici yazmak mümkün olabilir. Tabii ki bu, telefonun geliştirme ortamını almanızı gerektirecektir, ki bu binlerce dolar olmasa bile yüzlerce mal olabilir.

Eğer bir Arduino uyumlu bootloader yazabilir olsa bile, öyle olurdu imkansız tekrar imkansız yükleyebilir ve Arduino için 1) derleyici bir Arduino uyumlu mikrodenetleyici vb (Atmega, PIC32) için kod yayan olacak çünkü Arduino skeçleri çalıştırmak için ve telefon kesinlikle bunlardan gitmeyecek - büyük olasılıkla ARM'nin bir çeşidi olacak); ve 2) G / Ç bağlantı noktaları, cep telefonunda Arduino'yla aynı konumlarda (bağlantı noktaları) bulunmayacaktır.

Bazı açık kaynaklı cep telefonları olduğunu unutmayın , ancak yukarıda belirttiğim gibi Arduino yazılımını çalıştıramayacaksınız (işlemci ve donanım uyumsuzluğu). Diğer cevaplardan bazıları Android'i önerdi, ancak tescilli sürücüler nedeniyle açık kaynaklı telefonlar listesinde olmadığını unutmayın. Ve bir kez daha soru, Arduino kodunu bunlarda çalıştırabileceğinizdi ve cevap kesinlikle hayır.

'S Yani yolu daha ucuz sadece mermi ısırmak ve Arduino kurulu ve çevre birimleri alır.


0

Çeşitli "günlük" donanımları mikrodenetleyici platformlarına dönüştürmek için ne gerekiyor? Sprite'ın modları mükemmel bir ilham kaynağıdır. Cihazları “açmak” ve kontrol etmek için gereken sürecin iyi bir açıklamasını verir . TL; DR: Linux'u bir SD kartta ve bir sabit diskte çalıştırabilirsiniz. Hayır, kullanan bir sabit disk. Açık sürücünün denetleyici olan oldukça güçlü CPU üzerinde - bir sabit sürücüye.


Linksys WRT54G yönlendirici Linksys kaynak kodunu serbest bırakmak için yükümlüydü yüzden açık kaynak yazılımlar kullanılmaktadır beri kesmek için popüler cihaz oldu. Ethernet bağlantı noktaları ve Wi-Fi yerleşik olarak Linux çalıştıran özelleştirilebilir bir platform ile sonuçlandınız.
tcrosley
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.