как перенести Linux на устройство WindowsCE - PullRequest
2 голосов
/ 07 апреля 2011

Существует навигационное устройство , которое имеет очень интересные характеристики по интересной цене.Проблема в том, что он работает только Windows CE , в то время как нам абсолютно необходима операционная система Linux для проекта.

Нам сложно найти сопоставимое устройство (ПК с сенсорным экраном с GPS и GPRS и расширенный температурный диапазон по разумной цене), поэтому в настоящее время я изучаювозможность портировать Linux на это устройство.

Хотя у меня есть некоторый опыт работы с различными встроенными устройствами Linux (AXIS ETRAX / CRIS, Trimble Nomad, FOX G20, MOXA, устройства PC / 104, ...)никогда не приводил Linux на устройство, на котором раньше никогда не было.Тем не менее, кросс-компиляция всей системы Linux не нова для меня.

Я думаю, самой большой проблемой была бы замена Windows CE вообще.

Устройство имеет процессор 400 МГц ARM 926EJ с 2 ГБ флэш-памяти, 64 МБ ОЗУ, слот SD и порты USB / RS232.Полные спецификации можно найти здесь .

  • , как трудно это было бы преобразовать в устройство Linux / какие самые сложные части или проблемы, с которыми я не мог справитьсявсе?
  • или есть компании / люди, которые специализируются на таких задачах?Обратите внимание, мы даже не знаем, кто является оригинальным производителем.Производитель, однако, сказал, что поддержка Linux отсутствует.
  • или, альтернативно, вы знаете какие-либо подобные устройства, которые уже поставляются с Linux (я бы предпочел это вместо взлома устройства)?

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

В идеале вам потребуется доступ к контактам JTAG процессора как для программирования, так и для отладки, тогда вам понадобится отладчик JTAG, который поддерживает устройство и программирует используемую флэш-память.

Когда у вас есть все, что у вас есть полный доступ к процессору и памяти, и вы можете перепрограммировать его с любой выбранной вами прошивкой. Однако полезность этого будет зависеть от наличия у вас достаточной технической информации для разработки или приобретения подходящих драйверов для дисплея, а также для любого другого конкретного аппаратного обеспечения, а также встроенных периферийных устройств.

Знание того, что это ARM926EJ, говорит только о ядре. В нем ничего не говорится о встроенных периферийных устройствах, включая аппаратное обеспечение, такое как контроллер SDRAM и генератор тактовых импульсов PLL, а также контроллер прерываний, все из которых необходимо будет инициализировать, прежде чем вы сможете запустить систему - это зависит от устройства, и вы, Linux, должны быть специально адаптированы к оборудованию. Вы не можете просто загрузить Linux, как на ПК, который является известной и стандартизированной аппаратной платформой.

Документация показывает, что это процессор Samsung S3C2416X. Получите руководство пользователя и таблицу данных для этого на веб-сайте Samsung Semiconductor. Вы можете найти порт Linux, уже доступный для процессора, по крайней мере, но вам все равно нужно будет адаптировать его к периферийным устройствам вне устройства и вводу / выводу. Документация также показывает JTAG на блок-схеме, так что, возможно, оставил разъем на плате для вас.

2 голосов
/ 07 апреля 2011

Полезные шаги на этом пути:

  1. Узнайте, как работает загрузочная прошивка и может ли она загружать ядро ​​Linux. Если нет, вам нужно будет перенести uBoot или другой Linux-совместимый загрузчик на аппаратное обеспечение. Это может потребовать пайки для перепрограммирования основной загрузочной флешки.
  2. Найдите ядро ​​Linux для оценочной платы для того же процессора Samsung.
  3. У каждой платы есть свои причуды, такие как точное соединение линий ввода / вывода, которые взаимодействуют с управлением батареей, яркость дисплея, кнопки на передней панели. Без документации от производителя это может быть больно понять. Чтобы провести обратный инжиниринг, вам нужно открыть его и найти номера деталей второстепенных компонентов, а затем проанализировать, как они связаны. С другой стороны, часто есть оценочная плата от производителя микросхем, которая использует те же части и имеет полную документацию. Аппаратные инженеры любят копировать и вставлять из этих эталонных проектов.

Это возможно, но, вероятно, имеет смысл, только если у вас мало времени или вы планируете их покупать. Есть фрилансеры, которые занимаются портированием ядра ARM; Я сделал это сам. Обычно я делаю это для людей, которые разработали свое собственное оборудование, поэтому очень мало реверс-инжиниринга.

...