Điện thoại di động như vi điều khiển


19

Tôi có một vài điện thoại di động được đặt xung quanh, một trong số chúng là điện thoại này: http://www.gsmarena.com/sony_ericsson_elm-3057.php


Có thể xóa bộ nhớ flash và thay thế nó bằng bộ tải khởi động và sau đó tải lên bản phác thảo arduino hoặc phác thảo pic32 (C # / C ++).

Tôi có ý tưởng này vì nó là một nền tảng rất rẻ để phát triển các dự án phần cứng. (Bạn nhận được một màn hình, các nút, I / O âm thanh, internet, v.v., bạn nhận được mọi thứ với giá rất rẻ so với những gì bạn nhận được bằng cách mua riêng từng bộ phận.)

Có thể xóa bộ nhớ flash và cài đặt bộ tải khởi động vào điện thoại để sử dụng nó làm máy tính nhúng không?


3
Tại sao bỏ phiếu xuống, đây là một câu hỏi xuất sắc.
Rocketmagnet

Nó thực sự cần phải được làm sạch. (Tôi đã không bỏ phiếu, nhưng iIMade một bản chỉnh sửa đang chờ xử lý thực sự xóa câu hỏi đang được hỏi)
CyberMen

Bạn có thể quan tâm đến dự án Rockbox, công ty đã và đang làm một cái gì đó tương tự với máy nghe nhạc mp3. Những người liên quan trong đó có thể cho bạn biết việc lấy thông tin về phần cứng độc quyền là khó khăn như thế nào.
Jeanne Pindar

@CyberMen Tôi không chắc ý của bạn là gì với "Định dạng bộ nhớ flash trong điện thoại và cài đặt là gì"
varesa

@varesa đừng hỏi tôi, hãy hỏi OP. Sử dụng các kỹ năng tiếng Anh suy diễn của bạn.
CyberMen

Câu trả lời:


1

Chi phí không bao giờ là vấn đề. Nhiều người đam mê sẽ sẵn sàng trả giá vừa phải cho các thiết bị cao cấp dễ bị hack. Vấn đề là ARM là một nền tảng khép kín. Thông thường có một phần có tên ROM riêng trên silicon của SoC (hệ thống trên chip). Nó chặn việc tái sử dụng.

Phần ROM này chịu trách nhiệm chọn một bộ tải khởi động theo một số thứ tự: Modem Z trên nối tiếp, Nand ngoài, ROM nối tiếp, SDCard, USB ngoài. Đối với mỗi thiết bị, thứ tự là riêng lẻ và được ghi lại kém, bạn thường nên giữ một vài nút khi cấp nguồn cho nhánh vào bộ tải thay thế. Hình ảnh của bootloader nếu hầu hết thời gian kiểm tra chữ ký số của chủ sở hữu nền tảng. Vì vậy, không có may mắn.

Đối với một dự án tắt, bạn có thể chọn thiết bị ngẫu nhiên. Nhưng bạn có thể sẽ quan tâm nhiều hơn đến thiết bị nổi tiếng, với sơ đồ được công bố và mã nguồn có sẵn cho Linux, Android, v.v.

Vì vậy, đề xuất của tôi là xem xét các thiết bị được bao quanh bởi các cộng đồng người dùng đang hoạt động : Raspberry Pi, BeagleBone, BeagleBoard, một số nền tảng đánh giá của Samsung (PandaBoard?)

Trải nghiệm cá nhân của tôi với TI AM35XX đã kết thúc với sự thất vọng với sự phức tạp của mọi thứ. Linux nhỏ nhất trên thế giới có tên Angstrom có ​​hình ảnh phân phối 3GB. Các tài liệu cho chip là 4000-5000 trang. Nó không giống như một sở thích và không thú vị.

Tình hình có thể thay đổi sau khi Intel Atom SoC sẽ trở nên phổ biến. Tôi mong đợi sự quan tâm của người dùng lớn và sẽ theo dõi đám đông theo hướng nguyên tử nhỏ nhất có thể có màn hình. Hy vọng ai đó sẽ hoàn thành một phần có thể gắn bảng điều khiển với kích thước của thẻ tín dụng và GPIO. Nó sẽ rất vui.


2
Trên thực tế, TI AM35XX là tuyệt vời - Linux nhỏ nhất trên nền tảng này phù hợp với dưới 3 MB. Cá nhân tôi đang sử dụng những thứ này (và AM33XX) cho cả đống thứ, một khi bạn gặp rắc rối với việc biên dịch chéo, bạn có một phần cứng được hỗ trợ tốt, được ghi chép tốt. Vâng, nó phức tạp và TRM (5000 trang) là một viên gạch khổng lồ, nhưng nó có nghĩa là một tài liệu tham khảo, không phải là một bài hát ru (bạn cũng có thể phục vụ như vậy)
qdot

+1. Có, tôi đồng ý rằng TI ARM có thể tốt nhất có thể tìm thấy. Tôi chỉ có ý nghĩa kinh nghiệm cá nhân của tôi như là một người có sở thích. Nếu đó là công việc hàng ngày của tôi để vật lộn với ARM trong một đội, nó sẽ vui hơn nhiều.

Chà, nói chung là tôi đang vật lộn với một cỗ máy quá sức, hơn là một cỗ máy yếu thế. Rõ ràng không có Arduino, nhưng nó là linux, một khi bạn đã khởi động kernel trên nó, nó không khác gì bất kỳ nền tảng crossdev nào khác ngoài kia. Xây dựng một số vùng người dùng (hoặc xây dựng init của riêng bạn và chạy từ đó), và bạn đang ở nhà :)
qdot

