Cortex m3. Сравнительный анализ микроконтроллеров на базе ядра ARM Cortex-M3: особенности и производительность

Какие основные отличия между микроконтроллерами Cortex-M0, M3 и M4. Как реализация ускорителя флеш-памяти влияет на производительность микроконтроллеров Cortex-M3 разных производителей. Каковы особенности и характеристики отечественных микроконтроллеров серии 1986ВЕ91 на базе ядра Cortex-M3.

Содержание

Особенности архитектуры микроконтроллеров семейства Cortex-M

Микроконтроллеры семейства Cortex-M стали одними из самых популярных процессоров для разработки электронных устройств. Высокая производительность, широкий набор периферии и доступная цена делают их привлекательным выбором для разработчиков. Рассмотрим основные варианты ядер этого семейства:

Cortex-M0

Cortex-M0 позиционируется как замена 8-разрядным микроконтроллерам. Его ключевые особенности:

  • Предельно низкая стоимость и энергопотребление
  • 32-разрядная RISC-архитектура
  • Поддержка только 16-разрядных инструкций Thumb
  • Производительность 0.84 DMIPS/МГц
  • 32 вектора прерываний

Cortex-M3

Cortex-M3 стал наиболее популярным вариантом архитектуры ARM. Его отличия от M0:


  • Полная поддержка наборов команд Thumb и Thumb2
  • Аппаратное умножение 32-разрядных чисел за 1 цикл
  • Производительность 1.25 DMIPS/МГц
  • До 240 векторов прерываний
  • Механизм защиты памяти

Cortex-M4

Cortex-M4 представляет собой модификацию M3 с дополнительными возможностями:

  • Встроенный DSP-сопроцессор
  • Вариант M4F со встроенным блоком операций с плавающей точкой
  • Ускоренная обработка потоковых данных

Влияние реализации ускорителя флеш-памяти на производительность

Несмотря на использование одинакового ядра Cortex-M3, микроконтроллеры разных производителей демонстрируют различную производительность. Ключевую роль в этом играет реализация системы памяти программ, в частности ускорителя флеш-памяти.

Почему нужен ускоритель флеш-памяти?

Современные микроконтроллеры Cortex-M3 могут работать на частотах свыше 50 МГц, что соответствует времени выполнения одной инструкции менее 20 нс. Однако типичное время доступа к внутренней флеш-памяти составляет 30-40 нс. Это создает ситуацию, когда процессор вынужден ждать, пока память выдаст очередную инструкцию.


Принцип работы ускорителя

Для решения этой проблемы используется ускоритель флеш-памяти. Его основные функции:

  • Предварительная выборка нескольких инструкций за один цикл обращения к памяти
  • Хранение выбранных инструкций в быстрых регистрах
  • Предсказание следующих адресов выборки для линейного кода

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

Сравнение реализаций ускорителей разных производителей

Эффективность ускорителя напрямую влияет на производительность микроконтроллера. Рассмотрим реализации от разных производителей:

  • STM32F103: два 64-битных регистра для хранения предварительно выбранных инструкций
  • LPC17xx: наиболее эффективная реализация, обеспечивающая высокую производительность
  • 1986ВЕ91: изначально один 128-битный регистр, позже улучшен до двух 128-битных регистров отдельно для инструкций и данных

Особенности отечественных микроконтроллеров серии 1986ВЕ91

Российская компания ЗАО «ПКК Миландр» разработала серию микроконтроллеров 1986ВЕ91 на базе ядра Cortex-M3 для применения в аппаратуре специального назначения. Рассмотрим их ключевые особенности:


Характеристики микроконтроллеров 1986ВЕ91

  • Ядро: ARM Cortex-M3
  • Флеш-память программ: 128 КБ
  • Оперативная память: 32 КБ
  • Максимальная частота: 80 МГц
  • Диапазон рабочих температур: -60…+125°C
  • Различные варианты корпусов: от 42 до 132 выводов

Особенности реализации

В отличие от зарубежных аналогов, микроконтроллеры 1986ВЕ91 имеют следующие особенности:

  • Единый кристалл для всех вариантов корпусов
  • Одинаковый объем встроенной памяти для всех модификаций
  • Различия в функциональности обусловлены только разваркой выводов

Такой подход позволяет снизить стоимость производства и обеспечить гибкость применения микросхем.

Сравнительный анализ производительности микроконтроллеров Cortex-M3

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

  • STM32F103 (STMicroelectronics)
  • LPC1768 (NXP)
  • 1986ВЕ91Т (ПКК Миландр)

Методика тестирования

Тестовая программа реализации ЭЦП была написана на языке C и скомпилирована с минимальными изменениями для всех микроконтроллеров. Измерялось время выполнения 10 итераций вычисления ЭЦП при различных настройках ускорителя флеш-памяти.


Результаты тестирования

Тесты показали следующие результаты:

  • LPC1768 продемонстрировал наилучшую производительность во всех режимах работы
  • 1986ВЕ91Т показал результаты, близкие к LPC1768, особенно после оптимизации ускорителя флеш-памяти
  • STM32F103 отстал по производительности, особенно на высоких частотах

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

Выводы и перспективы развития микроконтроллеров Cortex-M

Проведенный анализ позволяет сделать следующие выводы:

  1. Микроконтроллеры на базе ядра Cortex-M3 обеспечивают высокую производительность при низком энергопотреблении, что делает их привлекательными для широкого спектра применений.
  2. Реализация ускорителя флеш-памяти играет ключевую роль в обеспечении высокой производительности микроконтроллера, особенно на высоких тактовых частотах.
  3. Отечественные микроконтроллеры серии 1986ВЕ91 демонстрируют конкурентоспособные характеристики по сравнению с зарубежными аналогами.
  4. При выборе микроконтроллера важно учитывать не только максимальную тактовую частоту, но и эффективность работы системы памяти.

Что касается перспектив развития, можно ожидать следующие тенденции:


  • Дальнейшее повышение производительности за счет оптимизации архитектуры и улучшения ускорителей памяти
  • Увеличение объемов встроенной памяти
  • Интеграция специализированных сопроцессоров для решения конкретных задач
  • Возможное появление многоядерных микроконтроллеров на базе Cortex-M

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


Знакомство с ARM Cortex-M3 и с STM32, в частности – RoboCraft

