Что нужно для разработки под процессор ARM?

Я знаком с архитектурой и сборкой X86[-64]. Я хочу начать разработку для процессора ARM. Но, в отличие от настольных процессоров, у меня нет настоящего процессора ARM. Думаю, мне нужен симулятор ARM.

http://www.armtutorial.com/ сказать

Потребуется компилятор сборки ARM, самый доступный — ARMulator.

Я думал о загрузке Armulator, но нашел с http://forums.arm.com/index.php?showtopic=13744, что

Отдельно он не продается. Но вы можете скачать пробную версию RVDS, которая включает RVISS/ARMulator.

Я скачал и установил RVDS, но это выглядит очень сложно. Я не могу понять, что мне нужно сделать, чтобы написать сборку ARM и запустить ее.

У вас есть лучшие предложения?


person claws    schedule 16.04.2010    source источник
comment
Руководство разработчика систем ARM — отличная книга. Он у меня всегда на столе. Если вы все еще застряли после получения ответов, не стесняйтесь зайти к нам, любителям ARM, в IRC. ##рука на FreeNode.   -  person    schedule 16.04.2010


Ответы (4)


Варианты окружения

  • Установите Linux в системный эмулятор QEMU. Он может эмулировать различные чипсеты на базе ARM.
  • Получите эмулятор для конкретного ARM-чипсета, например игрового карманного компьютера. С Gameboy Advance весело играть. NoCash GBA и VisualBoy Advance — два отличных эмулятора GBA.

Наборы инструментов

Вам понадобится набор инструментов. Набор инструментов — это набор низкоуровневых инструментов, таких как ассемблер, компоновщик, компилятор, архиватор и куча других полезных вещей. Более того, вам нужна перекрестная цепочка инструментов, что означает, что цепочка инструментов работает в одной системе, но создает исполняемые файлы для другой архитектуры. Таким образом, вы можете создавать приложения, которые работают на ARM-устройствах, но на вашем ПК с архитектурой x86. Это быстрее и удобнее.

Если вы используете Windows, DevkitPro — неплохой выбор. Для вариантов Unix/Linux/BSD у вас есть бесплатные наборы инструментов CodeSourcery и набор инструментов GCC от gnuarm.com. Есть несколько других, но вам не нужно больше опций.

Документация

Получите спецификацию выбранного ЦП ARM на сайте infocenter.arm.com. Один справочник, который вам нужен независимо от процессора, — это Справочное руководство по архитектуре ARM (часто сокращенно ARMARM). Я размещаю более старую версию, которая охватывает архитектуру ARM и версию набора инструкций до ARMv4T, здесь, но текущую и более позднюю версии вы также найдете на infocenter.arm.com. Если вы выберете GBA, обратите внимание, что процессор представляет собой ARM7TDMI с версией набора инструкций ARMv4T.

ARMARM содержит советы и примеры для обычного системного кодирования, советы о том, как поступить с определенными проблемами проектирования, а также справочник как по набору инструкций ARM, набору инструкций Thumb, так и по сопроцессорам, таким как MMU, MPU, DSP и FPU.

Если вы придерживаетесь QEMU, это почти все, что вам нужно, поскольку ядро ​​​​Linux обрабатывает все. QEMU также имеет эмуляцию пользовательского режима (с заглушкой C-библиотеки). Если вы выберете один из эмуляторов GBA, вот хороший справочник по оборудованию и регистрам оборудования GBA: CowBiteSpec. Также не забудьте посетить http://www.gbadev.org/.

Nintendo DS, вероятно, тоже вариант, но я пока не знаю ни одного приличного эмулятора для этого КПК. Удачи тебе :-)

РЕДАКТИРОВАТЬ: Вот тривиальный пример кода GBA, который я написал много лет назад: GBA Color fill 240x160 16-битный пример