5

Trước đây, có một dự án để làm một cái gì đó tương tự (kỹ thuật đảo ngược một gia đình điện thoại giá rẻ và rất phổ biến).

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

Và vâng, tùy chọn Android có lẽ là dễ nhất .. hoặc Windows Mobile, nó cũng mở một cách hợp lý.


Đợi đã, có phải thứ cấp thấp cho WP cũng mở không?
varesa

WP hay WM? Windows Phone, tức là Phiên bản 7 trở lên, là thứ tôi có kinh nghiệm hạn chế, nhưng tôi nghĩ nó vẫn có thể chạy nhị phân C gốc. Phiên bản 6, chiếm phần lớn điện thoại PDA cũ nhưng cực kỳ mạnh mẽ, cực kỳ mở - nó chạy mã C gốc, nó có thể được biên dịch cho MSVC và GCC, nó gần như không có bảo mật .. bạn thực sự có thể khởi chạy bootloader như một ứng dụng thông thường và nó nhảy vào kernel linux :)
qdot

Đã từng thử điều này từ rất lâu rồi với HTC Touch Pro của tôi, tôi có thể khẳng định rằng có, bạn có thể nhảy vào nhân Linux (hoặc bản dựng Android tùy chỉnh). Điều đó không có nghĩa là việc nói chuyện với tất cả các phần cứng đều dễ dàng hoặc khả thi như nhau. (đáng buồn thay, vì tôi ghét WM6 với niềm đam mê, nhưng không có cách nào tôi có thể giữ được mức chức năng tương tự với bất kỳ HĐH nào khác)
Alexios

qdot, tại sao bạn không cho chúng tôi biết thêm về cách tiếp cận từ việc mua điện thoại windows 6/7 từ cửa hàng đến việc nó chạy mã của riêng tôi, hãy kiểm tra 5 servo thông qua cổng nối tiếp.
Harry Svensson

1
@qdot bạn có thể mang một số thông tin này qua để liên kết chỉ là một tài liệu tham khảo, ngay bây giờ nó dễ bị thối liên kết.
Kortuk

3

Tôi không có kinh nghiệm về điều này, nhưng tôi không nghĩ nó sẽ dễ dàng (thậm chí nếu có thể). Tôi nghĩ rằng bạn có thể quên lập trình nó trong C ++ hoặc C #, và thay vào đó là ASM + C. Nó sẽ không tương thích với các bản phác thảo arduino hoặc mã PIC32 hoặc bất cứ thứ gì, không được tạo ra cho CPU cụ thể. Nhiều điện thoại mới có một cái gì đó giống như lõi ARM.

Tôi thực sự không biết bạn sẽ lập trình thiết bị như thế nào, nhưng tôi cho rằng điều đó là có thể, vì họ thường có thể cập nhật phần sụn nếu bạn gửi cho họ để phục vụ.

Ngoài ra, bạn sẽ phải mã hóa trình điều khiển của riêng mình cho tất cả các phần cứng (màn hình, mạng WLAN, cảm biến, v.v.), sẽ rất khó nếu không có thêm thông tin về phần cứng, mà nhà sản xuất điện thoại có thể sẽ không phát hành cho bạn .

Tôi nghĩ rằng cách dễ nhất sẽ là một cái gì đó giống như một chiếc điện thoại Android cũ, vì bạn có thể nhận được mã nguồn với trình điều khiển và tất cả những thứ cấp thấp miễn phí. Bạn có thể tách ra hoặc sử dụng UI và các thành phần khác hiển thị cho người dùng. Nhưng điều này có thể không phải là những gì bạn muốn, trừ khi bạn có một số điện thoại Android cũ nằm xung quanh.

Ngoài ra, nếu điện thoại đã bị "hack" để chạy bất kỳ HĐH nào khác, đặc biệt là các hệ điều hành nguồn mở như Android, bạn có thể có được các nguồn cho cổng để chơi.


Không thể đọc mọi thứ từ bộ nhớ flash và đọc / sửa đổi bộ nhớ flash từ đó?
Harry Svensson

@HarrySvensson Vâng, bạn sẽ phải sửa đổi bộ nhớ trực tiếp hoặc sử dụng một số loại cổng / tiêu đề lập trình thể có để nâng cấp chương trình cơ sở. Có thể, nhưng không dễ dàng.
varesa