Пожалуй, большинство эмбеддерщиков и просто интересующихся встроенными системами уже слышали про процессоры ARM. Их устанавливают в промышленное оборудование, в смартфоны и аудио-плееры, в видеотехнику, да много ещё куда. Популярность ARM во многом обеспечена их хорошей производительностью при низком энергопотреблении, что делает их идеальными для применения в различных мобильных устройствах.ARM расшифровывается как Advanced RISC Machines. RISC — это архитектура процессоров с “сокращённым” набором команд, ныне одна из наиболее распространённых. Между прочим, микроконтроллеры AVR, используемые в Arduino, имеют архитектуру RISC.

Существует современное семейство ARM под названием Cortex, которое делится на три подсемейства:

  • Cortex-A
    Это полноценные процессоры общего назначения для самых различных задач. Самое известное устройство на базе их — это iPhone.
  • Cortex-R
    Предназначены для систем реального времени, где существует необходимость в быстрой и точной реакции на внешние события с гарантированным временем отклика — для применений в промышленности, медицине, автомобилестроении и пр.
  • Cortex-M
    Микроконтроллеры, уже известная нам по AVR область. Как обычно, это не очень быстрый процессор, но со встроенной памятью для программ (flash), оперативной памятью (SRAM) и различной периферией — такой, как GPIO (порты ввода-вывода), UART, SPI, I2C и т.д.

Эта статья, как и последующие в цикле (да, это будет цикл статей), сконцентрируется на самом популярном виде Cortex-M в наши дни — Cortex-M3. Микроконтроллеры этого семейства выпускают несколько компаний — например, ST Microelectronics, NXP, Atmel, Texas Instruments. Надо сказать, что с ARM вообще и Cortex-M3, в частности, ситуация с производством отличается от привычной: компания ARM Limited занимается только разработкой архитектуры и средств разработки (компиляторов и IDE), но сама процессоры не производит, а продаёт лицензии другим компаниям — вышеперечисленным, например. При этом гарантируется совместимость кода на уровне инструкций процессора — это значит, что можно разрабатывать ПО под процессоры различных производителей, пользуясь одним и тем же компилятором.