person Community    schedule 16.04.2010
comment
В настоящее время No$GBA также поддерживает DS. Есть также DeSmuME с открытым исходным кодом, который хорошо работает для меня. - person bobince; 16.04.2010
comment
Отличный ответ, чертовски близкий к тому, что я бы сказал. Я бы добавил visualboyadvance в качестве эмулятора gba. Изучите сначала руку, а потом большой палец. Избегайте cortex-m3 в качестве первого чипа (сначала рука, потом большой палец). В конце концов зайдите на sparkfun.com и посмотрите на armmite pro или на одну из многих досок olimex. или одну из ранее выпущенных плат luminarymicro stellaris (хотя это cortex-m3, 811 легко блокируется). Избегайте lpc xpresso и mbed2. - person old_timer; 16.04.2010
comment
@dwelch: Не стесняйтесь добавлять что-то в пост, если у вас есть дополнительные советы. Вы получили привилегию на отметке 2000 баллов :-) Следует отметить, что вопрошающий сказал, что не может позволить себе оценочные платы, поэтому я упоминаю только эмуляторы. Я действительно упомянул VBA в самом начале. - person ; 17.04.2010
comment
извините, пропустил vba, комментарий. Я уверен, вы знаете, как это бывает, вы начинаете с эмуляторов, затем со временем вы становитесь лучше и, возможно, покупаете настоящий gba на ebay или плату за 30 долларов здесь или там. Эмуляция - хорошее начало, но эмуляторы обманывают, я поймал, что все они доставляют меньше проблем, чем настоящие, чтобы заставить что-то работать. Извините, что не увидел ссылку vba .. - person old_timer; 18.04.2010
comment
круто, я не знал, что есть особые привилегии для набора 2000 очков. это тоже немного страшно, редактировать ответы других людей. - person old_timer; 18.04.2010
comment
Stack Overflow — это вики-система, и баллы рассчитываются на основе процента владения текстом и его участников. Таким образом, вы можете редактировать любой ответ с чистой совестью, если он сделан добросовестно. Просто мои 2 цента. Вы также можете добавлять новые теги к вопросам. - person ; 18.04.2010
comment
изменения могут быть отменены, если это будет сочтено необходимым. - person Thorbjørn Ravn Andersen; 24.04.2010

Несколько комментариев, не конкурирующих за полный ответ на вопрос постеров.

Бигльборд — это круто, 150 долларов, но чтобы сделать его полезным, нужно еще 150 долларов на USB-начинку. Embest Beagleboard в целом дешевле из-за отсутствия вещей, которые вы должны покупать, чтобы идти с ним. Но теперь есть доска hawkboard, также основанная на omap, стоит менее 100 долларов и пока выглядит очень хорошо сделанной. На данный момент мне это нравится больше, чем бигльборд, гораздо менее болезненно.

Доска open-rd предлагает гораздо больше, чем бигльборд в этом ценовом диапазоне, на что стоит обратить внимание, если / когда у вас есть бюджет на игрушки. как открытая плата, так и закрытая за еще 100 долларов имеют полный разъем sata, поэтому вы можете подключить к нему диск ноутбука и не использовать мучительно медленные флэш-устройства или USB.

У плаката нет ресурсов, чтобы купить эти игрушки. Я бы сказал, что если вы продолжите заниматься этим и преуспеете во встроенных ARM, у вас будет воля и вы найдете способ. Вот почему я упоминаю, что у Sparkfun и других компаний есть платы по 30-50 долларов, которые работают из коробки. Перед покупкой задайте вопрос в stackoverflow, спросив, что лучше. У меня их много, и некоторые из них я нашел непригодными или слишком болезненными, чтобы возиться с ними, я бы не хотел, чтобы вы тратили весь свой бюджет на игрушки на то, что не стоит иметь.

У меня здесь лежит пример кода интегратора qemu arm, позвольте мне его упаковать и предоставить рабочий пример. У меня есть много другого кода для рук и gba, возможно, я тоже опубликую его.

Архитектура ARM началась, и в прошлый раз я работал с их людьми/инструментами, используя эмулятор под названием armulator (google/wikipedia). Таким образом, имитация руки, в частности, не является чем-то необычным.

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

person old_timer    schedule 18.04.2010

Вы можете приобрести что-то вроде BeagleBoard для игры — они стоят всего около 200 долларов. На него можно установить Ubuntu и набор инструментов ARM.

person Paul R    schedule 16.04.2010
comment
как я уже сказал, я не могу позволить себе покупать какие-либо доски. Я действительно серьезно. Неужели нет другого решения? - person claws; 16.04.2010
comment
Вы использовали Raspberry Pi (1 или 2)? Если да, то как вам он по сравнению с BeagleBoard? - person Z boson; 25.06.2015
comment
@Zboson: если этот вопрос адресован мне, то нет, я на самом деле не играл с BeagleBoard или Raspberry Pi. Я купил Efika MX несколько лет назад, чтобы играть с Neon SIMD, но производительность была несколько ниже. разочаровывающий. - person Paul R; 25.06.2015
comment
Как ты тогда выучил Неон? - person Z boson; 25.06.2015
comment
Что ж, я узнал достаточно, чтобы провести сравнительный анализ — я реализовал некоторые фильтры и т. д., используя как встроенные функции, так и необработанную сборку. В то время генерация кода gcc была довольно плохой для Neon, поэтому необработанная сборка действительно стоила того (в 2 раза быстрее, чем встроенные функции IIRC). Очевидно, gcc в последнее время улучшился в этой области. - person Paul R; 25.06.2015
comment
Какое оборудование вы используете сейчас для Neon? - person Z boson; 25.06.2015
comment
На самом деле я не знаю, кроме ответов на случайные вопросы здесь, на SO. У меня все еще есть вышеупомянутая Efika MX, и я иногда загружаю ее, но большая часть работы, которую я делаю в эти дни, связана с x86. - person Paul R; 25.06.2015