โทรศัพท์มือถือเป็นไมโครคอนโทรลเลอร์


19

ฉันมีโทรศัพท์มือถือวางอยู่สองอันหนึ่งในนั้นคือโทรศัพท์นี้: http://www.gsmarena.com/sony_ericsson_elm-3057.php


เป็นไปได้ที่จะล้างหน่วยความจำแฟลชและแทนที่ด้วย bootloader แล้วอัปโหลดภาพร่าง arduino หรือ pic32 sketches (C # / C ++)

ฉันได้ความคิดนี้เพราะเป็นแพลตฟอร์มราคาถูกมากสำหรับการพัฒนาโครงการฮาร์ดแวร์ (คุณจะได้รับหน้าจอปุ่มเสียง I / O อินเทอร์เน็ต ฯลฯ คุณจะได้รับทุกสิ่งในราคาที่ถูกมากเมื่อเทียบกับสิ่งที่คุณได้รับจากการซื้อแต่ละส่วนแยกต่างหาก)

เป็นไปได้ไหมที่จะลบหน่วยความจำแฟลชและติดตั้งบูตโหลดเดอร์ลงในโทรศัพท์เพื่อใช้เป็นคอมพิวเตอร์ฝังตัว


3
ทำไมการลงคะแนนนี่เป็นคำถามที่ยอดเยี่ยม
Rocketmagnet

มันต้องได้รับการทำความสะอาด (ผมไม่ได้ลงคะแนนเสียง แต่ iIMade แก้ไขที่ค้างอยู่ที่จริงๆล้างเป็นคำถามที่ถาม)
เบอเมน

คุณอาจสนใจโครงการ Rockbox ซึ่งทำสิ่งที่คล้ายกับเครื่องเล่น MP3 ผู้ที่เกี่ยวข้องสามารถบอกคุณได้ว่าการรับข้อมูลฮาร์ดแวร์ที่เป็นกรรมสิทธิ์นั้นทำได้ยากเพียงใด
Jeanne Pindar

@CyberMen ผมไม่แน่ใจว่าสิ่งที่คุณหมายด้วย "อะไรคือการจัดรูปแบบหน่วยความจำแฟลชในโทรศัพท์และการติดตั้ง"
varesa

@ varesa ไม่ถามฉันถาม OP ใช้ทักษะการหักทอนภาษาอังกฤษของคุณ
Cyber ​​Men

คำตอบ:


1

ค่าใช้จ่ายไม่เคยมีปัญหา ผู้ที่ชื่นชอบหลายคนยินดีจ่ายราคาปานกลางสำหรับอุปกรณ์ระดับสูงที่แฮ็คได้อย่างง่ายดาย ปัญหาคือ ARM เป็นแพลตฟอร์มปิด โดยทั่วไปจะมีส่วนหนึ่งชื่อ ROM ส่วนตัวบนซิลิคอนของ SoC (ระบบบนชิป) มันบล็อกการใช้ซ้ำ

ROM ในส่วนนี้รับผิดชอบในการเลือก bootloader ตามลำดับ: Z-Modem สำหรับอนุกรม, Nand ภายนอก, ROM ภายนอก, SDCard, USB ภายนอก สำหรับอุปกรณ์ทุกชิ้นคำสั่งซื้อเป็นแบบส่วนบุคคลและมีการจัดทำเอกสารไม่ดีโดยทั่วไปคุณควรถือปุ่มไม่กี่ปุ่มเมื่อเปิดเครื่องเพื่อแยกสาขาลงในโหลดเดอร์สำรอง รูปภาพของ bootloader หากเวลาส่วนใหญ่ตรวจสอบลายเซ็นดิจิทัลของเจ้าของแพลตฟอร์ม ไม่มีโชคเลย

สำหรับโปรเจ็กต์หนึ่งปิดจะสามารถเลือกอุปกรณ์สุ่มได้ แต่คุณอาจจะสนใจอุปกรณ์ที่เป็นที่รู้จักมากขึ้นด้วยแผนงานที่เผยแพร่และซอร์สโค้ดที่มีอยู่สำหรับ Linux, Android เป็นต้น

ดังนั้นข้อเสนอแนะของฉันคือดูอุปกรณ์ที่ล้อมรอบด้วยชุมชนผู้ใช้ที่ใช้งานอยู่ : Raspberry Pi, BeagleBone, BeagleBoard, แพลตฟอร์มการประเมินของ Samsung (PandaBoard?)

ประสบการณ์ส่วนตัวของฉันกับ TI AM35XX จบลงด้วยความผิดหวังกับความซับซ้อนของทุกสิ่ง Linux ที่เล็กที่สุดในโลกที่ชื่ออังสตรอมมีอิมเมจการกระจาย 3GB เอกสารสำหรับชิปคือ 4,000-5,000 หน้า มันไม่ได้รู้สึกเหมือนงานอดิเรกมากและไม่สนุก

สถานการณ์อาจเปลี่ยนไปหลังจาก Intel Atom SoC จะเป็นที่นิยม ฉันคาดหวังความสนใจของผู้ใช้จำนวนมากและจะติดตามฝูงชนในทิศทางของ Atom ที่เล็กที่สุดเท่าที่เป็นไปได้กับหน้าจอ หวังว่าใครบางคนจะทำชิ้นส่วนที่ติดตั้งบนแผงให้สมบูรณ์ด้วยขนาดของบัตรเครดิตและ GPIO มันจะสนุก.


2
ที่จริง TI AM35XX เป็นที่น่ากลัว - ลินุกซ์ที่เล็กที่สุดบนแพลตฟอร์มนี้เหมาะสมเป็นอย่างดีภายใต้ 3MB ฉันเป็นการส่วนตัวที่ใช้สิ่งเหล่านี้ (และ AM33XX) สำหรับสิ่งต่างๆมากมายเมื่อคุณได้รับความยุ่งยากในการคอมไพล์ข้ามคุณจะได้รับการสนับสนุนเป็นอย่างดีชิ้นส่วนของฮาร์ดแวร์ที่ได้รับการบันทึกไว้อย่างดี ใช่มันมีความซับซ้อนและ TRM (5,000 หน้า) เป็นอิฐขนาดใหญ่ แต่มันมีความหมายเป็นเอกสารอ้างอิงไม่ใช่เพลงกล่อมเด็ก (เจ้าสามารถทำหน้าที่เช่นนี้ได้)
qdot

+1 ใช่ฉันเห็นด้วยว่า TI ARM น่าจะเป็นสิ่งที่ดีที่สุด ฉันหมายถึงเฉพาะประสบการณ์ส่วนตัวของฉันในฐานะนักอดิเรก ถ้ามันเป็นงานประจำวันของฉันที่จะต่อสู้กับ ARM ในทีมมันคงจะสนุกมากขึ้น

ฉันจะต่อสู้กับเครื่องจักรที่มีกำลังสู้มากกว่าโดยทั่วไปแล้ว เห็นได้ชัดว่าไม่มี Arduino แต่มันคือลินุกซ์เมื่อคุณได้รับการบูทเคอร์เนลบนมันก็ไม่ต่างจากแพลตฟอร์ม crossdev อื่น ๆ สร้าง userland บางคน (หรือสร้าง init ของคุณเองและเรียกใช้จากที่นั่น) และคุณบ้านกำลัง :)
Qdot