Чем же Cortex-M3 круче других микроконтроллеров? Много чем:

  • Полностью 32-битная архитектура: все регистры 32-битные, арифметические операции работают с 32-битными данными; умножение 32 x 32 -> 32 выполняется за 1 такт, деление — за 2-12 тактов. Благодаря этому CM3 за то же время успевает сделать больше, чем 8-ми и 16-битные МК.
  • Большое количество (от 16) регистров общего назначения, характерное для архитектуры RISC. Так как регистры работают на частоте процессора, а RAM — на меньшей, всегда предпочтительнее работать с данными в регистрах, а чем их больше, тем дольше можно обходиться без использования RAM. Тут соперничать c CM3 могут разве что AVR.
  • Отличная поддержка режимов энергосбережения. Можно отправить в спячку как весь МК, так и отдельные его подсистемы.
  • 24-битный таймер SysTick
    Этот таймер без ШИМ (PWM), зато 24-битный: можно задавать интервал срабатывания в широких пределах, не особо парясь. Самое то для организации конечных автоматов и планировщика RTOS.
  • Полноценная отладка по JTAG или SWD даже на младших кристаллах. Полноценная — значит, можно ставить точки останова (breakpoints), просматривать содержимое переменных и регистров, выполнять программу пошагово и т.п.
  • NVIC — Nested Vectored Interrupt Controller
    Контроллер прерываний, который поддерживает до 240 прерываний на все случаи жизни, до 256 их приоритетов, и обеспечивает быструю реакцию на прерывания.
  • Контроллера DMA — Direct Memory Access
    Очень полезная вещь — позволяет периферии (UART, SPI, I2C и пр.) читать/писать дынные в RAM без участия МК. То есть, можно дать задание контроллеру DMA считать в указанный буфер 100 байт по SPI, и эта задача будет выполняться в фоне, не загружая МК.
  • Высокая плотность кода. Для большинство более-менее сложных проектов размер кода будет меньше, чем для многих других МК. Это достигается за счёт специально разработанного для этих целей набора инструкций Thumb-2. Меньше размер кода — больше кода влезет в МК.
  • Общая ориентированность набора инструкций на компиляторы C — например, наличие команд для табличных переходов (для swicth/case), битовых манипуляций (PORTA |= (1
  • Хорошие средства разработки: компилятор + среда разработки Keil от ARM Limited, IAR Embedded Workbench for ARM, связка компилятора GCC (сборка Sourcery CodeBench Lite Edition) и Eclipse IDE. Для пользователей Windows есть совсем простая в использовании CoIDE на базе GCC + Eclipse. Вариации с Eclipse круче всего, так как в ней есть поддержка всего, что нужно для удобного программирования: подсветка синтаксиса, умное автодополнение и автозавершение кода, сниппеты, отладчик, всплывающие подсказки с комментариями к функциям и переменным, рефакторинг.

Это мы пока рассматривали Cortex-M3 вообще, а изучать мы их будем на линейке STM32F10x от компании ST Microelectronics, производителем электронных компонентов с мировым именем. Эти ребята очень серьёзно подошли к разработке своих МК на базе Cortex-M3, в результате чего STM32 имеют ряд своих собственных достоинств. Во-первых, это богатая периферия:

  • Несколько многоканальных скоростных 12-битных АЦП, до миллиона измерений в секунду, режим непрерывного измерения.
  • Двухканальный ЦАП, умеющий работать в 8-ми и в 12-битном режимах.
  • 12-канальный контроллер DMA, обслуживает до 12 запросов, имеет 4 уровня приоритетов, независимые размеры блоков данных для приёма и передачи (8, 16 и 32 бита), поддержка кольцевого буфера (!), передача данных в режимах память->память, память->периферия, периферия>память и периферия>периферия.
  • Несколько 16-битных таймеров с произвольными делителями (не только степени двойки, как в AVR), которые умеют генерировать прерывания по переполнению, по сравнению, генерировать ШИМ, измерять длину и число входящих импульсов, запускать ЦАП, и даже автоматически считать импульсы с энкодеров и датчиков Холла!
  • NVIC, помимо всего прочего, поддерживает до 20 прерываний от внешних источников.
  • Модуль RTC (Real-Time Clock) — часы реального времени с счётчиком и будильником.
  • Несколько Watchdog-таймеров для пущей надёжности.
  • FSMC — Flexible Static Memory Controller
    Обеспечивает прозрачный доступ к нескольким видам памяти — SRAM, ROM, NOR Flash, NAND Flash, PSRAM и 16-битным PC Card-совместимым устройствам.
  • SDIO — Secure Digital I/O interface
    Делает львиную долю работы по чтению/записи на карты памяти MMC и SD, что даёт возможность легко и просто прикрутить поддержку FAT и полноценно работать с файлами на карточках.
  • USB
    Полная поддержка стантарта USB 2.0 Full-speed, до 8 эндпоинтов.
  • USB OTG (On-The-Go)
    Эта технология позволяет связывать USB-устройства с её пооддержкой без участия хоста — например, цифровую камеру с принтером.
  • Ethernet, MAC-уровень
    Ага, можно связываться с компом по локальной сети. С внешней PHY-микросхемой может выжимать 10/100 Мбит/с.
  • Шина I2S — шина цифровой связи аудио-устройств.
  • Ну, и стантдартный набор: UART, SPI, I2C, CAN.

Во-вторых, у STM32 очень хорошая структурированная документация:

  • Один Reference manual с описанием всей периферии на всю линейку STM32F10x
  • Подробная документация по каждой отдельной серии МК — распиновка, корпуса, наименование и т. п.
  • Приличное количество аппноутов (Application Notes) — рекомендаций по применению: правильный подбор источника тактирования, питания, примеры работы с LCD, SD-картами, RTC и многое другое.

В-третьих, совместимость — и по расположению ног на кристалле, и по коду. То есть, если не хватает производительности, Flash, RAM или периферии, то можно без модификации кода и без переделки платы просто поставить на плату МК пожирнее с тем же количеством ног.

В-четвёртых, цена. Самый младший камень из серии — STM32F100C4T6B — можно купить за 1-2 $, при этом он имеет 48 ног, 16 КБ Flash, 4 КБ SRAM и может работать на частоте 24 МГц, ну и UARTы и прочие интерфейсы в наличии. То есть, он круче, чем стандартный для Arduino контроллер ATmega168. Конечно, 48 ног — это не DIP-корпус, а TQFP: в макетку или в панельку его не воткнёшь, нужно плату разводить. Но технология изготовления печатных плат в домашних условиях ЛУТ уже расписана вдоль и поперёк, так что не такая уж это и проблема.

Ну, и наконец, платы вроде Arduino для быстрого освоения у ST тоже имеются, и начнём мы изучать STM32 с одной из них — STM32 Discovery:

Так что, если кто не силён в пайке, расслабьтесь. В этой плате есть встроенный отладчик ST-Link, так что вы сможете вкусить всю прелесть полноценной отладки, для которой к AVR пришлось бы докупать AVRDragon за 70$.

В общем, STM32 — это выбор редакции, однозначно. Теперь о цикле статей. Если коротко, то цель цикла — описать STM32F10x вдоль и поперёк. А,если длинно, мы с вами:

  • Изучим всю периферию линейки со всеми режимами работы.
  • Познаем всю прелесть и сложность работы с прерываниями.
  • Научимся разным полезным программерским трюкам и приёмам.
  • Подтянем свои знания языка C.
  • Научимся комбинировать полученные знания и к концу курса сделаем хотя бы одно относительно сложное устройство (уровня MP3-плеера).

Кто хочет прокачаться в программировании МК, у кого есть стальные яйца воля к победе, кто не боится трудностей — ждите продолжение, оно скоро будет. Заряжайте свои мечи, падаваны (:

burjui

ARM

Микроконтроллеры Cortex-M0/M3/M4

Микроконтроллеры Cortex-M0/M3/M4

Микроконтроллеры Cortex-M стали сегодня одними из самых популярных процессоров, применяемых при разработке и изготовлении электронной техники. Высокая вычислительная мощность, широкий набор периферии и низкая стоимость делают эти устройства привлекательными для самого широкого круга разработчиков. При этом каждый желающий может выбрать наиболее подходящий вариант для решения конкретной задачи. Производители предлагают огромное количество разнообразных микросхем, общим для которых остается только процессорное ядро. На сегодняшний день распространение получили 3 варианта ядер: Cortex-M0, Cortex-M3, Cortex-M4. Отличия этих моделей не всегда явно прослеживаются, поэтому данная статья делает попытку разобраться в особенностях этих вариантов.

Микроконтроллеры Cortex-M представляют собой одно из направлений развития микропроцессорных ядер, предлагаемых фирмой ARM. Фактически, под общей торговой маркой Cortex можно увидеть три типа процессоров (профилей), обозначаемых буквами A, R, M. Задачей профиля A стало достижение большой вычислительной мощности. Изделия с этой маркировкой — Cortex-A, представляют собой классические микропроцессоры, являющиеся дальнейшей эволюцией разработок ARM. Профиль R нацелен на использование во встраиваемых системах, поэтому эти процессоры модернизированы для исполнения задач в реальном времени. Основной задачей профиля M заявлена простота и низкая стоимость. Технически Cortex-M представляют сильно упрощенные варианты старших моделей. Тем не менее, даже такие «урезанные» контроллеры обладают вычислительной мощностью, значительно превышающей многие аналоги. Также отличием от «больших» ARM стала поддержка битовых операций, необходимая в микроконтроллерах для работы с периферией.

Cortex-M0

Микроконтроллеры, использующие ядро Cortex-M0, позиционируются производителями в качестве замены 8-ми разрядных моделей. Их отличительной особенностью стала предельно низкая стоимость и малое энергопотребление, при сохранении многих возможностей архитектуры ARM.

По своей структуре ядро Cortex-M0 — это конфигурируемый мультистадийный 32-разрядный RISC процессор. В его основе лежит архитектура ARMv6-M. Основное отличие от классической «большой» ARMv6 заключается в использовании только набора 16-разрядных инструкций, под общим названием Thumb. Дополнительно поддерживаются некоторые команды более нового набора Thumb2. Такое решение, при незначительном падении вычислительной мощности, максимально упростило процессор относительно старших моделей и позволило использовать дешевую 16-ти разрядную память. Благодаря использованию современных технологий проектирования, количество транзисторов, из которых построено данное ядро, составляет примерно 12 тысяч. Такое количество обеспечило низкое энергопотребление и невысокую стоимость. Для сравнения процессор i8086 имел 32 тысячи транзисторов при намного меньших возможностях. Энергопотребление процессора M0, в зависимости от исполнения и решаемых задач, колеблется от 73 до 4мкВт/МГц.

Быстродействие ядра Cortex-M0 составляет 0.84 DMIPS / МГц. Это значит, что на максимальной частоте работы ядра в 50Мгц, достигается производительность 45 DMIPS. Данное значение превышает возможности 8-ми разрядных систем в несколько десятков раз, и на порядок выше, чем у 16-разрядных моделей.

Разработчики, в архитектуре Cortex, попытались получить законченное процессорное ядро. Поэтому в его состав включены: контроллер прерываний на 32 вектора, интерфейс для периферийных устройств в виде 32-разрядной шиной ASB-Lite, отладчик. При необходимости процессор может оснащаться контроллером «спящего» режима.

Процессорное ядро Cortex-M3

Процессорное ядро Cortex-M3 стало наиболее популярным вариантом архитектуры ARM у производителей и разработчиков микроконтроллеров. Структурно, это также мультистадийный RISC процессор. Но в отличие от M0, данное ядро основано на архитектуре ARMv7-M и полностью реализует наборы команд Thumb и Thumb2. Из особенностей следует упомянуть аппаратное умножение 32-разрядных чисел за 1 цикл, а также деление чисел подобной разрядности (от 2 до 12 циклов). Производительность процессора составляет 1.25DMIPS/МГц. Энергопотребление примерно в два раза выше, чем у варианта M0. Количество физических прерываний увеличено до 240. В ядре предусмотрен механизм защиты памяти.

Cortex-M3, в отличие от классической ARMv7, выполнен по Гарвардской архитектуре и поддерживает несколько периферийных шин. Следует отметить, что ARMv7 является основой только процессоров под обозначением Cortex и имеет мало общего с некогда сверхпопулярной ARM7 и ее вариантами. Хотя именно с ARM7 часто сравнивают возможности Cortex-M3.

Cortex-M4

Вариант микроконтроллерного ядра Cortex-M4, по сравнению с Cortex-M3, не характеризуется ростом общих показателей. Фактически M4 тот же самый M3, но дополнительно оснащенный DSP-инструкциями. Наличие последних существенно ускоряет обработку потоковых данных, что в свою очередь делает M4 весьма привлекательным для использования в системах управления и обработки информации.

Возможности DSP, входящего в состав M4, позволяют параллельно выполнять четыре операции сложения/вычитания для 8-ми разрядных чисел или две операции сложения/вычитания с16-ти разрядными операндами. Также реализовано умножение за один цикл, при этом для 16-ти разрядных чисел возможно параллельное исполнение двух операций.

В серии M4 есть еще один вариант, под обозначением Cortex-M4F. В нем, дополнительно к DSP, установлен блок операций для чисел с плавающей точкой – FPU.

Кроме вышеназванных, существуют и другие варианты процессоров. Большинство из них представляют модернизированные варианты основных ядер. Несколько особняком стоит малоизвестный Cortex-M1, предназначенный для использования в программируемых логических матрицах. Основные характеристики этого процессора практически совпадают с вариантом M0, но при этом он реализован только в виде программной модели.

В отличие от профиля А, Cortex-M развивается не столь бурно. Когда и какими будут будущие микроконтроллеры неизвестно. Можно только предположить, что развитие пойдет по пути «больших» систем и в скором времени привычными станут двух-, трех или четырехядерные контроллеры.

You have no rights to post comments

Характеристики производительности микроконтроллеров на базе ядра ARM Cortex-M3

PDF версия

Аналитика Статьи

В 2006 г. компания ARM представила на рынке новое процессорное ядро Cortex-M3, которое пришло на замену более старого ядра — ARM7TDMI. Такие разработчики микроконтроллеров (МК) как STMicroelectronics, NXP, Texas Instruments и др. приобрели лицензию на это ядро и наладили серийный выпуск МК на его базе. В 2008 г. лицензию на данное ядро приобрела и российская компания ЗАО «ПКК Миландр», запланировавшая к выпуску отечественную линейку МК серии 1986ВЕ91 для аппаратуры специального назначения. В статье рассматриваются показатели производительности МК различных вендоров, но с одним общим процессорным ядром.


Микроконтроллеры серии 1986ВЕ91

Особенности отечественного рынка микроэлектроники специального назначения предъявляют к разрабатываемым микросхемам несколько иные требования, в отличие от традиционного рынка микросхем. Если все производители для удешевления кристаллов минимизируют его размер за счет сокращения объема встроенной памяти и уменьшения набора периферии и, следовательно, пакуют их в меньшие корпуса, то разрешенные к применению российские корпуса при их огромной стоимости и габаритах позволяют с большей выгодой устанавливать один и тот же кристалл в корпуса различных размеров. Таким образом, для удешевления стоимости микросхем данной серии один и тот же кристалл пакуется в различные корпуса, а потеря в функциональности обусловливается тем, какие из его выводов развариваются. При этом объем встроенной памяти у всех микросхем одинаков. Основные характеристики МК серии 1986ВЕ91 приведены в таблице 1.

Таблица 1. Основные характеристики МК серии 1986ВЕ91

Серия

1986ВЕ91Т1

1986ВЕ91Т2

1986ВЕ91ТЗ

1986ВЕ91У1

1986ВЕ91У2

1986ВЕ91УЗ

Корпус, кол-во выводов

132

108

88

64

48

42

Ядро

ARM Cortex-M3

Флэш-память программ, Кбайт

128

Память данных, Кбайт

32

Питание, В

2,0…3,6

Частота, МГц

80

Температура, °С

-60…125

USER I0

96

74

62

45

31

25

USB

Device и Host FS (до 12 Мбит/с), встроенный PHY

UART

2

CAN

2

SPI

2

1

I2C

1

АЦП 12 разрядов, 1 Мвыб. /с, кол-во каналов

16

10

8

5

3

ЦАП 12 разрядов

2

1

2

1

Компаратор, кол-во входов

3

2

Внешняя шина, кол-во разрядов

32

16

8

Производительность микроконтроллеров

Несмотря на стандартное ядро ARM Cortex-M3, характеристики производительности МК от различных фирм имеют разные показатели. В первую очередь, это обусловлено системой памяти программ, реализованной в МК. Практически все МК с ядром ARM Cortex-M3 могут функционировать на частотах более 50 МГц, т.е. время выполнения одной инструкции составляет менее 20 нс. При этом практический предел скорости доступа к внутренней памяти программ флэш-типа равен 30…40 нс. В результате флэш-память не успевает выдать новый код инструкции за один такт. Для того чтобы компенсировать медленную скорость работы памяти программ, в микроконтроллерах реализуется более разрядная, например 128-бит память, что позволяет за один цикл извлекать не одну, а сразу несколько инструкций. За то время, пока процессор выполняет инструкции из выбранного блока, подготавливается новый блок. В результате, если код выполняется линейно, такой механизм позволяет эффективно увеличить скорость работы процессорного ядра до 100 МГц и более. Структура простейшего ускорителя флэш-памяти программ представлена на рисунке 1.

Рис 1. Простейший ускоритель флэш-памяти программ

Однако как только процессор выполняет инструкцию ветвления либо обращается по ранее не предсказанному адресу, ускоритель инициализирует новый цикл обращения к флэш-памяти и на время выборки приостанавливает работу процессора.
Очевидно, что ускоритель флэш-памяти должен быть настраиваемым. Если разработчику системы с использованием микроконтроллера не требуется, чтобы процессор функционировал с тактовой частотой более 20 МГц, в этом случае флэш-память успевает выдать новые данные за один цикл, и необходимость в ускорении отсутствует. Если процессор работает на частоте до 40 МГц, то для выполнения непредсказаной выборки требуется один дополнительный такт; при частотах до 60 МГц — два и т.д.
Все разработчики МК с ядром ARM Cortex-M3 реализуют собственные ускорители флэш-памяти. В результате, чем эффективнее решение, тем бóльшей производительностью обладает микроконтроллер.

Показатели производительности

В настоящее время на российском рынке в основном представлены МК с ядром ARM Cortex-M3 компаний STMicroelectronics (семейство STM32Fxxx) и NXP (семейство LPC17xx). Для первоначального знакомства с этими микросхемами предлагаются демонстрационные отладочные средства, например модуль STM3210B-EVAL с МК STM32F103VBT6 фирмы STMicroelectronics. Для знакомства с микроконтроллерами NXP серии LPC17xx можно приобрести демонстрационный отладочный модуль RDB1768 с микроконтроллером LPC1768 от фирмы CODERED.
Для предварительного прототипирования микроконтроллеров серии 1986ВЕ91 компания «Миландр» разработала аппаратный прототип будущей микросхемы на базе FPGA, внешний вид которого представлен на рисунке 2.

Рис. 2. Прототип микроконтроллера 1986ВЕ91T1 на базе FPGA

Все перечиленные демонстрационные отладочные средства позволяют запускать на этих МК различные тестовые задачи и сравнивать полученные характеристики. В качестве основной тестовой задачи была выбрана программа реализации электронной цифровой подписи (ЭЦП). Эта программа не требует работы с периферией, что позволяет легко переносить ее с одного микроконтроллера на другой. Исходный код написан на языке С и оформлен в виде проекта под IDE Keil uVision. Проект компилируется и запускается с минимальными изменениями на всех микроконтроллерах. Исходные коды проекта доступны на официальном сайте фирмы «Миландр» forum.milandr.ru.
В программе задается режим работы ускорителя флэш-памяти, и выполняются 10 итераций вычисления ЭЦП над некоторыми условными данным. Время выполнения всех итераций фиксируется в циклах процессорного ядра (см. табл. 2).

Таблица 2. Число тактов, требуемых для выполнения тестовой задачи

Число дополнительных циклов задержки ускорителя

Число циклов процессора для выполнения тестовой задачи, млн

STM32F103

1986ВЕ91Т

LPC1768

0

411

446

407

1

506

514

413

2

662

541

422

3

859*

617

432

4

1054*

669*

442

5

1251*

704*

451*

*Использованы нерегламентированные режимы работы микросхемы.

Для большей наглядности данные приставлены в виде диаграммы на рисунке 3.

Рис. 3. Число тактов выполнения тестовой задачи при различном значении дополнительных циклов задержки ускорителя

Характеристики приведенной производительности с учетом тактовой частоты представлены на рисунке 4.

Рис. 4. Зависимость производительности МК от тактовой частоты процессорного ядра

Как видно из графиков, производительность растет пропорционально тактовой частоте, но при достижении таких ее значений, при которых требуются дополнительные циклы задержки, происходит падение производительности. Таким образом, корректное повышение тактовой частоты процессорного ядра не всегда приводит к повышению производительности. Например, при повышении тактовой частоты процессора STM32F103 с 48 до 49 МГц, наоборот, произойдет снижение производительности, а ее дальнейший рост начнется только с 63 МГц. Значения тактовых частот и требуемых дополнительных задержке ускорителя флэш-памяти программ приведены в таблице 3.

Таблица 3. Число дополнительных циклов задержки ускорителя при различных тактовых частотах

Число дополнительных циклов задержки ускорителя

STM32F103

1986ВЕ91Т*

LPC1768

0

до 24 МГц

до 25 МГц

до 20 МГц

1

до 48 МГц

до 50 МГц

до 40 МГц

2

до 72 МГц

до 75 МГц

до 60 МГц

3

до 100 МГц

до 80 МГц

4

до 100 МГц

5

до 120 МГц

*Предварительные расчетные данные.

Выводы

Очевидно значительное превосходство МК серии LPC17xx. Как видно из технической документации, в первую очередь это достигнуто за счет ускорителя флэш-памяти. Так, в микроконтроллере STM32F103 в ускорителе присутствуют всего два 64-бит регистра ранее выбранных значений. В МК 1986ВЕ91 на этапе разработки была реализована схема с одним 128-бит регистром ранее выбранных значений, аналогичная представленной на рисунке 1 структуре. Этот ускоритель имел характеристики, не намного превосходившие характеристики МК STM32F103. Однако с выходом на рынок МК LPC17хх стал очевиден достижимый потенциал производительности. В условиях жестких рамок уже готового проекта, находящегося на стадии разработки топологии, было принято решение о переработке ускорителя флэш-памяти с целью повышения его производительности. В результате в МК 1986ВЕ91 был реализован ускоритель, представленный на рисунке 5.

Рис 5. Структура ускорителя флэш-памяти МК серии 1986ВЕ91

В первую очередь, в ускорителе были разнесены в отдельные регистры ранее выбранные инструкции и данные, хранимые в коде программы. Это позволило не сбивать последовательность выборки инструкций при обращении к данным. Кроме того, было увеличено число хранимых в ускорителе ранее выбранных значений, а для инструкций и данных реализовано по два 128-бит регистра. Эти изменения позволили значительно повысить производительность МК серии 1986ВЕ91, но не позволили достичь показателей микросхем серии LPC17xx. Как следует из документации на МК NXP, в ускорителе флэш-памяти реализовано восемь 128-бит регистров ранее выбранных значений.
К сожалению, в связи с жесткими временными рамками в разработке микроконтроллеров серии 1986ВЕ91 дальнейшие работы по повышению производительности ускорителя флэш-памяти были остановлены, но в новой серии МК 1901ВЦ1 будут учтены все выявленные недостатки и реализованы новые идеи, позволяющие значительно повысить производительность.

Cortex-M3 – Arm®

Серия процессоров Cortex-M позволяет разработчикам создавать недорогие решения с ограниченным энергопотреблением для широкого спектра устройств. Оптимальный баланс между площадью, производительностью и мощностью делает Cortex-M3 идеальным решением для таких продуктов, как микроконтроллеры, автомобильные кузовные системы, беспроводные сети и датчики.

Особенности и преимущества

Широкая поддержка 

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

 Низкое энергопотребление

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

Развертывание на ПЛИС

Доступен по цене 0 долларов США для использования в проектах FPGA, прототипах и коммерческих проектах.

Технические характеристики

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

Дополнительные сведения см. в ресурсах для разработчиков.

Ключевая документация

Варианты использования

Где воплощаются в жизнь инновации и идеи

Умные домашние устройства

Все более интеллектуальные устройства и расширенные уровни взаимодействия требуют 32-разрядной производительности без ущерба для стоимости или мощности. Cortex-M3 используется во многих устройствах умного дома, обеспечивая идеальный баланс производительности, стоимости и простоты программирования, необходимых для устройств умного дома.

Узнать больше

Приложения Интернета вещей (IoT)

Процессор Cortex-M3 обеспечивает идеальный баланс между производительностью и энергопотреблением, что позволяет использовать целый ряд подключенных к Интернету устройств.

Узнать больше

Поговорите с экспертом

Узнайте, как процессор Arm Cortex-M3 может повысить энергоэффективность ваших самых маленьких приложений.

Свяжитесь с нами

Доступно в Arm Flexible Access

Чтобы получить неограниченный доступ к этому продукту и другим полезным IP-адресам Arm, посетите сайт Arm Flexible Access. Начните свой проект с правильного пути с помощью ведущего в мире портфолио дизайна SoC. Этот IP-адрес ЦП доступен в Arm Flexible Access по цене 0 долларов США.

Узнать больше

Сопутствующие продукты и услуги

Ознакомьтесь с дополнительными опциями и функциями

Виртуальное оборудование Arm

Виртуальное оборудование Arm предоставляет модели процессоров, систем и оборудования сторонних производителей для разработчиков приложений и разработчиков SoC для создания и тестирования программного обеспечения без оборудования, ускорение разработки IoT и ML.

Подробнее

Arm Development Studio

Комплексная среда разработки программного обеспечения для всех систем на базе Arm, включая Arm Compiler, отладчики, IDE, инструменты анализа производительности, модели и промежуточное ПО.

Узнать больше

Corstone-101

Пакет Arm Corstone-101 содержит предварительно проверенную подсистему и системный IP-адрес, чтобы помочь сделать разработку безопасных пользовательских SoC для IoT и встроенных приложений быстрой и эффективной.

Узнать больше

Архитектура и технологии

Основа кремниевого успеха  

Микросхемы, архитектуры устройств и технологии на базе Arm управляют производительностью всего, что делает возможной современную жизнь — от смартфонов до сельскохозяйственных датчиков и от медицинских инструментов до серверов.

Ресурсы Cortex-M3

Справочник

  • Разработка системы на кристалле с процессорами Arm Cortex-M

Блог

  • Гибкий подход к повышению функциональной безопасности ЦП

Практический пример

  • От концепции до воплощения в жизнь за 6 месяцев с помощью DesignStart
  • Стартап использует Arm DesignStart Pro для проверки концепции и получает финансирование в размере 16 млн долларов

Инструменты

  • Обзоры дизайна

Тренировка

  • Опции для тренировки рук

Событие

  • Онлайн-семинар: Интеграция программного IP-процессора Arm Cortex-M в ПЛИС

LPC1345FHN33|Arm Cortex-M3|32-битный микроконтроллер | NXP Semiconductors

1-5 из 23 аппаратные предложения

Сортировать поРелевантностиОт А до ЯОт Я до А

  • Тестовые принадлежности и отладчик

    J-Link PLUS

    Отладочный датчик JTAG/SWD с интерфейсом USB. Основанный на 32-разрядном ЦП RISC, он может на высокой скорости обмениваться данными с поддерживаемыми целевыми ЦП. J-Link используется по всему миру в т…

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    Arm ULINKpro

    Модуль отладки и трассировки ULINKpro подключает USB-порт вашего ПК к целевой системе и позволяет вам программировать, отлаживать и анализировать ваши приложения, используя его уникальные возможности.

    Платиновый партнер Arm

  • Тестовые принадлежности и отладчик

    Flasher Secure

    Flasher Secure — это система программирования массового производства, способная защитить интеллектуальную собственность поставщика независимо от места производства. Обеспечивает полный контроль над программой…

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    J-Link EDU

    Эмулятор J-Link EDU — это наш стандартный эмулятор J-Link в новом корпусе с маркировкой для учебных заведений. Он предназначен для использования в учебных целях и домашних любителей. Опора для…

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    J-Link BASE

    Усовершенствуйте свою IDE с помощью самого быстрого в мире отладочного зонда. Технология загрузки J-Link Flash обеспечивает производительность, очень близкую к максимально возможной скорости. Нет другого…

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    Flasher Compact

    Flasher Compact — это компактный двойник Flasher PRO, в первую очередь предназначенный для установки в производственные установки или автоматизированное испытательное оборудование (ATE), где производственное пространство …

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    Flasher Hub

    Flasher Hub управляет несколькими Flasher Compact, чтобы они программировались одновременно. Можно подключить до 24 флешеров, чтобы создать один мощный групповой программатор для…

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    Flasher ARM

    Внутрисхемный Flash-программатор на основе семейства J-Link для производства и обслуживания в полевых условиях. Предлагает самые быстрые доступные алгоритмы флэш-памяти, несколько вариантов интеграции (RS232…

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    J-Trace PRO Cortex-M

    J-Trace PRO для Cortex-M устанавливает новый стандарт для датчиков трассировки. Он обеспечивает непрерывную трассировку потоковой передачи, снимая ограничения, связанные с внутренними буферами и медленной передачей данных…

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    CYCLONE FX

    Расширенный программатор Cyclone. Модели поддерживают высокоскоростное внутрисхемное программирование флэш-памяти, отладку и тестирование многих 8-/16-/32-разрядных микроконтроллеров NXP. Повышенная скорость/безопасность/хранилище…

    P&E Microcomputer Systems, Inc Золотой партнер

  • Тестовые принадлежности и отладчик

    TRACE32 Отладчик JTAG/SWD для A

    Компания Lauterbach имеет опыт создания средств разработки микропроцессоров мирового класса с 1979 года. TRACE32 поддерживает такие технологии, как JTAG, SWD, NEXUS или ETM со встроенной отладкой. Золотой партнер Лаутербаха

  • Тестовые принадлежности и отладчик

    J-Link ULTRA+

    Создан на базе J-Link для дальнейшего улучшения отладки. J-Link ULTRA+ в три раза быстрее стандартного J-Link со скоростью загрузки 3 МБ/с …

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    Arm ULINKplus

    ULINKplus сочетает в себе изолированное отладочное соединение, измерение мощности и ввод-вывод для автоматизации тестирования. Это дает вам представление о функциях, времени и энергопотреблении вашего электронного…

    Платиновый партнер Arm

  • Тестовые принадлежности и отладчик

    USB Multilink Universal FX

    Multilink Universal FX — высокоскоростной отладочный пробник BDM/JTAG для Kinetis, LPC, S32, Qorivva MPC5xxx, MPC5xx/8xx, ColdFire, HC(S)12(X), S12Z, HCS08, RS08, DSC, 683xx и HC1…

    P&E Microcomputer Systems, Inc Золотой партнер

  • Тестовые принадлежности и отладчик

    ЦИКЛОН LC

    Программатор производства. Модели поддерживают высокоскоростное и недорогое внутрисхемное программирование флэш-памяти, отладку и тестирование многих 8-/16-/32-разрядных систем NXP. Автономный или управляемый хостом…

    P&E Microcomputer Systems, Inc Золотой партнер

  • Тестовые принадлежности и отладчик

    Flasher Portable PLUS

    Портативный автономный программатор Flash для встроенной и внешней флэш-памяти. Flasher Portable PLUS — это инструмент для программирования микроконтроллеров с питанием от батареи,…

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    J-Trace PRO Cortex

    J-Trace PRO Cortex обеспечивает поддержку микроконтроллеров на базе Cortex-A/R/M. Интерфейс SuperSpeed ​​USB 3.0 J-Trace PRO Cortex обеспечивает непрерывную потоковую трассировку через…

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    J-Link PRO

    J-Link PRO — это расширенная версия SEGGER J-Link. Этот эмулятор поддерживает устройства ARM/Cortex. Он имеет интерфейс Ethernet в дополнение к интерфейсу USB. Это …

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    J-Link WiFi

    Отладочный датчик JTAG/SWD с интерфейсом WiFi. Основанный на 32-разрядном ЦП RISC, он может на высокой скорости обмениваться данными с поддерживаемыми целевыми ЦП. J-Link используется по всему миру в …

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    USB Multilink Universal

    USB Multilink Universal — это универсальный пробник отладки BDM/JTAG для NXP Kinetis, LPC, i.MX RT, S32, HCS08, HC(S)12(X), S12Z, RS08, ColdFire V1/+V1, ColdFire V2-4*, Qori…

    P&E Microcomputer Systems, Inc Золотой партнер

  • Тестовые принадлежности и отладчик

    Flasher PRO

    Flasher PRO — это программатор SEGGER «почти любой» для микроконтроллеров, систем на кристалле и флэш-памяти (Q)SPI.

    SEGGER Microcontroller GmbH Золотой партнер

  • Тестовые принадлежности и отладчик

    Arm DSTREAM

    Семейство высокопроизводительных отладочных и трассировочных зондов Arm DSTREAM позволяет Arm Development Studio отлаживать все устройства на базе Arm через различные интерфейсы.

    Платиновый партнер Arm

  • Тестовые принадлежности и отладчик

    Flasher ATE

    Flasher ATE идеально подходит для крупносерийного массового производства.

    SEGGER Microcontroller GmbH Золотой партнер

Показать все

Чтобы найти полный список наших партнеров, поддерживающих этот продукт, см. Партнерская торговая площадка.

Сводка набора инструкций Cortex M3

Процессор реализует набор инструкций ARMv7-M Thumb. В таблице 1 показаны инструкции Cortex-M3 и количество их циклов. Счетчики циклов основаны на системе с нулевыми состояниями ожидания. В рамках синтаксис ассемблера, в зависимости от операции, поле можно заменить одним из следующих вариантов:

Для краткости не все загрузки и показаны режимы адресации магазина. См. Справочник по архитектуре ARMv7-M. Руководство для получения дополнительной информации. Таблица 1 использует следующие сокращения в столбце Циклы:

Р — количество циклов, необходимое для заполнения трубопровода. Это колеблется от 1 до 3 в зависимости от выравнивания и ширины целевой инструкции, а также от того, процессору удается угадать адрес заранее.

Б — количество циклов, необходимых для выполнения барьерной операции. Для DSB и DMB, минимальное количество циклов равно нулю. Для ИСБ, минимальное количество циклов эквивалентно количеству, необходимому для заправка трубопровода.

Н — количество регистров в списке регистров для загрузки или сохранения, включая ПК или ЛР.

Эксплуатация

Описание

Сборщик

Циклы

Переместить

Регистр

MOV Rd,

1

16-битное немедленное

MOVW Rd, #

1

Сразу в топ

MOVT Rd, #

1

На ПК

МОВ ПК,

руб.

1 + Р

Добавить

Добавить

ДОБАВИТЬ Rd, Rn,

1

Добавить на ПК

ДОБАВИТЬ ПК, ПК, Rm

1 + Р

Добавить с переносом

АЦП Rd, Rn,

1

Адрес формы

ADR Rd, <этикетка>

1

Вычесть

Вычесть

SUB Rd, Rn,

1

Вычесть с заимствованием

SBC Rd, Rn,

1

Реверс

RSB Rd, Rn,

1

Умножить

Умножить

МУЛ Рд, Рн, Рм

1

Умножить накопить

MLA Rd, Rn, Rm

2

Умножить вычесть

MLS Rd, Rn, Rm

2

Длинная подпись

МАЛЕНЬКИЙ RdLo, RdHi, Rn, Rm

от 3 до 5 [а]

Длинный без знака

UMULL RdLo, RdHi, Rn, Rm

от 3 до 5 [а]

Накопить 9 с длинной подписью0003

МАЛЫЙ RdLo, RdHi, Rn, Rm

от 4 до 7 [а]

Длинное беззнаковое накопление

УМЛАЛ RdLo, RdHi, Rn, Rm

от 4 до 7 [а]

Разделить

Подпись

SDIV Rd, Rn, Rm

от 2 до 12 [б]

Без знака

UDIV Rd, Rn, Rm

от 2 до 12 [б]

Насыщенный

Подпись

SSAT Rd, #,

1

Без знака

USAT Rd, #,

1

Сравнить

Сравнить

CMP Rn,

1

Отрицательный

CMN Rn,

1

Логический

И

И Рд, Рн, <оп2>

1

Эксклюзив ИЛИ

EOR Rd, Rn,

1

ИЛИ

ORR Rd, Rn,

1

ИЛИ НЕ

ОРН Рд, Рн,

1

Бит очищен

БИК Rd, Rn,

1

Переместить НЕ

MVN Rd,

1

И тест

ТСТ Рн,

1

Эксклюзивный тест ИЛИ

TEQ Rn,

 

Смена

Логический сдвиг влево

LSL Rd, Rn, #

1

Логический сдвиг влево

LSL Rd, Rn,

рупий

1

Логический сдвиг вправо

LSR Rd, Rn, #

1

Логический сдвиг вправо

ЛСР Рд, Рн, Рс

1

Арифметический сдвиг вправо

ASR Rd, Rn, #

1

Арифметический сдвиг вправо

ASR Rd, Rn,

рупий

1

Поворот

Повернуть вправо

ROR Rd, Rn, #

1

Повернуть вправо

РОР Рд, Рн, Рс

1

С удлинителем

RRX Рд, Рн

1

Кол-во

Ведущие нули

CLZ Rd, Rn

1

Загрузка

Слово

LDR Rd, [Rn, ]

2 [с]

На ПК

LDR ПК, [Rn, ]

2 [с] + Р

Полуслово

LDRH Rd, [Rn, ]

2 [с]

Байт

LDRB Rd, [Rn, ]

2 [с]

Подписанное полуслово

ЛДРШ Рд, [Рн, <оп2>]

2 [с]

Байт со знаком

LDRSB Rd, [Rn, ]

2 [с]

Слово пользователя

LDRT Rd, [Rn, #]

2 [с]

Пользовательское полуслово

LDRHT Rd, [Rn, #]

2 [с]

Пользовательский байт

LDRBT Rd, [Rn, #]

2 [с]

Подписанное пользователем полуслово

ЛДРШТ Rd, [Rn, #]

2 [с]

Подписанный пользователем байт

LDRSBT Rd, [Rn, #]

2 [с]

Относительный ПК

LDR Rd,[PC, #]

2 [с]

Двойное слово

LDRD Rd, Rd, [Rn, #]

1 + Н

Несколько

LDM Rn, {}

1 + Н

Несколько, включая ПК

LDM Rn, {, ПК}

1 + Н + П

Магазин

Слово

STR Rd, [Rn, ]

2 [с]

Полуслово

STRH Rd, [Rn, ]

2 [с]

Байт

STRB Rd, [Rn, ]

2 [с]

Подписанное полуслово

STRSH Rd, [Rn, ]

2 [с]

Байт со знаком

STRSB Rd, [Rn, ]

2 [с]

Слово пользователя

STRT Rd, [Rn, #]

2 [с]

Пользовательское полуслово

STRHT Rd, [Rn, #]

2 [с]

Пользовательский байт

STRBT Rd, [Rn, #]

2 [с]

Подписанное пользователем полуслово

STRSHT Rd, [Rn, #]

2 [с]

Подписанный пользователем байт

STRSBT Rd, [Rn, #]

2 с

Двойное слово

STRD Rd, Rd, [Rn, #]

1 + Н

Несколько

STM Rn, {}

1 + Н

Толчок

Нажмите

PUSH {<список>}

1 + Н

Push с регистром ссылок

PUSH {<список>, LR}

1 + Н

Поп

Поп

POP {<список>}

1 + Н

Поп и возврат

POP {<реглист>, ПК}

1 + Н + П

Семафор

Эксклюзивная загрузка

LDREX Rd, [Rn, #]

2

Загрузить исключительную половину

LDREXH Rd, [Rn]

2

Загрузить эксклюзивный байт

LDREXB Рд, [Рн]

2

Эксклюзивный магазин

STREX Rd, Rt, [Rn, #]

2

Магазин эксклюзивной половины

STREXH Rd, Rt, [Rn]

2

Сохранить исключительный байт

STREXB Rd, Rt, [Rn]

2

Прозрачный эксклюзивный монитор

КЛРЕКС

1

Филиал

Условный

B <метка>

1 или 1 + Р [д]

Безусловный

B <метка>

1 + Р

Со ссылкой

BL <метка>

1 + Р

С обменом

BX Рм

1 + Р

С ссылкой и обменом

BLX Рм

1 + Р

Ветвь, если ноль

CBZ Rn, <метка>

1 или 1 + Р [д]

Ветвь, если не ноль

CBNZ Rn, <метка>

1 или 1 + Р [д]

Ветвь таблицы байтов

ТББ [Рн, Рм]

2 + Р

Ветвь таблицы полуслов

ТБХ [Rn, Rm, LSL#1]

2 + Р

Изменение состояния

Вызов диспетчера

SVC#<имм>

Если-то-иначе

IT. .. <конд>

1 [д]

Отключить прерывания

CPSID <флаги>

1 или 2

Разрешить прерывания

CPSIE <флаги>

1 или 2

Чтение специального регистра

MRS Rd,

1 или 2

Запись специального регистра

MSR , РН

1 или 2

Точка останова

БКПТ #<имм>

Расширение

Подписанное полуслово в слово

SXTH Rd,

1

Байт со знаком в слово

SXTB Rd,

1

Беззнаковое полуслово

UXTH Rd,

1

Байт без знака

UXTB Rd,

1

Битовое поле

Извлечение без знака

UBFX Rd, Rn, #, #

1

Выписка, подписанная

SBFX Rd, Rn, #, #

1

Очистить

BFC Rd, Rn, #, #

1

Вставка

BFI Rd, Rn, #, #

1

Реверс

байта в слове

РЭВ Рд, Рм

1

байта в обоих полусловах

РЭВ16 Рд, Рм

1

Нижнее полуслово со знаком

РЕВШ рд, кв. м

1

Бит в слове

РБИТ роад, рм

1

Подсказка

Отправить событие

СЭВ

1

Дождитесь события

ВФЭ

1 + В

Ожидание прерывания

ВДИ

1 + В

Нет операции

НОП

1

Барьеры

Синхронизация инструкций

ISB

1 + В

Память данных

ДМБ

1 + В

Синхронизация данных

DSB <флаги>

1 + В

[а] Инструкции UMULL, SMULL, UMLAL и SMLAL используют досрочное завершение в зависимости от размера исходные значения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *