LINUX.ORG.RU

С чего начать писать под арм?


0

1

Есть глобальное желание - научится писать под ARM.

Есть локальное желание - портировать Android на какой-нибудь тупой телефон, вроде Samsung Monte.

На ассемблере писал для эмулятора. Некое небольшое представление об ассемблере имею.

Насколько мне известно, никаких эмуляторов самсунг не публиковал, а если и публиковал, то на самом деле это его реализация J2ME, а не эмулятор процессора.

Вопросы:

0)Как можно хардварно отладить мобилу? Ну, то есть, почитать ее память во время загрузки, инструкция за инструкцией.

1)Есть ли какой-нибудь эмулятор арма более-менее похожего на мою мобилу, чтобы не запороть ее первой же прошивкой?

2)Как можно отредактировать ROM телефона? Ну, в смысле, как в сервис-центрах делают перепрошивку? Если телефон сам не грузится.

> портировать Android на какой-нибудь тупой телефон, вроде Samsung Monte.

Забудь про это, там врядли больше 32М оперативы во первых и еще куча вовторых, третих и т.д.

shelA
()

>Есть ли какой-нибудь эмулятор арма более-менее похожего на мою мобилу, чтобы не запороть ее первой же прошивкой?

Вряд ли, у тебя там кроме процессора еще контроллер дисплея, радиомодуль и куча другой фигни.

nanonymous
()
Ответ на: комментарий от shelA

>>там врядли больше 32М оперативы

там больше. туда хотели изначально баду воткнуть.

но потом передумали.

Lockywolf ★★★
() автор топика

Гм... Весьма странный подход к созданию софта.

Для начала стоит заметить что подгонкой операционки под конкретную платформу занимается далегко не один человек, а группа людей, которая за это получает деньги и соответственно занимается этим как минимум по восемь часов в сутки в течении, месяца и более(зависит от объема работ). Причем, как правило, это профессионалы с солидным опытом программирования... Это по поводу самой задумки:)

А по поводу программирования на ARM могу сказать что тут особо ничего сложного нет, но начинать все же лучше не с телефона, а ч чего нибудь попроще, например с какого нибудь комплекта для разработки (что нибудь типа http://olimex.com/dev/lpc-mt.html). Или поискать готовые проэкты в инете, потому как такие наборы уж шибко дорогие...

Кстати на асме писать не советую - быстродействие и малый объем кода он , конечно даст, но вот гемороя будет на порядок больше. Да и сторонние библиотеки, типа того же драйвера для дисплейчика 16x2 написаны, как правило на Cи, по этому вместо того чтобы писать то что нужно на Си, на асме 80% времени и сил уйдет на изобретение велосипеда.

ksv82
()
Ответ на: комментарий от ksv82

>>Гм... Весьма странный подход к созданию софта.

Студенты, что с нас возьмешь :-)

Ну, портировать - это сильно сказано.

На самом деле, хочется добиться хотя бы загрузки кернела и работы одного(хотя бы) устройства ввода-вывода, чтобы ядро могло подтвердить свою работоспособность не только через отладчик. Тем более, что ядро под АРМ уже давно портировано.

Тем более, что самсунг не все с нуля разрабатывает. Есть неплохая вероятность, что какие-то драйвера уже есть и работают.

То есть,на самом деле, необходимый минимум: вычленить из прошивки загрузчик, дизассемблировать, вписать код, который будет грузить в память что-нибудь вроде uboot. модифицировать прошивку модифицированным лоадером, убутом и ядром. перепрошить

Казалось бы, не смертельная задача. Или я что-то недооцениваю?

группа людей, которая за это получает деньги

Да-да :-)

Lockywolf ★★★
() автор топика
Ответ на: комментарий от anon_666

>1) Нет.

У Самсунга наверняка есть ;) Так что TC при желании может пойти к ним работать, им как раз сотрудники нужны.

ttnl ★★★★★
()
Ответ на: комментарий от Lockywolf

Лучше подключись к готовому проекту, например, андроид на p535 или что-нибудь подобное. Там и форум будет, и доки, и спеки, если они есть.

frey ★★
()
Ответ на: комментарий от Lockywolf

>> там врядли больше 32М оперативы

там больше. туда хотели изначально баду воткнуть.

Посмотрел внимательнее - да это же самсунг стар в новой коробке.))) Отличный телефон, но Андроед туда не поместится, да и сильно сомневаюсь, что это ARM.

shelA
()
Ответ на: комментарий от shelA

> Посмотрел внимательнее - да это же самсунг стар в новой коробке.)))

Да всё именно так и обстоит. Тебе по ссылке, народ там уже во всю портирует Баду и Андроед на стары.

http://rk-team.net/showthread.php?32-%E4%F0%F3%E3%E8%E5-os-%28%EE%E1%F1%F3%E6...

shelA
()

Есть глобальное желание - научится писать под ARM.

Нужен development board, JTAG и кросскомпиляторы. Но все это - low-level.

Высокоуровневое программирование ничем не отличается. Я вот пишу под ARM на C и C++. Никакой разницы против обычных компов.

Есть локальное желание - портировать Android на какой-нибудь тупой телефон, вроде Samsung Monte.

Плохое желание. Портирование чего-либо на девайс под ARM - это разборки с особенностями конкретного девайса: чего там куда подключено по каким адресам, значение регистров периферийных устройств и все такое. Без исчерпывающей документации никак. Знания системы команд тут мало.

Deleted
()
Ответ на: комментарий от Lockywolf

>На самом деле, хочется добиться хотя бы загрузки кернела и работы одного(хотя бы) устройства ввода-вывода, чтобы ядро могло подтвердить свою работоспособность не только через отладчик. Тем более, что ядро под АРМ уже давно портировано.

скажу тебе одно: при таком подходе к задаче ядро твоё не заработает.

другими словами:

Есть неплохая вероятность, что какие-то драйвера уже есть и работают.

размечтался!

xydo ★★
()

Начинать надо с чего нибудь хорошо документированного и наименее закрытого, то есть development board.

amaora ★★
()
Ответ на: комментарий от Deleted

> чего там куда подключено по каким адресам

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

gandjubas
()
Ответ на: комментарий от gandjubas

Ну на счет мануалов то пожалуй можно и решить проблему - обратиться к самим разработчикам телефона и выпросить у них доки, обещая что после создания альтернативных прошивок популярность аппарата возрастет. Правда не факт что Samsung на такое пойдет, но некоторые компании наоборот такой подход поддерживают.

Хотя даже имея доки нужно все равно обладать немалыми навыками чтобы хотябы понять как работать с железом. Когда я начинал работать с армом я даже по готовым исходникам с трудом понимал что они и как делают. Тут кстати очень помог опыт работы с самыми простыми контроллерами - avr. Когда пишешь код под обычный комп, о многих вещах ты даже не подозреваешь, тогда как на контроллере(даже на арме), например, такие вещи как время исполнения комманд или режим работы процессора могут иметь огромное значение.

ksv82
()
Ответ на: комментарий от ksv82

Хорошо, допустим микроконтроллер. тогда посоветуйте минимальный по цене комплект для разработки.

Lockywolf ★★★
() автор топика
Ответ на: комментарий от Lockywolf

Минимальный для чего? Цена платы очень сильно зависит от функционала, и соответственно на дешевой плате будет мало интересных фишек, с которыми можно будет поиграться. Наличие на борту ethernet - одна из самых интересных вещей, но это огромная прибавка к цене... Что именно вам нужно(или точнее интересно)? ИМХО, без большинства перефирии можно либо обойтись, либо потом прилепить самостоятельно(например посадить на порты ввода вывода SD-карту, если картридера на плате не предусмотрено), но дисплей однозначно лишним не будет, потому как для большинства проэктов, даже таких, где дисплей в принципе не нужен, lcd будет очень полезен как дополнительное средство отладки и визуализации.

По цене думаю сами определитесь, на olimex.ru(других производителей отладочных плат под различные платформы просто не знаю, буду рад, если кто подскажет), много различных плат под арм контроллеры фирм lpc,stm,atmel, ценники на которые можно легко найти на efind.ru

По поводу того какой контроллер выбрать - это ИМХО не очень уж и важно. Даже если потом придется работать с котнроллером другой фирмы на арм-ядре то освоится с его отличиями от знакомого вам можно будет за пару дней. Тем более что любой из этих контроллеров обладает более чем достаточными возможностями почти для любой задачи(для начинающего программиста). Так что тут лучше выбирать по соображениям цены, наличия в ближайших магазинах и тп.

ksv82
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.