5

สมัยก่อนมีโครงการทำสิ่งที่คล้ายกัน (วิศวกรรมย้อนกลับตระกูลโทรศัพท์ราคาถูกและเป็นที่นิยมมาก)

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

และใช่ตัวเลือก Android น่าจะง่ายที่สุด .. หรือ Windows Mobile มันก็เปิดได้ดีพอสมควรเช่นกัน


เดี๋ยวก่อนสิ่งที่อยู่ในระดับต่ำสำหรับ WP เปิดด้วยหรือไม่
varesa

WP หรือ WM Windows Phone เช่นเวอร์ชัน 7 ขึ้นไปเป็นสิ่งที่ฉันมีประสบการณ์ จำกัด แต่ฉันคิดว่ามันยังคงสามารถรันไบนารี C ดั้งเดิมได้ เวอร์ชัน 6 ซึ่งประกอบขึ้นเป็นโทรศัพท์ PDA รุ่นเก่า แต่ทรงพลังมากเปิดได้อย่างยิ่ง - รันโค้ด C ดั้งเดิมสามารถคอมไพล์ด้วย MSVC และ GCC ได้แทบไม่มีความปลอดภัย .. คุณสามารถเปิดตัว bootloader เป็นแอปทั่วไปและข้ามไปยังเคอร์เนล linux :)
qdot

