Различия Между блоком ARM и x86 [закрытым] блоком

Как упомянуто много раз в другом месте, Просто Сделайте Это. Я смог начать с нуля с Подрывной деятельностью в соответствии с Windows в мгновение ока путем чтения руководства по быстрому началу работы в Красной книге. Как только я указал на TortoiseSVN на репозиторий, я был в бизнесе. Это взяло меня некоторое время для снижения тонкостей, но они были незначительными горбами для преобладания.

я предложил бы установить Сервис Подрывной деятельности вместо того, чтобы использовать URL file://, но это - главным образом персональное предпочтение. Для репозитория, сохраненного на Вашей машине разработки, хорошо работает file://.

28
задан Ciro Santilli 新疆改造中心法轮功六四事件 15 October 2015 в 13:54
поделиться

2 ответа

Основные различия:

  • ARM - это архитектура в стиле RISC - инструкции имеют обычный размер (32-битный для стандартного ARM и 16-битный для режима Thumb, хотя в Thumb есть некоторые инструкции, которые разжевывают вверх 2 «слота» инструкций)

  • , по крайней мере, до архитектуры ARM v5 (я не уверен, что делает v6), модель прерывания на ARM сильно отличается от модели Intel - вместо того, чтобы помещать регистры в стек, ARM переключается на другой набор регистров, который «затеняет» обычный набор. Режим процессора определяет, какой файл регистров виден (и не все регистры обязательно затенены). это довольно сложная аранжировка. В новых архитектурах ARM (во всяком случае, v7) есть модель прерывания, которая ближе к модели Intel, где регистры помещаются в стек при возникновении прерывания.

У инструкции Arm есть некоторые интересные особенности, которых нет в Intel: инструкции

  • имеют встроенные условные флаги - поэтому каждая инструкция может выполняться как NOP, если указанные флаги условия не соответствуют текущему состоянию флага регистра состояния ( это можно использовать, чтобы избежать всех тех переходов между одной или двумя инструкциями, которые вы часто видите в сборке Intel).
  • ARM имеет логику переключения, которая может быть встроена как часть инструкции. Таким образом, при использовании регистра в качестве исходного операнда вы можете сдвинуть его как внутреннюю часть инструкции. Это помогает с индексацией массивов, иногда с арифметикой.

С другой стороны, ARM не может многое делать с памятью напрямую, кроме загрузки из нее и сохранения в нее. Сборка Intel может выполнять больше операций непосредственно с памятью.

Обратите внимание, что версия архитектуры ARM этого не делает. t соответствуют фактическим версиям процессоров ARM - например, если я правильно помню, ARM7 - это процессор с архитектурой v5. Лично я нахожу это гораздо более запутанным, чем должно быть.

Справочные материалы по архитектуре ARM можно бесплатно загрузить с http://www.arm.com . Я также предлагаю получить копии руководств Hitex по различным микроконтроллерам ARM в качестве хорошей отправной точки.

Было несколько вопросов о Stackoverflow, касающихся указателей для начала работы с ARM. Их обзор даст вам много хороших мест для начала:

51
ответ дан 28 November 2019 в 02:55
поделиться

Вы также должны понимать, что ARM лицензирует свой IP, а не производит чипы. Лицензиат может настроить свой микропроцессор ядра ARM несколькими способами. Самое главное в отношении вашего вопроса заключается в том, что само ядро ​​ARM определяет только два прерывания IRQ и FIRQ, чаще всего существует контроллер прерываний, зависящий от поставщика, поэтому вам нужно точно знать, чей микропроцессор используется в вашем устройстве, если вам нужно знать, как обрабатывать прерывания. В моделях iPAQ по-разному используются процессоры Intel StongARM и XScale. Если вы хотите развиваться на этом уровне, вам следует загрузить справочное руководство пользователя для конкретной части.

При этом службы прерывания и драйверы устройств предоставляются ОС, поэтому вам, вероятно, не нужно беспокоиться о таком низком уровне детали уровня. Фактически, я бы поставил под сомнение выбор ассемблера в качестве языка разработки. Есть несколько причин выбрать ассемблер вместо C или C ++ на ARM (компилятор почти наверняка превзойдет вас с точки зрения производительности кода). Более того, в Windows Mobile наиболее продуктивным языком уровня приложений, вероятно, будет C #.

11
ответ дан 28 November 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: