Построить кросс-компилятор 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 продвигается хорошо. Также есть пара эмуляторов. GDB и другие места имеют то, что кажется собственным оружием ARM. Мне было трудно извлекать и использовать, поэтому я написал свой собственный, но, будучи ленивым, реализовал только набор инструкций для большого пальца, я назвал мой большим пальцем. легко использовать. Намного проще, чем qemu и armulator, добавлять периферийные устройства, просматривать и отлаживать ваш код. YMMV.
Хммм. Недавно я опубликовал аналогичный ответ для кого-то. Google: arm verilog, и в umich вы найдете файл isc.tgz, в котором используется поведенческая модель arm10 (поскольку вы не можете сделать из нее чип, поэтому вы можете найти verilog в сети). Для тех, кто хочет изучить набор инструкций, наблюдение за выполнением вашего кода на уровне шлюза - это почти что хорошо. Будьте осторожны, как наркотик, вы можете стать зависимым, а потом испытать трудности, когда вернетесь к кремнию, где у вас относительно нулевая видимость вашего кода во время его выполнения. Где-то в stackoverflow я разместил шаги, необходимые для получения этой модели arm10, и еще один-два файла, чтобы превратить ее в эмулятор arm, используя icarus verilog. gtkwave - хороший и бесплатный инструмент для изучения файлов wave (vcd).
Прежде всего вам понадобится ARM ARM. (Архитектурный справочник АРМ). Просто Google и найти его на веб-сайте ARM. Для каждой инструкции существует псевдокод, который обучает вас тому, что они делают. Если вам нужно больше понимать, используйте джойстик, или подлокотник, или другое (у мамы тоже есть сердечник). Я не даю никаких гарантий, что миниатюра отлажена на 100% или точна, я взял некоторые распространенные программы и сравнил их вывод с кремниевым, как с ручным, так и с безруким управлением, для отладки ядра.