ต้องลองสิ่งนี้ทุกเพศทุกวัยที่ผ่านมาด้วย HTC Touch Pro ของฉันฉันสามารถรับรองว่าใช่คุณสามารถกระโดดเข้าไปในเคอร์เนลลินุกซ์ (หรือสร้าง Android ที่กำหนดเอง) ไม่ได้หมายความว่าการพูดคุยกับฮาร์ดแวร์ทั้งหมดนั้นง่ายพอ ๆ กันหรือเป็นไปได้ (เศร้าที่ผมเกลียด WM6 กับความรัก แต่ไม่มีทางที่ฉันจะรักษาระดับเดียวกันของการทำงานกับระบบปฏิบัติการอื่น ๆ )
Alexios

ขั้นตอนทำไมคุณไม่บอกเราเพิ่มเติมเกี่ยวกับวิธีการมีโทรศัพท์ windows 6/7 ซื้อจากร้านค้าเพื่อให้มันเรียกใช้การควบคุมรหัสของฉันเองสมมติว่า 5 เซอร์โวผ่านพอร์ตอนุกรม
Harry Svensson

1
@qdot คุณสามารถนำข้อมูลบางส่วนนี้มาใช้เพื่อให้ลิงก์เป็นเพียงข้อมูลอ้างอิงในตอนนี้การรับรู้การเชื่อมโยงเน่า
Kortuk

3

ฉันไม่มีประสบการณ์เกี่ยวกับเรื่องนี้ แต่ฉันไม่คิดว่ามันจะง่าย (ถ้าเป็นไปได้) ฉันคิดว่าคุณสามารถลืมการเขียนโปรแกรมใน C ++ หรือ C # และใน ASM + C มันจะเข้ากันไม่ได้กับ arduino sketches หรือ PIC32 code หรืออะไรก็ตามที่ไม่ได้ทำสำหรับ CPU ที่เฉพาะเจาะจง โทรศัพท์รุ่นใหม่หลายรุ่นมีแกน ARM

ฉันไม่รู้จริงๆว่าคุณจะตั้งโปรแกรมอุปกรณ์อย่างไร แต่ฉันคิดว่ามันเป็นไปได้เนื่องจากพวกเขาสามารถอัปเดตเฟิร์มแวร์ได้ถ้าคุณส่งมันไปให้บริการ

นอกจากนี้คุณจะต้องเขียนรหัสไดรเวอร์ของคุณเองสำหรับฮาร์ดแวร์ทั้งหมด (จอแสดงผล, WLAN, เซ็นเซอร์, ฯลฯ ... ) ซึ่งจะยากมากหากไม่มีข้อมูลเพิ่มเติมเกี่ยวกับฮาร์ดแวร์ซึ่งผู้ผลิตโทรศัพท์จะไม่ปล่อยคุณ .

ฉันคิดว่าวิธีที่ง่ายที่สุดน่าจะเป็นโทรศัพท์ Android รุ่นเก่าที่คุณสามารถรับซอร์สโค้ดพร้อมไดรเวอร์และอุปกรณ์ระดับต่ำได้ฟรี คุณสามารถลอกออกหรือใช้ UI และส่วนประกอบอื่น ๆ ที่ผู้ใช้มองเห็นได้ แต่นี่ไม่ใช่สิ่งที่คุณต้องการเว้นแต่คุณจะมีโทรศัพท์ Android รุ่นเก่าวางอยู่

