Вопрос

Я полный новичок в мире ARM.Мне нужно иметь возможность написать код на C, скомпилировать его, а затем загрузить в эмулятор ARM и выполнить.Мне нужно использовать компилятор GCC 4.1.2 для компиляции кода на C.

Кто-нибудь может указать мне правильные направления для решения следующих проблем?

Какую цепочку инструментов использовать?

Какой эмулятор использовать?

Существуют ли учебные пособия или руководства по настройке цепочки инструментов?

Это было полезно?

Решение

самостоятельно создать кросс-компилятор gcc довольно просто.библиотека gcc и библиотека C и других вещей не так много, встроенная библиотека и тому подобное немного сложнее.Зависит от того, насколько встроенным вы хотите его получить.Я мало пользуюсь gcclib или библиотекой c, поэтому для меня отлично подходит ваша собственная.

После многих лет занятий этим, возможно, это возрастная особенность, теперь я просто беру инструменты для разработки исходного кода.облегченная версия отлично работает.yagarto, devkitarm, winarm или что-то в этом роде (сайт с миллионом примеров) - все работает нормально.у emdebian также есть хороший готовый набор инструментов.в некоторых из этих мест, если не во всех, есть информация о том, как они создавали свои цепочки инструментов из исходных текстов gnu.

Вы спросили о gcc, но имейте в виду, что llvm является сильным конкурентом, и что касается перекрестной компиляции, поскольку она всегда перекрестно компилируется, ее гораздо проще загрузить, собрать и запустить в работу, чем gcc.последняя версия теперь создает код (для arm), который конкурирует с gcc по производительности.gcc никоим образом не является лидером по производительности, другие компиляторы, которые я использовал, обводят его кругами, но он улучшается с каждым выпуском (ну, версии 3.x иногда производят лучший код, чем версии 4.x, но вам нужен 4.x для более новых ядер и thumb2).даже если вы используете gcc, время от времени пробуйте стабильную версию llvm.

qemu - хороший эмулятор, в зависимости от того, что вы делаете, подойдет эмулятор gba virtual gameboy advance.Есть также пара эмуляторов nds.У GDB и других мест есть то, что, по-видимому, является собственным армулятором ARMs.Мне было трудно извлекать и использовать его, поэтому я написал свой собственный, но, будучи ленивым, реализовал только набор команд thumb, я назвал свой thumbulator .прост в использовании.Гораздо проще, чем qemu и armulator, добавлять периферийные устройства, просматривать и отлаживать ваш код.иммв.

Хммм, недавно я опубликовал аналогичный ответ кое для кого.Google:arm verilog и в umich вы найдете файл isc.tgz, в котором представлена поведенческая модель arm10 (поскольку вы не можете сделать из нее чип, поэтому вы можете найти verilog в сети).Который для кого-то, кто хочет изучить набор инструкций, наблюдая за выполнением вашего кода на уровне gate, примерно настолько хорош, насколько это возможно.Будьте осторожны, как с наркотиком, вы можете стать зависимым, а затем вам придется нелегко, когда вы вернетесь в silicon, где у вас относительно нулевая видимость вашего кода во время его выполнения.Где-то в stackoverflow я опубликовал шаги, необходимые для получения этой модели arm10, и еще один или два файла, чтобы превратить ее в эмулятор arm с использованием icarus verilog.gtkwave - это хороший и бесплатный инструмент для изучения файлов wave (vcd).

Прежде всего вам понадобится РУКОЯТКА ARM.(Справочное руководство по архитектуре ARM).Просто погуглите это и найдите на веб-сайте ARM.Для каждой инструкции есть псевдокод, который учит вас тому, что они делают.Используйте thumbulator, armulator или другие, если вам нужно понять больше (в mame тоже есть ядро arm).Я не даю никаких гарантий, что thumbulator отлажен на 100% или точен, я взял несколько распространенных программ и сравнил их выходные данные с silicon как arm, так и non-arm для отладки ядра.

Другие советы

Набор инструментов вы можете использовать Yagarto http://www.yagarto.de/

Эмулятор Вы можете использовать Proteus Isis http://www.labcenter.com/index.cfm.(Есть демо-версия)

и учебники, ну, Google их =)

Удачи!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top