2
Tại sao bỏ phiếu ngẫu nhiên?
varesa

@HarrySvensson, giả sử bạn có các công cụ để loại bỏ tất cả bộ nhớ flash (có thể có một số chip flash có chứa những thứ khác nhau như bộ tải khởi động an toàn và một số có thể không cần công cụ độc quyền), bạn có thể thoải mái giải mã tất cả của nó bằng tay? Đừng hy vọng tất cả đều ở định dạng hệ thống tệp đẹp mà bạn có thể chỉ cần gắn trên máy tính của mình như một ổ đĩa ngón tay cái. Bạn có thể thấy rất nhiều thứ độc quyền và không thể nhận ra hoặc chỉ là mã lắp ráp thô, nơi có thể có một số mã chương trình.
Jon L

2

Tự làm tất cả sẽ khó khăn nhất. Bạn sẽ có một thời gian dễ dàng hơn nhiều với một trong những thiết bị được hỗ trợ bởi dự án Rockbox , đây là phần mềm nguồn mở cho máy nghe nhạc mp3. Một số thiết bị này không đắt tiền và cung cấp nhiều ưu điểm mà bạn đề cập và chúng được thiết kế để nâng cấp chương trình cơ sở qua USB. Bạn sẽ có sự giúp đỡ của một cộng đồng tích cực, những người đã tìm ra các vấn đề cơ bản liên quan đến trình biên dịch, bộ tải khởi động, v.v. cũng như một số mã nguồn để bắt đầu.

Một tính năng hay của Rockbox là nó thiết lập các thiết bị để khởi động kép, vì vậy chúng vẫn có thể được sử dụng cho mục đích ban đầu của chúng khi bạn không sử dụng phần sụn mới.


0

Không.

Tài liệu công khai cho điện thoại này (chẳng hạn như trên trang bạn đã liên kết) thậm chí không liệt kê loại bộ xử lý. Ngay cả khi nó đã làm, bạn sẽ cần sơ đồ (bao gồm số phần của tất cả các IC) để có thể viết mã cho nó. Đó sẽ là độc quyền của Sony / Ericsson, vì vậy bạn sẽ không nhận được nó). Tương tự cho bất kỳ điện thoại di động khác.

Trong trường hợp không chắc bạn có tất cả tài liệu về bộ xử lý, bộ nhớ flash, v.v., có thể viết một bộ tải khởi động tương thích Arduino sau khi dành vài tuần thời gian của bạn. Tất nhiên, điều này sẽ yêu cầu bạn có được môi trường phát triển cho điện thoại, có thể sẽ tốn hàng trăm nếu không phải là hàng ngàn đô la.

Ngay cả khi bạn có thể viết một bộ tải khởi động tương thích Arduino, không thể lặp lại không thể tải lên và chạy các bản phác thảo Arduino vì 1) trình biên dịch cho Arduino sẽ phát mã cho một vi điều khiển tương thích Arduino (Atmega, PIC32, v.v.) và điện thoại chắc chắn sẽ không sử dụng hết những thứ đó - nhiều khả năng nó sẽ là một biến thể của ARM); và 2) các cổng I / O sẽ không được đặt tại cùng một vị trí (cổng) trên điện thoại di động như trên Arduino.

Lưu ý rằng có một số điện thoại di động nguồn mở , nhưng bạn sẽ không thể chạy phần mềm Arduino trên những phần mềm giống như tôi đã trích dẫn ở trên (không tương thích bộ xử lý và phần cứng). Một số câu trả lời khác đã đề xuất Android, nhưng lưu ý rằng nó không có trong danh sách các điện thoại nguồn mở vì trình điều khiển độc quyền. Và một lần nữa câu hỏi là bạn có thể chạy mã Arduino trên những cái đó không, và câu trả lời chắc chắn là không.

Vì vậy, nó cách rẻ hơn để chỉ cắn đạn và nhận được một bảng Arduino và thiết bị ngoại vi.


0

Làm gì để biến phần cứng "hàng ngày" khác nhau thành nền tảng vi điều khiển? Các mod của Sprite là một nguồn cảm hứng tuyệt vời. Nó đưa ra một lời giải thích tốt về quá trình cần thiết để "mở" các thiết bị và giành quyền kiểm soát chúng. TL; DR: Bạn có thể chạy Linux trên thẻ SD và trên ổ cứng. Không, không sử dụng ổ cứng. Trên ổ cứng - trên CPU khá mạnh là bộ điều khiển của ổ đĩa.


Bộ định tuyến Linksys WRT54G là một thiết bị phổ biến để hack, vì nó đã sử dụng phần mềm nguồn mở nên Linksys có nghĩa vụ phải phát hành mã nguồn. Bạn đã kết thúc với một nền tảng tùy biến chạy Linux, với các cổng Ethernet và Wi-Fi được tích hợp.
tcrosley
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.