นอกจากนี้หากโทรศัพท์ถูก "แฮ็ค" เพื่อเรียกใช้ระบบปฏิบัติการอื่น ๆ โดยเฉพาะอย่างยิ่งโอเพนซอร์สเช่น Android คุณอาจได้รับแหล่งข้อมูลสำหรับพอร์ตที่จะเล่นด้วย


เป็นไปไม่ได้ไหมที่จะอ่านทุกอย่างจากหน่วยความจำแฟลชและอ่าน / แก้ไขหน่วยความจำแฟลชจากที่นั่น?
Harry Svensson

@HarrySvensson คุณจะต้องแก้ไขหน่วยความจำโดยตรงหรือใช้พอร์ตการเขียนโปรแกรม / ส่วนหัวซึ่งอาจจะมีการอัพเกรดเฟิร์มแวร์ เป็นไปได้ แต่ไม่ใช่เรื่องง่าย
varesa

2
ทำไมการลงคะแนนแบบสุ่ม?
varesa

@HarrySvensson สมมติว่าคุณมีเครื่องมือในการถ่ายโอนข้อมูลหน่วยความจำแฟลชทั้งหมด (อาจมีชิปแฟลชหลายตัวที่มีสิ่งต่าง ๆ เช่นบู๊ตตักที่ปลอดภัยและสิ่งที่ไม่ต้องการเครื่องมือที่เป็นกรรมสิทธิ์บางอย่าง) คุณจะสบายใจในการถอดรหัสทั้งหมด ของมันด้วยมือ? อย่าคาดหวังว่ามันจะอยู่ในรูปแบบของระบบไฟล์ที่ดีที่คุณสามารถเมานต์บนคอมพิวเตอร์ของคุณอย่างไดรฟ์หัวแม่มือ คุณสามารถเห็นสิ่งที่เป็นกรรมสิทธิ์และไม่สามารถจดจำได้มากมายหรือเพียงแค่รหัสแอสเซมบลีดิบที่แคบซึ่งอาจมีรหัสโปรแกรมบางส่วน
Jon L

2

การทำทุกอย่างด้วยตัวเองจะเป็นการยากที่สุด คุณจะมีเวลาได้ง่ายขึ้นด้วยหนึ่งในอุปกรณ์ที่สนับสนุนโดยโครงการRockboxซึ่งเป็นเฟิร์มแวร์โอเพ่นซอร์สสำหรับเครื่องเล่น mp3 อุปกรณ์เหล่านี้บางอย่างมีราคาไม่แพงและมีข้อดีมากมายที่คุณพูดถึงและได้รับการออกแบบมาเพื่ออัพเกรดเฟิร์มแวร์ผ่าน USB คุณจะได้รับความช่วยเหลือจากชุมชนที่ใช้งานอยู่ซึ่งได้ทราบปัญหาพื้นฐานเกี่ยวกับคอมไพเลอร์บูตโหลดเดอร์และอื่น ๆ รวมถึงซอร์สโค้ดเริ่มต้นด้วย

คุณสมบัติที่ดีของ Rockbox คือมันตั้งค่าอุปกรณ์ให้เป็นแบบ dual boot ดังนั้นจึงสามารถใช้งานได้ตามวัตถุประสงค์ดั้งเดิมเมื่อคุณไม่ได้ใช้เฟิร์มแวร์ใหม่


0

เลขที่

เอกสารสาธารณะสำหรับโทรศัพท์นี้ (เช่นในหน้าเว็บที่คุณเชื่อมโยงถึง) ไม่ได้แสดงรายการประเภทโปรเซสเซอร์ แม้ว่าจะเป็นเช่นนั้นคุณจะต้องมีแผนผัง (รวมถึงหมายเลขชิ้นส่วนของไอซีทั้งหมด) เพื่อให้สามารถเขียนโค้ดได้ นั่นจะเป็นกรรมสิทธิ์ของ Sony / Ericsson ดังนั้นคุณจะไม่ได้รับมัน) เหมือนกันสำหรับโทรศัพท์มือถืออื่น ๆ

