마이크로 컨트롤러로서의 휴대 전화


19

나는 휴대폰의 부부가 그 중 하나는이 하나되고, 주위에 누워 있습니다 http://www.gsmarena.com/sony_ericsson_elm-3057.php는


아두 이노 스케치를 업로드 한 후 플래시 메모리를 삭제하고 부트 로더로 교체하고 가능 또는 pic32 스케치 (C # / C ++).

하드웨어 프로젝트 개발을위한 매우 저렴한 플랫폼이기 때문에이 아이디어를 얻었습니다. (당신은 당신이 얻을 화면, 버튼, 오디오 I / O, 인터넷 등을 얻을 수 있는 모든 A에 대한 매우 별도로 각 부분을 구입하여 무엇을 얻을에 비해 싼 가격입니다.)

플래시 메모리를 지우고 부트 로더를 전화기에 설치하여 내장 컴퓨터로 사용할 수 있습니까?


3
왜 다운 투표를했는지, 이것은 훌륭한 질문입니다.
Rocketmagnet

실제로 청소해야합니다. (나는 투표를하지 않았지만, 요청 된 질문을 실제로 해결하는 보류중인 편집을 iIMade로 진행)
CyberMen

mp3 플레이어와 비슷한 작업을 수행 한 Rockbox 프로젝트에 관심이있을 수 있습니다. 여기에 관련된 사람들은 독점 하드웨어에 대한 정보를 얻는 것이 얼마나 어려운지를 알려줄 수 있습니다.
Jeanne Pindar 2016 년

@CyberMen "휴대 전화에서 플래시 메모리를 포맷하고 설치하는 것이 무엇입니까?"
varesa

@varesa는 나에게 묻지 말고 OP에게 물어보십시오. 연역적 인 영어 능력을 사용하십시오.
CyberMen

답변:


1

비용은 결코 문제가되지 않습니다. 많은 애호가들은 쉽게 해킹 가능한 고급 장치를 위해 적당한 가격을 기꺼이 지불 할 것입니다. 문제는 ARM이 닫힌 플랫폼이라는 것입니다. SoC의 실리콘 (시스템 온 칩)에는 일반적으로 전용 ROM이라는 부품이 있습니다. 재사용을 차단합니다.

ROM의이 부분은 직렬, 외부 Nand, 직렬 ROM, SDCard, 외부 USB의 Z 모뎀과 같은 순서로 부트 로더를 선택합니다. 모든 장치에 대해 주문은 개별적이고 잘못 문서화되어 있으므로 대체 로더로 분기 할 때 일반적으로 몇 개의 버튼을 누르고 있어야합니다. 플랫폼 소유자의 디지털 서명을 대부분 확인한 경우 부트 로더의 이미지입니다. 행운이 없습니다.

일회성 프로젝트의 경우 임의의 장치를 선택하는 것이 좋습니다. 그러나 Linux, Android 등의 공개 회로도 및 사용 가능한 소스 코드를 통해 잘 알려진 장치에 더 관심이있을 것입니다.

그래서 내 제안은 활성 사용자 커뮤니티에 둘러싸인 장치살펴 보는 것입니다 : Raspberry Pi, BeagleBone, BeagleBoard, 일부 삼성 평가 플랫폼 (PandaBoard?)

TI AM35XX에 대한 나의 개인적인 경험은 모든 것의 복잡성에 대한 실망으로 끝났습니다. Angstrom이라는 세계에서 가장 작은 Linux에는 3GB 배포 이미지가 있습니다. 칩의 문서는 4000-5000 페이지입니다. 그것은 취미처럼 느끼지 않았고 즐거웠습니다.

인텔 아톰 SoC가 인기를 얻은 후 상황이 바뀔 수 있습니다. 나는 많은 사용자의 관심을 기대하고 가능한 가장 작은 Atom의 방향으로 군중을 따라갈 것입니다. 누군가가 신용 카드 크기와 GPIO로 패널 장착 가능 부품을 완성하기를 바랍니다. 재미있을 것.


2
실제로 TI AM35XX는 대단 합니다.이 플랫폼에서 가장 작은 Linux는 3MB 미만입니다. 나는 개인적으로 이것들 (그리고 AM33XX)을 많은 것들에 사용하고 있습니다. 혼잡 한 컴파일 과정을 거친 후에는 잘 지원되고 잘 문서화 된 하드웨어를 가지고 있습니다. 그렇습니다. 복잡하고 TRM (5000 페이지)은 거대한 벽돌이지만 자장가가 아닌 참조 문서로 사용됩니다 (
그렇게도

+1. 예, TI ARM이 가장 적합하다는 데 동의합니다. 나는 취미 생활의 개인적인 경험만을 의미했습니다. 팀에서 ARM과 씨름하는 것이 나의 일이라면 훨씬 더 재미있을 것입니다.

글쎄, 나는 일반적으로 저전력 기계보다 저전력 기계와 씨름했다. 분명히 Arduino는 아니지만 Linux입니다. 커널 부팅을 한 후에는 다른 crossdev 플랫폼과 다르지 않습니다. 일부 사용자 영역을 빌드하거나 자신의 init을 빌드하고 거기에서 실행하십시오.)
qdot

5

오래 전에 비슷한 것을 수행하는 프로젝트가있었습니다 (가장 인기있는 전화 제품군의 리버스 엔지니어링).

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

그리고 네, 안드로이드 옵션이 아마도 가장 쉬운 방법 일 것입니다. 또는 Windows Mobile, 그것은 또한 상당히 개방적입니다.


잠깐, WP의 하위 수준도 열려 있습니까?
varesa 2016 년

WP 또는 WM? Windows Phone, 즉 버전 7 이상은 경험이 제한적이지만 여전히 네이티브 C 바이너리를 실행할 수 있다고 생각합니다. 구식이지만 강력한 PDA 폰의 대부분을 구성하는 버전 6은 매우 개방적입니다. 네이티브 C 코드를 실행하며 MSVC 및 GCC로 컴파일 할 수 있으며 거의 ​​보안이 없습니다. 문자 그대로 일반 응용 프로그램으로 부트 로더, 그리고 리눅스 커널로 이동 :)
qdot