ในกรณีที่ไม่น่าเป็นไปได้ที่คุณได้รับเอกสารทั้งหมดสำหรับตัวประมวลผลหน่วยความจำแฟลช ฯลฯ อาจเป็นไปได้ที่จะเขียน bootloader ที่เข้ากันได้กับ Arduino หลังจากใช้เวลาหลายสัปดาห์ ของหลักสูตรนี้จะต้องให้คุณได้รับสภาพแวดล้อมการพัฒนาสำหรับโทรศัพท์ซึ่งอาจมีค่าใช้จ่ายหลายร้อยหากไม่นับพันดอลลาร์

แม้ว่าคุณจะมีความสามารถในการเขียน bootloader Arduino เข้ากันได้ก็จะเป็นไปไม่ได้ซ้ำไปไม่ได้ที่จะอัปโหลดและเรียกใช้สเก็ตช์ Arduino เพราะ 1) คอมไพเลอร์สำหรับ Arduino เป็นไปได้เปล่งสำหรับไมโครคอนโทรลเลอร์ Arduino เข้ากันได้ (ATMEGA, PIC32 ฯลฯ ) และโทรศัพท์จะไม่ถูกใช้ไปอย่างแน่นอน - ส่วนใหญ่มีแนวโน้มว่ามันจะแตกต่างจาก ARM) และ 2) พอร์ต I / O จะไม่อยู่ในตำแหน่งเดียวกัน (พอร์ต) บนโทรศัพท์มือถือเหมือนกับที่อยู่บน Arduino

โปรดทราบว่ามีโทรศัพท์โอเพนซอร์ซบางรุ่นแต่คุณจะไม่สามารถเรียกใช้ซอฟต์แวร์ Arduino สำหรับโทรศัพท์แบบเดียวกับที่ฉันอ้างถึงข้างต้นได้ (ตัวประมวลผลและฮาร์ดแวร์เข้ากันไม่ได้) คำตอบอื่น ๆ บางคำแนะนำ Android แต่สังเกตว่ามันไม่ได้อยู่ในรายชื่อของโทรศัพท์โอเพ่นซอร์สเพราะไดรเวอร์ที่เป็นกรรมสิทธิ์ และอีกครั้งคำถามก็คือคุณสามารถเรียกใช้รหัส Arduino บนเหล่านั้นและคำตอบคือไม่แน่นอน

ดังนั้นวิธีที่ถูกกว่าเพียงแค่กัดกระสุนและรับบอร์ด Arduino และอุปกรณ์ต่อพ่วง


0

การเปลี่ยนฮาร์ดแวร์ "ทุกวัน" ให้กลายเป็นแพลตฟอร์มไมโครคอนโทรลเลอร์เป็นอย่างไร สไปรท์ modsเป็นแหล่งของแรงบันดาลใจที่ยอดเยี่ยม มันให้คำอธิบายที่ดีเกี่ยวกับกระบวนการที่จำเป็นในการ "เปิด" อุปกรณ์และควบคุมมัน TL; DR: คุณสามารถรัน Linux บนการ์ด SD และบนฮาร์ดไดรฟ์ ไม่ไม่ใช้ฮาร์ดไดรฟ์ บนฮาร์ดไดรฟ์ - บน CPU ที่ทรงพลังพอสมควรซึ่งเป็นคอนโทรลเลอร์ของไดรฟ์


เราเตอร์ Linksys WRT54Gเป็นอุปกรณ์ที่นิยมที่จะตัดเพราะมันใช้ซอฟต์แวร์โอเพ่นซอร์สเพื่อ Linksys มีภาระผูกพันที่จะปล่อยรหัสที่มา คุณลงเอยด้วยแพลตฟอร์มที่ปรับแต่งได้ซึ่งใช้ Linux พร้อมด้วยพอร์ต Ethernet และ Wi-Fi ในตัว
tcrosley
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.