HTC Touch Pro로 오래 전에 이것을 시도해 보았습니다. 그렇다고 보증 할 수 있습니다. 리눅스 커널 (또는 사용자 정의 Android 빌드)로 이동할 수 있습니다. 모든 하드웨어와 대화하는 것이 똑같이 쉽고 실현 가능하다는 것은 아닙니다. (슬프게도 열정으로 WM6를 싫어했지만 다른 OS와 동일한 수준의 기능을 유지할 수있는 방법은 없었습니다)
Alexios

qdot, 상점에서 Windows Phone 6/7을 구입하는 것부터 직렬 포트를 통해 5 개의 서보를 제어하는 ​​자체 코드를 실행하는 방법에 대한 자세한 정보를 알려주십시오.
Harry Svensson 2016 년

1
@qdot이 정보 중 일부를 가져 와서 링크가 참조 일뿐이므로 지금은 썩을 수 있습니다.
Kortuk

3

나는 이것에 대한 경험이 없지만 쉽지 않다고 생각합니다 (가능한 경우). C ++ 또는 C #, 오히려 ASM + C로 프로그래밍하는 것을 잊을 수 있다고 생각합니다. arduino 스케치 또는 PIC32 코드 또는 특정 CPU에 적합하지 않은 것과 호환되지 않을 것입니다. 많은 새로운 전화기에는 ARM 코어와 같은 것이 있습니다.

나는 당신이 어떻게 장치를 프로그램 할 것인지 잘 모르겠지만, 서비스를 위해 펌웨어를 보내면 일반적으로 펌웨어를 업데이트 할 수 있기 때문에 가능하다고 가정합니다.

또한 모든 하드웨어 (디스플레이, WLAN, 센서 등)에 대해 고유 한 드라이버를 코딩해야합니다. 하드웨어에 대한 추가 정보가 없으면 전화 제조업체에서 제공하지 않을 하드웨어에 대한 추가 정보가 없으면 매우 어렵습니다. .

가장 쉬운 방법은 오래된 안드로이드 폰과 같은 것이라고 생각합니다. 드라이버가있는 소스 코드와 모든 저수준 항목을 무료로 얻을 수 있기 때문입니다. 사용자가 볼 수있는 UI 및 기타 구성 요소를 제거하거나 사용할 수 있습니다. 그러나 오래된 안드로이드 폰을 가지고 있지 않는 한 이것이 적절하게 원하는 것은 아닙니다.

또한 전화가 다른 OS, 특히 안드로이드와 같은 오픈 소스 운영 체제를 실행하기 위해 "해킹"된 경우 포트의 소스를 얻을 수 있습니다.


플래시 메모리에서 모든 것을 읽고 플래시 메모리를 읽거나 수정할 수 없습니까?
Harry Svensson

@HarrySvensson 글쎄, 메모리를 직접 수정하거나 펌웨어 업그레이드를 위해 있을 수 있는 프로그래밍 포트 / 헤더를 사용해야 할 것입니다 . 가능하지만 쉽지는 않습니다.
varesa 2016 년

2
왜 랜덤 다운 투표?
varesa 2016 년

@HarrySvensson, 모든 플래시 메모리를 덤프하는 도구가 있다고 가정하면 (보안 부트 로더와는 다른 것을 포함하기 위해 여러 플래시 칩이있을 수 있으며 독점 ​​도구가 필요하지 않은 플래시 칩이있을 수 있음) 모든 것을 해독하는 것이 편안합니까? 손으로? 엄지 드라이브처럼 컴퓨터에 마운트 할 수있는 멋진 파일 시스템 형식 일 필요는 없습니다. 프로그램 코드가있을 수있는 독점적이고 인식 할 수없는 많은 것들을 보거나 해협 원시 어셈블리 코드를 볼 수 있습니다.
Jon L

2

모든 일을 스스로하는 것은 기껏해야 어려울 것입니다. mp3 플레이어를위한 오픈 소스 펌웨어 인 Rockbox 프로젝트에서 지원하는 장치 중 하나를 사용하면 훨씬 쉽게 시간을 보낼 수 있습니다 . 이러한 장치 중 일부는 저렴하고 언급 한 많은 이점을 제공하며 USB를 통해 펌웨어를 업그레이드하도록 설계되었습니다. 컴파일러, 부트 로더 등의 기본 문제는 물론 시작해야 할 소스 코드를 이미 파악한 활발한 커뮤니티의 도움을받을 수 있습니다.

Rockbox의 멋진 기능은 장치를 이중 부팅으로 설정하여 새 펌웨어를 사용하지 않을 때 원래 목적으로 계속 사용할 수 있다는 것입니다.


0

아니.

이 전화의 공개 문서 (예 : 링크 한 페이지)에는 프로세서 유형이 나열되어 있지 않습니다. 그렇게해도 코드를 작성할 수 있으려면 회로도 (모든 IC의 부품 번호 포함)가 필요합니다. 그것은 소니 / 에릭슨의 독점 일 것이므로 얻을 수는 없습니다). 다른 휴대 전화에서도 마찬가지입니다.

드물게 프로세서, 플래시 메모리 등에 대한 모든 문서를 얻었을 경우 몇 주 동안 시간을 ​​보낸 후 Arduino 호환 부트 로더를 작성할 수 있습니다. 물론이를 위해서는 전화 개발 환경을 갖추어야합니다. 수천 달러가 아니라도 수백 달러가 소요될 것입니다.

Arduino 호환 부트 로더를 작성할 수 있어도 1) Arduino 용 컴파일러가 Arduino 호환 마이크로 컨트롤러 (Atmega, PIC32 등) 용 코드를 생성 할 예정이므로 Arduino 스케치를 업로드하고 실행 하는 것이 반복적으로 불가능 합니다. 그리고 전화는 분명히 그것들을 사용하지 않을 것입니다. 대부분 ARM의 변형 일 것입니다. 2) I / O 포트는 휴대폰의 Arduino와 동일한 위치 (포트)에 있지 않습니다.

참고가 몇 가지 오픈 소스 휴대 전화 ,하지만 당신은 내가 (프로세서 및 하드웨어 호환성) 위의 인용과 동일한에 대한 사람들의 수를 실행 아두 이노 소프트웨어 될 수 없습니다. 다른 답변 중 일부는 Android를 제안했지만 독점 드라이버로 인해 공개 소스 전화 목록에 포함되어 있지 않습니다. 그리고 다시 한 번 문제는 Arduino 코드를 실행할 수 있다는 것입니다.

총알을 물고 Arduino 보드와 주변 장치를 얻는 것이 훨씬 저렴합니다.


0

다양한 "매일"하드웨어를 마이크로 컨트롤러 플랫폼으로 전환하려면 무엇이 필요합니까? 스프라이트의 모드 는 훌륭한 영감의 원천입니다. 장치를 "열어"제어하는 데 필요한 프로세스에 대한 적절한 설명을 제공 합니다. TL; DR : SD 카드 및 하드 드라이브에서 Linux를 실행할 수 있습니다. 아니요, 하드 드라이브를 사용 하지 않습니다 . 드라이브의 컨트롤러 상당히 강력한 CPU에 - 하드 드라이브.


링크시스 WRT54G 라우터는 링크시스가 소스 코드를 공개 할 의무가 그래서는 오픈 소스 소프트웨어를 사용하기 때문에, 해킹 인기있는 장치였다. 이더넷 포트와 Wi-Fi가 내장 된 Linux를 실행하는 사용자 정의 가능한 플랫폼이 완성되었습니다.
tcrosley
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.