Arm7: Микроконтроллеры с ядром ARM7 | Analog Devices

Содержание

DRIVE-CLIQ ВСПОМОГАТЕЛЬНОЕ УСТРОЙСТВО DQ100 С ARM7 ПРОЦЕССОР И ВСТРОЕННЫЙ PHY SINGLE TRAY 60 ШТ

Код товара 6255070

Артикул 6FX2001-5SD11-0AA0

Страна Германия

Наименование DRIVE-CLIQ ВСПОМОГАТЕЛЬНОЕ УСТРОЙСТВО DQ100 С ARM7 ПРОЦЕССОР И ВСТРОЕННЫЙ PHY SINGLE TRAY 60 ШТ

Упаковки 60 шт

Сертификат  

Тип изделия Устройство

Характеристики

Код товара 6255070

Артикул 6FX2001-5SD11-0AA0

Страна Германия

Наименование DRIVE-CLIQ ВСПОМОГАТЕЛЬНОЕ УСТРОЙСТВО DQ100 С ARM7 ПРОЦЕССОР И ВСТРОЕННЫЙ PHY SINGLE TRAY 60 ШТ

Упаковки 60 шт

Сертификат  

Тип изделия Устройство

Всегда поможем:
Центр поддержки

и продаж

Скидки до 10% +
баллы до 10%

Доставка по городу
от 150 р.

Получение в 150
пунктах выдачи

NXP приобрела линейку ARM7 и ARM9 микроконтроллеров Sharp

NXP приобрела линейку ARM7 и ARM9 микроконтроллеров Sharp

NXP подписала соглашение о приобретении микроконтроллеров BlueStreak от Sharp с ядрами ARM7 и ARM9, расширив свою продуктовую линейку сразу на 9 наименований. Теперь в линейке продуктов NXP стало 11 наименований ARM микроконтроллеров со встроенным контроллером LCD и с поддержкой мультимедийных возможностей.

Как известно, Sharp фокусирует свои микроконтроллерные ядра на применениях, связанных с использованием LCD индикаторов. Это обстоятельство хорошо дополняет возможности существующих микроконтроллеров, разработанных в NXP.

Кратко технические параметры микроконтроллеров BlueStreak от Sharp представлены в таблице.

Серия LH75xxx содержит 32KB встроенную SRAM память, LCD контроллер (color and grayscale), три UARTs, SPI, CAN 2.0B, три 16-bit счётчика/таймера, A/D преобразователь, watchdog таймер и low voltage detector. Эти микроконтроллеры представляют собой прекрасное решение для недорогих разработок, требующих интегрированного LCD контроля.

Серия LH79xxx включает 32-bit ARM720T ядро с 8KB cache, MMU, цветным LCD контроллером и 32KB SRAM памятью. Также имеется богатая периферия — DMA контроллер, последовательные и параллельные интерфейсы, поддержка инфракрасного порта, счётчики/таймеры, часы реального времени, watchdog таймер, ШИМ модуляторы и встроенная система ФАПЧ.

Подробнее см. line.card.pdf, lh70000.arm7.pdf или http://www.standardics.nxp.com/products/lh70000/.

  • Рекомендуемые области применения:— промышленный контроль;

    — портативные компьютеры, PDA, GPS и прочие интеллектуальные устройства;

    — медиа плееры и др. подобные применения;

    — touchscreen/Graphics LCD индикаторы;

    — портативные приборы;

    — медицинская техника;

    — принтеры, ксероксы, экранные панели систем безопасности.

См. также фокусные применения

Дополнительную информацию можно запросить в «МТ-систем»

Кейл против GCC для ARM7?



Как Кейл сравнивается с GCC для разработки ARM7? Я нахожусь в процессе выбора консультантов hw для проекта среднего размера, и некоторые используют keil, а некоторые-gcc. Я хотел бы знать, какие готы связаны с тем или иным вариантом…

gcc embedded arm keil arm7
Поделиться Источник c0m4     04 августа 2009 в 09:01

5 ответов


  • Нет архитектур для компиляции (ARCHS=arm6 arm7, VALID_ARCHES=armv7)

    Я постоянно получаю ниже ошибки при создании приложения: No architectures to compile for (ARCHS=arm6 arm7, VALID_ARCHS=armv7). Я попытался добавить arm6 arm7 в архитектуру, но это не сработало. Я тоже пробовал только arm6 и arm7 , но все равно нет. Кроме того, я устанавливаю цель deployment на 4.3…

  • GCC 3.4 против 4.4 для C++ на основе MEX файлов?

    Что такое trade-offs/concerns для использования gcc 3.4 против 4.4 для компиляции современных файлов Matlab MEX? Мне нужно скомпилировать некоторый код off-the-shelf C++ ( kdtree ) в виде файла MEX для использования с MATLAB (R2012a) под Fedora v16. Я столкнулся с проблемами символов, используя…



8

Между ними очень мало различий с точки зрения кодирования/разработки. Единственное, что, я думаю, вам следует учитывать, не относится конкретно к этим компиляторам. Поддержка :


  • Сможете ли вы поддерживать программное обеспечение, если у вас нет доступа к компилятору Keil, или это будет незначительная стоимость?
  • Кроме того, какое программное обеспечение debughardware/JTAG поддерживается и какова будет стоимость, если вам нужно будет его получить?

  • Какова будет стоимость , если вам придется переходить с одного компилятора на другой из-за необходимости переключить разработчиков позже?

Если вы не очень чувствительны к затратам, я думаю, что реальный вопрос заключается в том, кто будет делать лучшую работу, поскольку компилятор будет незначительной проблемой.

Поделиться Gerhard     04 августа 2009 в 12:43



6

Должна быть возможность структурировать код для использования обоих компиляторов. Атрибуты, такие как «packed», могут быть макросами, чтобы код был доволен и тем, и другим. Переместите сведения об оборудовании на более низкие уровни и настройте аппаратные карты во время выполнения, а не во время компиляции. Если у вас должны быть отдельные версии кода Kiel и GCC, поместите их в отдельные файлы и настройте, какой из них используется с файлом gcc make или файлом проекта Kiel.

Одна проблема, которую мне еще предстоит решить, — это ассемблерный код. Киль использует armasm, в то время как gcc использует as. Похоже, у них очень разные форматы исходного кода. Еще одна причина избегать ассемблера, если вы можете.

Преимущество использования GCC заключается в том, что вы можете ориентироваться на платформы, отличные от ARM, что идеально подходит для моделирования вашего приложения на платформе с гораздо лучшими инструментами разработки (например, valgrind под x86 linux). На самом деле, это подход, который должно использовать каждое ARM-целевое приложение. Сначала разработайте на x86, затем перенесите на ARM.

Есть также стоимость того, чтобы оставаться в курсе событий с Килем. Как только место, которое я знаю, застряло на RVDK 2.1 (2002?), Потому что стоимость обновления до последней версии для трех разработчиков непомерно высока.

Я бы также добавил, что gcc & pedantic будет вытряхивать предупреждения и ошибки в вашем коде намного лучше, чем наша (по общему признанию, древняя) версия Киля.

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

Поделиться Craig Mc     20 ноября 2011 в 23:37



4

Если я правильно помню, Киль теперь принадлежит ARM. ARM компиляторы днем и ночью лучше, чем gcc, для создания хорошего кода. Кажется, я помню, как Кейл включил сокращенную, бесплатную или любую другую версию rvct. Поэтому мой вопрос заключается в том, что гораздо более быстрый, чистый и лучший код стоит использовать в коммерческом решении, когда gcc существует и хорошо используется? Я бы пошел с gcc, если только вы не находитесь в ситуации кризиса производительности и не хотите мысленно переводить всю информацию на основе gcc, свободно доступную в Сети, на ваши коммерческие инструменты и обратно. В целом, использование gcc, вероятно, является лучшим путем, учитывая, что за полем поиска Google для Киля, вероятно, скрывается огромное количество информации, но объем знаний и информации для решений на основе gcc затеняет это.

Если консультанты используют один инструмент для выполнения начальной работы по проекту для вас, а затем в конце они передают работу, вы, вероятно, захотите иметь решение на основе gcc (это не означает, скажем, vxworks gcc или даже code sourcery gcc, но общее решение gcc), потому что, без сомнения, вам или кому-то еще, кого вы нанимаете, придется собрать эту массу и работать с ней, а с gcc вы, скорее всего, найдете кого-то, кто захочет и сможет.

Поделиться old_timer     04 августа 2009 в 14:16


  • Программирование arm7 usb

    мы разрабатываем устройство sendor с arm7 (текущий: LPC2368). это устройство пробует mv signal,A/D, и должно посылать эти сигнальные данные в PC. (непрерывно) в то же время PC нужно отправить команду на arm7 (например, получить температуру, состояние управления и т. д..) интерфейс RS232 слишком…

  • Обновление компилятора gcc / другое исправление для обратной совместимости

    Для проекта мне нужно обновить приложение на более старом оборудовании, но используемая версия kernel очень старая. и компиляция текущего приложения-это боль. В целом, для проекта мы использовали доску x86 с 2.6.32 kernel.(Debian) компиляция приложения с gcc 4.4.5. Лет спустя мы свернули с cpu на…



1

Мы используем платформу Keil и очень довольны ее производительностью и оптимизацией. Пару лет назад я провел несколько стандартных тестов, и они были довольно хорошими. Еще одним соображением является поддержка, и до сих пор у Кейла было очень хорошее время отклика и относительно хорошая обратная связь по некоторым сложным вопросам.

FYI, если в вашем проекте будет использоваться Keil RTOS и у вас возникнут какие-либо вопросы по этому поводу, исходный код доступен для покупки.

Поделиться Answerguru     11 августа 2009 в 17:16



1

Основным преимуществом коммерческого решения является поддержка меня, если у вас возникнут проблемы с компилятором или библиотеками.
С открытым исходным кодом все в порядке, когда вы используете аппаратное обеспечение основного потока (в случае gcc = x86). Большинство проблем компилятора или библиотек, как правило, будут исправлены очень скоро сообществом.
Если вы разрабатываете на (возможно, экзотической) встроенной платформе, вы вскоре можете почувствовать себя довольно одиноким, если у вас возникнут какие-либо проблемы с цепочкой инструментов.

Поделиться chrmue     04 августа 2009 в 13:03


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


Размер приложения велик при компиляции с архитектурами arm7, arm7s и arm64

Когда я компилирую свое приложение в Xcode с допустимыми архитектурами arm7, arm7s & arm64, файл .ipa большой (10 MB), когда я компилирую его для двоичного файла arm7, он маленький(5.8 MB). Могу…


Компилятор с89 против С99 GCC

Есть ли разница, если я скомпилирую следующую программу с использованием c89 против c99? Я получаю тот же результат. Есть ли на самом деле разница между ними? #include <stdio.h> int main () {…


Как вызвать функцию-член c++ из gcc встроенного arm7 assembly

У меня есть следующий фрагмент кода, который работает на x86, и мне нужно преобразовать его в gcc/arm7 inline assembly. Кажется, что замена стека была бы простым делом перемещения указателя стека в…


Нет архитектур для компиляции (ARCHS=arm6 arm7, VALID_ARCHES=armv7)

Я постоянно получаю ниже ошибки при создании приложения: No architectures to compile for (ARCHS=arm6 arm7, VALID_ARCHS=armv7). Я попытался добавить arm6 arm7 в архитектуру, но это не сработало. Я…


GCC 3.4 против 4.4 для C++ на основе MEX файлов?

Что такое trade-offs/concerns для использования gcc 3.4 против 4.4 для компиляции современных файлов Matlab MEX? Мне нужно скомпилировать некоторый код off-the-shelf C++ ( kdtree ) в виде файла MEX…


Программирование arm7 usb

мы разрабатываем устройство sendor с arm7 (текущий: LPC2368). это устройство пробует mv signal,A/D, и должно посылать эти сигнальные данные в PC. (непрерывно) в то же время PC нужно отправить…


Обновление компилятора gcc / другое исправление для обратной совместимости

Для проекта мне нужно обновить приложение на более старом оборудовании, но используемая версия kernel очень старая. и компиляция текущего приложения-это боль. В целом, для проекта мы использовали…


Неподдерживаемый компилятор ‘GCC 4.2’, выбранный для архитектуры ‘armv7’

Только что установил новую версию XCode 4.2 на свой Mac. Я попытался скомпилировать свой проект, но получил следующую ошибку: Неподдерживаемый компилятор ‘GCC 4.2’, выбранный для архитектуры ‘armv7’…


FastPDFKit строит для симулятора, но показывает ошибку дубликата символа для arm7

У меня есть приложение ios, которое использует FastPDFKit. Он строится для симулятора, но показывает ошибку дубликата символа для arm7 Есть идеи? Мне нужна помощь очень быстро. Заранее спасибо.


iOS создание универсальной библиотеки — для i386 и arm7

Мы строим библиотеку для использования в разработке iOS. Мы можем создать либо библиотеку i386 для симулятора, либо библиотеку arm7 для аппаратного устройства. Как и сейчас, нам нужно иметь два…

Отечественные встраиваемые ARM7-модули от компании «Терраэлектроника»

В статье представлены встраиваемые модули от компании «Терраэлектроника» на основе нового ARM7-микроконтроллера LPC2478 компании NXP. Модули представляют собой завершенные решения, готовые для установки в изделия в качестве управляющих и измерительных микроконтроллерных систем. Модули используют преимущества микроконтроллера LPC2478, имеющего в своем составе контроллер TFT-дисплея. Младшая модель, TE-LPC2478LCD, включает микроконтроллер, внешнюю память, коммуникационные интерфейсы. Старшая модель, TE-LPC2478ADC, кроме перечисленного включает блоки 24-разрядного АЦП и 16-разрядного ЦАП. Обе модели комплектуются 3,5-дюймовым TFT-дисплеем.

Современный этап развития микроконтроллеров связан с появлением широкого круга задач, требующих увеличения разрядности процессорного ядра до 32 и перехода на языки программирования высокого уровня. Все чаще прикладные задачи решаются с помощью операционных систем реального времени, функционирующих на микроконтроллерных платформах. Высокопроизводительные микроконтроллеры с архитектурой ARM занимают большой сегмент рынка 32-разрядных приборов, поскольку обеспечивают высокую скорость вычислений и имеют большой набор периферийных блоков.
Компания NXP на основе архитектуры ARM производит несколько семейств микроконтроллеров. Ее изделия отличаются повышенной тактовой частотой, быстрой выборкой кода из внутренней флэш-памяти, оптимизированной структурой внутренних шин.

В 2008 г. компания NXP выпустила на рынок микроконтроллер LPC2478, который стал старшей моделью в семействе ARM7. Его важным преимуществом является наличие контроллера LCD, который поддерживает статические дисплеи с разрешением до 1024×768 пикселов, монохромные с 15-ю градациями серого и TFT-панели с 24-разрядным цветом. Среди набора периферийных блоков имеются 8-канальный 10-разрядный АЦП и 10-разрядный ЦАП. В набор интерфейсов входят порт USB Device/Host/OTG, порт Ethernet 10/100 с прямым доступом к памяти, четыре порта UART, два порта CAN, три порта I2C, порты SPI, SSP, I2S.

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

При разработке модулей на основе микроконтроллера LPC2478 мы руководствовались тезисом, что их функциональный состав и конструктивное исполнение должны определяться технологией проектирования встраиваемой микроконтроллерной системы, а также назначением и особенностями целевого (target) микроконтроллера.

Технология проектирования микроконтроллерных систем на основе встраиваемых модулей предусматривает предварительное макетирование аппаратной компоненты с использованием серийного модуля. Наиболее сложный и быстродействующий фрагмент аппаратуры в отлаженном виде используется и в макете и далее при производстве системы. Таким образом, можно применять современную элементную базу с высокими тактовыми частотами и в микроминиатюрных корпусах. Отлаженный проект включает описание (внешние спецификации) модуля, принципиальную схему аппаратуры, не входящей в модуль, и текст программы. Далее необходимо разработать печатную плату, после монтажа и установки модуля повторно проверить работу всей системы. При наличии модуля с достаточным набором периферии и интерфейсных функций разработки дополнительной аппаратуры может и не потребоваться. В таком случае это самый быстрый и бюджетный способ создания микроконтроллерной системы.

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

Реализовать преимущества технологии встроенных модулей возможно, если определен их оптимальный функциональный состав. Набора функциональных блоков встроенного модуля должно быть достаточно для решения типовых задач предметной области. Увеличить этот набор можно с помощью плат расширения. Неоправданно большой набор функциональных блоков увеличивает стоимость, габариты и энергопотребление модуля. Встроенный микроконтроллерный модуль, в отличие от одноплатного компьютера (SBC — single board computer), должен иметь встроенные интерфейсы отладки.
На основе анализа значительного числа разнообразных микроконтроллерных средств в компании «Терраэлектроника» (www.terraelectronica.ru) разработана архитектура модульных встраиваемых систем на основе ARM-микроконтроллеров, а также два встраиваемых модуля на основе микроконтроллера LPC2478. Модули представляют собой завершенные решения, готовые для установки в изделия в качестве управляющих и измерительных микроконтроллерных систем. Модули используют преимущества микроконтроллера LPC2478, имеющего в своем составе контроллер TFT-дисплея.
Младшая модель, модуль TE-LPC2478LCD, включает микроконтроллер, внешнюю память, коммуникационные интерфейсы. Этот модуль в комплекте с дисплеем, имеющим сенсорный экран, дает возможность разработчику получить бюджетное законченное решение микроконтроллерной системы для интеграции в промышленные, торговые, бытовые терминалы и устройства, которые для управления требуют обработки в реальном времени (τ ~ 10 мс) большого количества (до 160-ти) входных и выходных цифровых сигналов, формирования цветных графических изображений и интерактивной связи с оператором. Например, большое количество выводов микроконтроллера позволяет с его помощью контролировать управление мощной нагрузкой, дублируя медленную встроенную защиту интеллектуальных ключей.

Старшая модель, TE-LPC2478ADC, кроме перечисленного выше включает блоки 24-разрядного АЦП и 16-разрядного ЦАП, а также порт Ethernet. Этот модуль в комплекте с дисплеем ориентирован на применение в научных, медицинских и торговых приборах, имеющих функции прецизионного измерения физических величин, обработки данных с использованием 32-разрядного процессора, формирования аналоговых сигналов и отображения параметров процессов на цветном графическом дисплее, обмене данными через интернет.
На рис. 1 представлен модуль TE-LPC2478LCD от компании «Терраэлектроника» с подключенным 3,5-дюймовым цветным графическим дисплеем.

Рис. 1. Модуль TE-LPC2478LCD от компании «Терраэлектроника»

На плате модуля установлен микроконтроллер LPC2478FBD208 в 208-выводном LQFP-корпусе, внешняя память, коммуникационные интерфейсы, слот карты SD/MMC, разъем для подключения 3,5-дюймового цветного графического дисплея. Модуль TE-LPC2478LCD ориентирован на работу с цветным графическим дисплеем Ph420240T, который имеет диагональ 3,5 дюйма и разрешение 320×240 пикселов (см. рис. 2).

Рис. 2. Дисплей с сенсорным экраном делает модуль TE-LPC2478LCD завершенным встраиваемым решением

Заметим, что при создании микроконтроллерного уст­ройства с цветным графическим дисплеем кроме необходимости иметь контроллер для управления стоит также за­дача монтажа миниатюрного высокоточного разъема (в данном случае 54-контактного с шагом 0,5 мм). Са­мо­сто­ятельная установка такого разъема на макетную плату для многих разработчиков представляет значительные сложности (см. рис. 3).

Рис.3. Подключить современный дисплей — не простая задача (разъем на 54 линии с шагом 0,5 мм)

Рис. 4. Микроконтроллер LPC2478 имеет 208 выводов, все его порты доступны на контактных площадках, в т.ч. интерфейсы UART, CAN, I2C, SPI, SSP, I2S

Слот карты SD/MMC является средством работы с накопителем данных большой емкости и часто устанавливается в интеллектуальных модулях графических дисплеев для хранения файлов изображений.
В качестве внешней памяти на плате установлена NOR флэш-память объемом 32 Мбит и SDRAM объемом
256 Мбит. Внешняя память используется при формировании изображений на дисплее и работе под управлением операционной системы реального времени.
Все порты микроконтроллера выведены на две трехрядные группы контактных площадок. На них, в т.ч. доступны интерфейсы UART, CAN, I2C, SPI, SSP, I2S микроконтроллера (см. рис. 4). При установке в отверстия контактных площадок штыревых разъемов эти разъемы могут служить конструктивными и электрическими соединителями для подключения мезонинных плат расширения, а также для установки самого модуля на материнскую плату.

Модуль имеет порт USB-device и мост USB-UART, который позволяет осуществлять загрузку кода программы во внутреннюю флэш-память микроконтроллера. Для целей комплексной отладки аппаратуры и разрабатываемого программного обеспечения имеется разъем JTAG принятого для ARM-микроконтроллеров формата 2×10 выводов (см. рис. 5).

Рис. 5. Модуль имеет порт microUSB, мост USB-USART и разъем отладочного интерфейса JTAG

На рис. 6 представлен модуль TE-LPC2478ADC от компании «Терраэлектроника». Этот встраиваемый модуль на основе микроконтроллера LPC2478FBD208 отличается наличием блока цифрового преобразования сигналов на основе 24-разрядного АЦП и 16-разрядного ЦАП, а также порта Ethernet.

Рис. 6. Модуль TE-LPC2478ADC от компании «Терраэлектроника»

В сочетании с цветным графическим 3,5-дюймомым дисплеем этот модуль дает законченное решение встраиваемой микроконтроллерной системы с развитыми функциями измерения параметров сигналов и формирования сигналов, интерактивного взаимодействия с оператором, отображения информации и обмена по скоростным каналам связи. Этот модуль также имеет развитые функции отладки: установлен разъем JTAG, загрузка кода программы во флэш-память микроконтроллера может быть выполнена через мост USB-UART.
На плате модуля установлен микроконтроллер LPC2478FBD208, внешняя память NOR флэш-память и SDRAM, порты Ethernet и microUSB, мост USB-UART, слот карты SD/MMC, блок цифрового преобразования сигналов, разъем дисплея.

Модуль TE-LPC2478ADC ориентирован на работу с цветным графическим дисплеем Ph420240T, который имеет диагональ 3,5 дюйма, разрешение 320×240 пикселов и сенсорный экран.

Рис. 7. Схема питания блока преобразования сигналов, 24-разрядный АЦП и 16-разрядный ЦАП

Блок цифрового преобразования сигналов включает 24-разрядный сигма-дельта АЦП ADS1271 компании Texas Instruments и 16-разрядный ЦАП AD5542 компании Analog Devices.
Преобразователь ADS1271 объединяет преимущества промышленных дельта-сигма АЦП, имеющих малый дрейф, с широкой полосой пропускания АЦП для аудиоприменений. Его характеристики: полоса пропускания 50 кГц, температурный дрейф напряжения смещения 1,8 мкВ/°C, соотношение сигнал/шум (SNR) до 109 дБ — обеспечивают новое качество измерений в медицинской, промышленной и автомобильной технике.

Разработчик может выбрать один из трех режимов работы преобразователя: оптимизированный по скорости (105 Квыб./с), разрешению (SNR 109 дБ) или потребляемой мощности (35 мВт).
Обмен с микроконтроллерной системой может осуществляться через интерфейс SPI или интерфейс с кадровой синхронизацией (FSSI — frame-sync serial interface).
Цифро-аналоговый преобразователь AD5542 имеет разрешение 16 разрядов, его выход не буферизован и допускает работу на нагрузку 60 кОм. Он имеет малое время установления выходного напряжения и малое энергопотребление от единственного источника питания 5 В.

Блок цифровой обработки сигналов имеет отдельное питание, топология этого фрагмента платы выполнена в соответствии с рекомендациями производителей элементной базы. Аналого-цифровой и цифро-аналоговый преобразователи подключены к микроконтроллеру через интерфейс SPI.

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

Для модулей TE-LPC2478 создан набор тестирующих программ, который используется при производстве. Исполняемые микроконтроллером коды программ передаются вместе с модулями разработчику. Применение тестирующих программ описано в документе «Руководство пользователя» каждого модуля. Таким образом, модули могут быть проверены как в процессе разработки системы, так и в процессе ее эксплуатации.

Модуль TE-LPC2478LCD разработан как основа набора аппаратных и программных средств. В состав аппаратных средств планируется включить сенсорную клавиатуру, радиомодуль, модуль на основе MEMS-микрофона, плату расширения на основе аудиодекодера и стерео-ЦАП. Конструктивное объединение аппаратных средств набора предусматривается на основе двух штыревых трехрядных разъемов, установленных в плату микроконтроллерного модуля. Возможна разработка и производство модулей расширения по спецификациям заказчиков.

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

Немного о архитектуре процессоров ARM7TDMI / Хабр

В последнее время я часто встречаю о самых разных устройствах, работающих на процессорах с архитектурой ARM. В этой статье я хочу начать рассказ о архитектуре процессоров ARM7TDMI (не путать с ARMv7). ARM7TMI — это довольно таки устаревшее семейство, но оно довольно таки широко используется в разных embedded устройствах. Так как моя работа очень плотно связанна с разработкой таких устройств — то я довольно неплохо ориентируюсь именно в этом семействе. Но если кому-то будет интересно — могу рассказать и о более новых семействах ARM.

Общее описание

Надо сказать, что ARM — это просто архитектура, на основании которой построено множество разных процессоров. У них может быть совершенно разная периферия, разные методы взаимодействия с периферией, разная частота и энергопотребление, но объединяет их одно — процессорное ядро ARM.

ARM7 с одной стороны довольно таки прост (особенно по сравнению с x86), с другой стороны — имеет большую производительность и меньшее энергопотребление. Но меньший набор команд и тот факт, что длинна команды фиксирована приводит к увеличению объема программ.

Отличия от x86

Надеюсь, многие из читающих эту статью хотя бы в общих чертах знают архитектуру x86 🙂

Чем же ARM7 отличается от x86?

Регистры

ARM имеет 32 регистра длинной 32 бита. На самом деле одновременно доступно только 16 из них. Остальные регистры переключается вместе с режимами процессора. Все регистры совершенно одноправны (сравните с x86, где даже регистры общего назначения имеют разные свойства). Правда один из регистров, r15, используется как счетчик инструкций (program counter), у него даже есть псевдоним — pc. Так что очевидно, что его не стоит использовать в качестве регистра общего назначения 🙂

Другой регистр, r14 используется как указатель стека (stack pointer) и имеет псевдоним sp. Но его никто не мешает использовать как обычный рабочий регистр, если вам вдруг совершено не нужен стек. Хотя и это и не рекомендуется.

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

Остальные 13 регистров программист (правда, чаще — компилятор) может использовать как хочет.

Плюс, есть ещё 2 выделенных регистра состояния процессора. На самом деле один и тот же регистр, просто одна его ипостать содержит сохраненные данные после переключения режима.

Режимы работы

Процессор может работать в 7 разных режимах: User, FIQ, IRQ, Supervisor, Abort, System, Undefined. 4 из этих режимов (FIQ, IRQ, Undefined, Abort) слушат для обработки исключительных операций — обработка быстрого прерывания, обработка обычного прерывания, попытка выполнить неизвестную инструкцию, попытка обратиться к несуществующей области памяти (или по невыровненому адресу). Режимы Abort и Undefined позволяют сделать эмуляцию инструкций сопроцессора и добавить поддержку виртуальной памяти соответственно.

Остальные три режим служат для защиты операционной системы от прикладных программ.

Любопытно что все режимы (кроме System) имеют свои регистры r13 и r14. Таким образом при переключении режимов нет надобности сохранять значения вершины стека и адрес возврата.

Набор команд

Процессор поддерживает два набора команд — ARM и Thumb (а модификация ARM7EJ-S ещё и команды для аппаратного ускорения java). Основная разница между ARM и Thumb — это длинна команда. В первом случае она составляет 32 бита, в другом — 16. Программы на Thumb в среднем занимают меньше места, но и дольше выполняются.

Основные отличия команд ARM от x86 таковы:


  • все операции над данными происходят только в регистрах. Нельзя модифицировать данные в памяти
  • с памятью работают только команды пересылки данных. Возможна передача данных регистр-память, память-регистр и регистр-регистр
  • каждая команда имеет модификаторы условного исполнения. Т.е. можно делать не только условный переход, но и например условную пересылку или сложение.
Прочее

Есть ещё много отличий, например таких как отсутствие команд для работы с числами с плавающей точкой, команд для работы с десятично -двоичными числами, запрет на обращения к невыравненым адресам в памяти, расширения DSP и Jazelle, отсутствие портов ввода-вывода (вся периферия мапится в память), только линейная адресация (хотя при наличии MMU можно переключать страницы), хитрые модификаторы команд пересылки для использования битовых сдвигов.

В общем, если кому-то будет интересно — могу рассказать подробнее об АРМах, конкретно о процессоре AT91SAM7x, о embedded разработке вообще и в частности.

Как поставить zmp-linux-arm7 на Ustym 4K

Данная инструкция дана исключительно в познавательных целях)) для исследования уникальных возможностей комбо ресивера Ustym 4K Pro.

 

Для используемого в данном случае приложения OTT player, была создана иконка ТВ free.

Перед настройкой приложения убедитесь, что ресивер в вашей сети имеет постоянный IP адрес, в противном случае после каждого выключения ресивера, он может получать другой IP адрес и приложение не будет работать. IP адрес настраивается в вашем маршрутизаторе (роутере).

В инструкции к прошивке не совсем понятно с IP адресами, куда и какой вписывать. Я сделал так:

Первым делом надо скачать и установить последнюю, на момент написания статьи, прошивку uClan_Ustym-4K-PRO_v2.00.26_20210120.den. Качаем отсюда

Далее скачиваем приложение Приложение zmp-linux-arm7 для Ustym 4K. Качаем все файлы

 

Назначение папок и файлов:

EXT_script_server файл user_app.sh из этой папки следует устанавливать, если вы хотите ресивер Ustym 4K Pro использовать в качестве сервера, смотреть на нем, и раздавать по локальной сети m3u лист из приложения OTT Player на другие ресиверы (Denys/B6/T2 или другие). В этом случае файл user_app.sh не редактируется.

LOCALHOST_script_server — файл user_app.sh из этой папки следует устанавливать, если просмотр предполагается только на одном ресивере, без раздачи по сети. В этом случае файл user_app.sh редактируется.

Хотя, если вы установите файл из папки EXT_script_server хуже не будет в любом случае, да и файл user_app.sh редактировать не надо.

zmp-linux-arm7 — этот файл устанавливается в любом случае.

 

Буду описывать на примере EXT_script_server. Настройка очень проста.

Содержимое этой папки, файл user_app.sh, надо положить в папку /home/gx/user/ вашего ресивера. Туда же копируем и файл zmp-linux-arm7.

Для этого заходим по FTP на ресивер (логин: root), и копируем файлы. Лучше всего это делать с помощью файлового менеджера Total Commander.

 

Копируем файлы как есть, без редактирования.

Далее заходим в меню ресивера, выбираем приложение OTT Player, либо дублируем, если оно у вас уже занято. Если вы скачали дамп по ссылке выше, то выбираете это приложение

Нажимаем на пульте кнопку Help, далее Установки

И в поле Адрес сервера вписываете адрес плейлиста xxxxxx:7171/playlist.m3u8, где xxxxxx IP вашего ресивера в сети.

Например у меня так

Быстрее, если есть возможность, это можно сделать через веб интерфейс. Нажимаем Сохр. Получится так.

Далее перезагружаем ресивер и все. Приложение готово к работе!

Для того, чтобы смотреть этот плейлист на других устройствах в вашей сети, способных работать с плейлистами m3u, достаточно в настройках приложения, используемого в той или иной приставке, прописать путь к плейлисту xxxxxx:7171/playlist.m3u8, заменив xxxxxx на IP адрес Ustym 4K, который в данном случае используется в качестве сервера.

 

Если все-таки вы хотите установить приложение для просмотра только на одном ресивере.

 

Делается так же, только файл user_app.sh из папки LOCALHOST_script_server необходимо отредактировать.

Открываем файл текстовом редакторе, лучше Notepad++, и вписываем IP адрес своего ресивера вместо 127.0.0.1

В моем случае получилось так

Сохраняем файл, перезагружаем ресивер и все.

Система команд arm7

В настоящее время для программирования даже достаточно простых микроконтроллеров используются языки высокого уровня, как правило, являющиеся подмножествами языка С или С++.

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

Прежде чем приступить к рассмотрению команд ARM7, необходимо отметить следующие ее особенности:

  • Поддержку двух наборов команд: ARM с 32-битными командами и THUMB с 16-битными командами. Далее рассматривается 32-битный набор команд, слово ARM будет означать команды, принадлежащие к этому формату, а слово ARM7 — собственно ЦПУ.

  • Поддержку двух форматов 32-х разрядного адреса: с обратным порядком бит (big-endian processor и с прямым порядком бит (little-endian processor)). В первом случае старший бит (Most Significant Bit — MSB) располагается в младшем бите слова, а во втором случае — в старшем. Это обеспечивает совместимость с другими семействами 32-х разрядных процессоров при использовании языков высокого уровня. Однако в ряде семейств процессоров с ядром ARMиспользуется только прямой порядок байтов (т.е. MSB является самым старшим битом адреса), что значительно облегчает работу с процессором. Поскольку компилятор, используемый для ARМ7, работает с код в обоих форматах, необходимо удостовериться, что формат слов задан правильно, в противном случае полученный код будет «вывернут наизнанку».

  • Возможность выполнения различных типов сдвига одного из операндов «на проходе» перед использованием в АЛУ

  • Поддержка условного выполнения любой команды

  • Возможность запрета изменения флагов результатов выполнения операции.

      1. Условное выполнение команд

Одна из важных особенностей набора команд ARM заключается в том, что поддерживается условное выполнение любой команды. В традиционных микроконтроллерах единственными условными командами являются команды условных переходов, и, быть может, ряд других, таких как команды проверки либо изменения состояния отдельных битов. В наборе команд ARM старшие 4 бита кода команды всегда сравниваются с флагами условий в регистре CPSR. Если их значения не совпадают, команда на стадии дешифрации заменяется команда NOP (нет операции).

Это существенно сокращает время выполнения участков программы с «короткими» переходами. Так, например, при решении квадратных уравнений с вещественными коэффициентами и произвольными корнями при отрицательном дискриминанте необходимо перед вычислением квадратного корня сменить знак дискриминанта, а результат присвоить мнимой части ответа.

При традиционном решении этой задачи необходимо ввести команду условного перехода. Выполнение этой команды занимает как минимум 2 такта – дешифрация и загрузка нового значения адреса в счетчик команд и дополнительное число тактов на загрузку конвейера команд. При использовании условного выполнения команды при положительном дискриминанте команда смены знака заменяется пустой операцией. При этом не происходит очистка конвейера команд, и потери составляют не более одного такта. Порог, при котором замена условных команд командой NOP оказывается эффективнее выполнения традиционных команд условного перехода и связанного с этим повторным заполнением конвейера равен его глубине, т.е. трем.

Для реализации этой возможности к базовым мнемоническим обозначениям команд ассемблера (и С то же), нужно добавить любой из шестнадцати префиксов, определяющих тестируемые состояния флагов условий. Эти префиксы приведены в табл. 3. Соответственно существует 16 вариантов каждой команды. Например, следующая команда:

MOVEQ R1, #0x008

означает, что загрузка числа 0x00800000 в регистр R1 будет произведена только том случае, если результат выполнения последней команды обработки данных был «равно» или получен 0 результат и соответственно установлен флаг (Z) регистра CPSR.

Таблица 3

Префиксы команд

Префикс

Флаги

Значение

ЕQ

Z установлен

Равно

NE

Z сброшен

Не равно

CS

С установлен

Выше или равно (беззнаковое)

СС

C сброшен

Ниже (беззнаковое)

MI?

N установлен

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

PL

N сброшен

Положительный результат или 0

VS

V установлен

Переполнение

VC

V сброшен

Нет переполнения

HI

С установлен,

Z сброшен

Выше (беззнаковое)

LS

С сброшен,

Z установлен

Ниже или равно (беззнаковое)

GE

N равен V

Больше или равно (знаковое)

LT

N не равен V

Меньше (знаковое)

GT

Z сброшен И

(N равен V)

Больше (знаковое)

LE

Z установлен ИЛИ

(N не равен V)

Меньше или равно (знаковое)

AL

(игнорируются)

Безусловное выполнение

Основные продукты ARM7 | Analog Devices

Некоторые файлы cookie необходимы для безопасного входа в систему, но другие необязательны для функциональной деятельности. Сбор наших данных используется для улучшения наших продуктов и услуг. Мы рекомендуем вам принять наши файлы cookie, чтобы обеспечить максимальную производительность и функциональность нашего сайта. Для получения дополнительной информации вы можете просмотреть сведения о файлах cookie. Узнайте больше о нашей политике конфиденциальности.

Принять и продолжить Принять и продолжить

Файлы cookie, которые мы используем, можно разделить на следующие категории:

Строго необходимые файлы cookie:
Это файлы cookie, которые необходимы для работы аналога.com или предлагаемые конкретные функции. Они либо служат единственной цели передачи данных по сети, либо строго необходимы для предоставления онлайн-услуг, явно запрошенных вами.
Аналитические / рабочие файлы cookie:
Эти файлы cookie позволяют нам проводить веб-аналитику или другие формы измерения аудитории, такие как распознавание и подсчет количества посетителей и наблюдение за тем, как посетители перемещаются по нашему веб-сайту. Это помогает нам улучшить работу веб-сайта, например, за счет того, что пользователи легко находят то, что ищут.
Функциональные файлы cookie:
Эти файлы cookie используются для распознавания вас, когда вы возвращаетесь на наш веб-сайт. Это позволяет нам персонализировать наш контент для вас, приветствовать вас по имени и запоминать ваши предпочтения (например, ваш выбор языка или региона). Потеря информации в этих файлах cookie может сделать наши службы менее функциональными, но не помешает работе веб-сайта.
Файлы cookie для таргетинга / профилирования:
Эти файлы cookie записывают ваше посещение нашего веб-сайта и / или использование вами услуг, страницы, которые вы посетили, и ссылки, по которым вы переходили.Мы будем использовать эту информацию, чтобы сделать веб-сайт и отображаемую на нем рекламу более соответствующими вашим интересам. Мы также можем передавать эту информацию третьим лицам с этой целью.
Отклонить файлы cookie

Список чипов ARM

Из одной руки в другую!
процессоров ARM и Архитектура
Архитектура ARM
Доступные в настоящее время процессоры
  • АРМ1 Это был самый первый процессор ARM и был очень близок по возможностям. к ARM2.Этот процессор использовался в нескольких оценочных системах для BBC. и компьютерные машины, но это был в первую очередь прототип микросхемы и был заменен ARM2. Точные, основные различия между ARM2 и ARM1:

Отсутствуют банковские R8 и R9 в FIQ режим.
Нет инструкции по умножению.
Инструкции LDR / STR с заданными регистрами величинами сдвига.
Нет сопроцессорного интерфейса или инструкций сопроцессора.

  • АРМ2 Микросхема ARM2 имеет 27 регистров, из которых 16 доступны в любом из них. время.Доступны четыре режима процессора —

USR: пользовательский режим
IRQ: режим прерывания (с частной копией R13 и R14.)
FIQ: режим быстрого прерывания (частные копии от R8 до R14.)
SVC: режим супервизора. (частные экземпляры R13 и R14.)

Только код режима без USR может изменить процессор режим, обеспечивающий аппаратную безопасность, если аппаратная и физическая память только доступный из привилегированного кода. За счет шести верхних бит программного счетчика использовался для хранения флагов состояния процессора, этот чип был ограничен адресация 26 бит памяти или адресного пространства 64 мегабайта.На самом деле в регистре ПК хранится восемь битов состояния процессора. Потому что Инструкция ARM всегда имеет длину четыре байта, два нижних бита ПК были всегда подразумевается ноль, когда регистр использовался как ПК. Когда это регистр используется для других операций, нижние биты отражают режим процессор работает в. (00 — USR, 01 — IRQ, 10 — FIQ и 11 — SVC)

Трехступенчатый конвейер команд позволяет микросхеме для быстрого выполнения инструкций с довольно низким числом транзисторов.Одна сторона эффект конвейера — это возможность получить «свободное» вращение / сдвиг на каждом инструкция, поскольку одна ступень конвейера касалась исключительно сдвига ствола данного реестра. В сочетании с условием выполнения каждой инструкции тогда длинные прогоны кода без ветвей, которые останавливают конвейер, могут быть достигнута, что позволило добиться достаточно высокой скорости выполнения инструкций для тактовой частоты. (В среднем около 0,6 инструкций за такт)

Чип ARM2 работал на частоте 8 МГц, что давало средняя производительность 4-4.7 MIPS.

  • АРМ3 Это макроячейка ядра ARM2 с кешем и выделенным сопроцессором. добавлен интерфейс. Набор регистров не изменился и новых режимов процессора не было. были добавлены. Новым в производимой микросхеме ARM3 было добавление кэш-память на кристалле (4 Кбайт, 64 ассоциативных набора, случайная замена, 4 строки слов, сквозная запись, смешанные данные и инструкции.) и намного быстрее тактовые частоты. Также обновлены настройки интерфейса сопроцессора на чип, включая определение сопроцессора пятнадцать для управления кешем и идентификация чипа.

Наконец, была добавлена ​​одна новая инструкция, SWP инструкция. Монотонная команда подкачки памяти, полезная для многопроцессорные массивы.

Было выпущено несколько скоростей чипов ARM3. Изначально с аппаратами A540 выпускались разновидности 26 МГц, затем 25 МГц. версии использовались в A5000 и 24 МГц в A4. Наконец 33 МГц Версия была произведена и использовалась в альфа-варианте A5000.

Второе воплощение чипа было ARM250. который был 12-мегагерцовым вариантом ячейки ARM3 и имел IOC1, VIDC1a и MEMC1 все чипы интегрированы в один чип, но в отличие от обычного ARM3 у него не было кэш процессора.ARM250 обеспечивает производительность около 7 MIPS.

ARM3 24 МГц с использованием 12 МГц основная память обеспечивает среднюю скорость выполнения 13,26 MIPS. На 33 МГц Поставляется 17,96 MIPS.

  • ARM4 & ARM5 Они никогда не производились. При переходе с Acorn на При проектировании процессоров Armltd использовала схему нумерации микросхем. измененный. Таким образом, числа 4 и 5 были пропущены.
  • АРМ6 Эта процессорная ячейка — первая из имеющихся в продаже ARM, в которой возможность полной 32-битной адресации.Дополнительно процессор теперь имеет 31 в нем регистрируется вместе с шестью новыми режимами процессора: —

User32 — 32-битный режим USR.
Supervisor32 — 32-битный режим SVC. (частный регистр СПСР)
IRQ32 — 32-битный режим IRQ. (частный регистр СПСР)
FIQ32 — 32-битный режим FIQ. (частный регистр СПСР)
Abort32 — дальнейшее прерывание выборки из памяти. (частный регистр СПСР)
Undefined32 Неопределенный режим инструкций. (частный регистр СПСР)

Регистр SPSR — это сохраненный статус процессора. Зарегистрируйте и храните копию CPSR (Current Processor Status Register), когда вход в новый режим.Добавление режима Abort32 и это изменение, хотя CPSR / SPSR на самом деле является следствием перехода на 32-битный, позволяет ячейка ARM6, чтобы легко обрабатывать виртуальную память без искажений, которые у вас были перейти на более ранние чипы ARM.

Две новые инструкции для чтения и записи Добавлены регистры CPSR и SPSR. Счетчик программ теперь полностью 32-битный. с аппаратным переключением CPSR в положение, когда ПК считывается в 26 битовые режимы.(для обратной совместимости). Ячейка ARM6 полностью двоичная. совместим в 26-битных режимах с более ранним кодом ячейки ARM. Чип полностью статичен, часы можно замедлить до любой скорости, а процессор будет поддерживать штат. Наконец, ячейка может работать с прямым порядком байтов или прямым порядком байтов. работа может быть переключена между двумя режимами аппаратно. Общее количество регистров в ячейке ARM6 (не чипе) находится 36 000 транзисторов.

Несколько версий ячейки ARM6 были произведено.ARM61 — это аппаратная версия ячейки ARM6 в ARM2 / 3. режим совместимости. Этот чип не может войти в режимы 32-битного адреса / процессора. Линия микросхем ARM600 представляет собой ячейку ARM6 со встроенным MMU, на кэш-памяти кристалла. аналогично микросхеме ARM3, буфер обратной записи с восемью глубинами и двумя независимые адреса и общее количество транзисторов 360 000. В кеше есть были улучшены производительность, теперь контролируется MMU и настроен на 32-битная адресация. Были произведены чипы ARM610 с тремя скоростями.Один на 20 МГц обеспечивает 17 MIPS, один на 30 МГц обеспечивает производительность 26 MIPS и, наконец, один на 33 МГц дает около 27–28 MIPS.

Также доступны ARM60 (ячейка ARM 6 как микросхема, без чего-либо еще), ARM650 (ARM6 с некоторыми RAM и периферийные контроллеры. Предназначен для встроенных систем управления.), ARM6l (ячейка ARM6 с меньшей мощностью) и ARM60l (версия ARM 6 с меньшей мощностью) ячейка как микросхема.).

  • ARM7 Ячейка ARM7 функционально идентична ячейке ARM6 по возможностям, но может быть работает быстрее, чем ARM6.Вариант ячейки ARM7 предлагает улучшенное аппаратное умножение, подходящее для работы DSP.

Большая часть того, что есть Новое в ячейке ARM7 — это внутренние изменения таймингов для различных сигналов. В Микросхема ARM700 имеет больший объем кэш-памяти (8 КБ, радикально изменен для увеличения мощности). эффективность) на ARM600, улучшая показатели попадания в кэш. Он также имеет вдвое больше количество дополнительных записей перевода в MMU и удвоенное количество адрес в буфере записи. (Предположительно теперь четыре адреса можно записать на до остановки буфера.) На частоте 40 МГц ARM710 обеспечивает около 36 MIPS, или примерно на 40% лучше по сравнению с ARM610.

Устройства серии

ARM7 — это ARM7 (ядро ячейки чипа), ARM7D (ядро чипа). с поддержкой отладки.), ARM7DM (ARM7D с улучшенным умножением.), ARM7DMI (ARM7DM с ICEbreaker ™. ICEbreaker находится на чипе поддержки для Внутрисхемная эмуляция.), ARM70DM (ARM7DMI как микросхема), ARM700 (ARM7 + MMU + кэш + буфер обратной записи.) и ARM7500 (ARM7 + MMU + кеш + обратная запись Буфер + IOMD + VIDC20).Почти все эти ядра могут быть предложены с Ядро большого пальца тоже.

  • ARM8 Ячейка ARM8 напрямую совместим с устройствами ARM6 и 7. Однако он включает пятиступенчатый конвейер (идея продублирована в устройстве StrongARM), спекулятивный сборщик инструкций и внутренние настройки процессора для разрешить более высокую тактовую частоту. Кеш остается того же размера, но становится кэш обратной записи и добавлена ​​64-битная инструкция умножения.

Изготовленный по технологии 0,5 микрон, чип указан как поставляющий 80 Производительность MIPS с устройством 3,3 В на частоте 80 МГц. Это вдвое больше производительность чипа ARM7 и соответствует первоначальным обещаниям «дорожной карты» о семье ARM. Однако его производительность затмевает StrongARM. устройства для необработанной вычислительной мощности.

  • StrongARM Это высокая скорость вариант семейства чипов ARM, разработанный Armltd в совместно с Digital.Архитектурно он похож на ядро ​​ARM8, совместное использование пятиступенчатого конвейера с этим процессором. Еще одно отличие это переход от унифицированного кэша данных и инструкций к разделению, Гарвард архитектура, инструкция и кэш данных. В SA110 размер каждого кэша составляет 16 КБ.

По набор инструкций добавлена ​​одна новая инструкция, загрузка / сохранение полуслова для перемещения 16-битных блоков данных. Полная совместимость кода не гарантируется с более ранними процессорами из-за двух факторов: расширенный конвейер означает вызовы стека, в которых хранится счетчик программ, будут иметь значение, равное полному на шестнадцать байтов впереди выполняемой в данный момент инструкции, а не более нормальные восемь байт.Во-вторых, разделенный кеш вызывает проблемы с самим собой изменение кода, который сначала выполняется, а затем обрабатывается как данные, обрабатывается и затем делается попытка выполнить измененный код до того, как он будет сброшен из кеш инструкций.

Такой код фрагменты сломаются. К счастью, такой код встречается довольно редко и ограничены ОС (в частности, обработчиками SWI). Изготовлен на 0,35 мкм процесс, часть SA110 достигает 115 MIPS на 100 МГц, 185 MIPS на 160 МГц и 230 MIPS при 200 МГц.Деталь SA1100 предназначена для портативных приложений и содержит ядро ​​SA, MMU, буферы чтения / записи (возможно, кеш уровня 1 и буфер записи, аналогичный SA110), поддержка PCMCIA, цветной / полутоновый ЖК-дисплей контроллер и контроллер ввода-вывода общего назначения (включая два последовательных порта и Поддержка USB). Он может работать на частоте 133 или 200 МГц и потребляет менее 500 мВт. власти.

  • ARM9 Постепенное улучшение по сравнению с ARM8 этот чип имеет тот же пятиступенчатый конвейер, но теперь это Гарвардский Архитектурный чип, как у StrongARM.Вероятно, это означает то же самое ограничения на самомодифицирующийся код применяются как для StrongARM.

Первоначально он будет предлагаться в виде двух частей, ARM9TDMI (Thumb, Поддержка отладки, 64-битная Mulitply и ICEBreaker In Circuit Emulation), что является базовая часть ядра и ARM940T. ARM940T предлагает не только базовое ядро, 4 КБ кэшей инструкций / данных, буфер записи (8 слов, 4 независимых адресов), интерфейс шины AMBA, поддержка внешнего сопроцессора и защита блок для встроенных приложений (не требует трансляции адресов и позволяет восемь, независимо от размера и уровня защиты, защищенных областей памяти).Обе части изготовлены с толщиной 0,35 микрона, тактовой частотой 150 МГц (получается 165 микрон). MIPS) с ARM9TDMI, потребляющим 225 мВт, и ARM950T — 675 мВт.

Первоначально запланированные версии включают ARM10TDMI ядро с процессором ARM1020T, построенным на этом ядре, но с добавлением MMU с требует поддержки виртуального memopry с подкачкой страниц, кэш-памяти уровня 1 в гарвардском стиле 32 Кб (большинство вероятно, 16Kb кэшей инструкций и 16Kb данных ala StrongARM), буфер записи и улучшенный интерфейс шины AMBA.Точных цифр энергопотребления нет. был выпущен, но я ожидаю, что ARM1020T будет потреблять от 0,6 до 1 Вт стоит мощность на 300 МГц.

Архитектуры ARM

Архитектура ARM построена на модель программистов из шестнадцати регистров общего назначения и множества режимы процессора. Каждый режим процессора предлагает разные уровни доступа к памяти, манипулирование ПК и режимом и его собственными частными регистрами.

Версия 1 — ARM1

По умолчанию программист «видит» 16 пользователей. регистры режима, но когда в других режимах различные регистры меняются местами с регистры, относящиеся к этому режиму.В этой таблице перечислены различные режимы и регистры.

 USR IRQ FIQ SVC 
 R0 
 R1 
 R2 
 R3 
 R4 
 R5 
 R6 
 R7 
 R6 
 R7 
 R8 
 R9 
 R9 
 R13_irq R13_fiq R13_svc 
 R14 R14_irq R14_fiq R14_svc 
 R15 (он же ПК) 
 

Если регистр не указан в таблице, то Регистр режима USR виден.

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

По соглашению и частично соблюдается набор инструкций, R14 — это регистр «ссылки», обычно содержащий возврат адрес любого подпрограммы вызова.Инструкция BL (Branch and Link) автоматически сохраняет правильный адрес возврата в R14. Все регистры общего назначения, включая R15, который представляет собой счетчик программ, флаги состояния и режим прописать все в одном. 26 бит адреса, выровненного по словам, два бита режим процессора в битах 1 и 0 (00 — USR, 01 — IRQ, 10 — FIQ и 11 — SVC) и шесть бит состояния процессора (отрицательный, перенос, переполнение, ноль, прерывание Отключить запрос и быстро).

Инструкции включают загрузку / сохранение (регистр, несколько регистры, байт), перемещение (и перемещение НЕ), сложение (сложение, сложение с переносом, вычитание, Вычитание с переносом, обратное вычитание, обратное вычитание с переносом), сравнение (Не сравнивать и не сравнивать), логическая логика (проверка, проверка эквивалентности и, Исключительное ИЛИ, Или, Битовая очистка), Программный поток (Ветвь, Разветвление со ссылкой) и Программное прерывание.

Версия 2 — ARM2

Эта архитектура добавила R8 и R9 с банками в FIQ в режиме, инструкция LDR / STR с заданными регистрами величинами сдвига была сняты и добавлены два новых «класса» обучения — это Умножение (умножение и умножение, накопление) и управление сопроцессором (данные работа, данные сопроцессора в регистр ARM, регистр ARM в сопроцессор, Загрузить и сохранить).

Версия 2as — ARM3 и ARM250

Функциональность идентична архитектуре v2. вариант добавил одну дополнительную инструкцию SWP и назначил ноль сопроцессора для Идентификация процессора и управление кешем.

Версия 3 — ARM6, ARM7 и амулет 1

Это обновление архитектуры ARM удалило 26-битное ограничение для счетчика ПК, позволяющее использовать 32-битную адресацию для обоих данные и код. (Ранее можно было адресовать только данные в полном 32-битном диапазон адресов.) В результате уловка сохранения флагов процессора смешалась с ПК в регистре 15 больше не работал, и новый набор регистров был добавлен для хранения состояния процессора. Для каждого режима процессора регистры CPSR (Current Регистр состояния процессора) и SPSR (регистры состояния составного процессора) были добавлен.Были добавлены два новых режима процессора, а также Abort32 и Undefined32. Для обратная совместимость: чип может быть настроен на эмуляцию старого 26-битного режима операции. Дальнейшее улучшение включало возможность изменять байт порядок микросхемы от прямого к старшему.

Все это потребовало добавления нового Move инструкции (SPSR для регистрации, CPSR для регистрации, регистрация в SPSR, регистрация в CPSR, немедленная константа для SPSR и немедленная константа для CPSR.) к общаться с регистрами состояния для каждого режима процессора.

Версия 3M

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

Версия 4 — StrongARM, ARM8 и ARM9

Новые инструкции, впервые представленные в архитектуре 3M, теперь становятся частью основного архитектура в версии 4.Дополнительно загрузка / сохранение Halfword (16 бит) инструкция была добавлена.

Эта версия расширяет архитектуру 4, добавляя инструкции и немного изменив определения некоторых существующих инструкций для повышения эффективности взаимодействия ARM / Thumb в T варианты и позволяют тем же методам генерации кода использоваться для вариантов, отличных от T, как для вариантов T.

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

Большой палец Комплект инструкций (варианты Т)

Набор команд Thumb — это перекодированное подмножество набора инструкций ARM. Инструкции Thumb вдвое меньше инструкций ARM (16 бит по сравнению с 32), в результате чего обычно может быть достигнута большая плотность кода. достигается за счет использования набора инструкций Thumb вместо набора инструкций ARM.Компромисс заключается в том, что набор инструкций Thumb теряет условное выполнение инструкции и может обращаться только к первым восьми регистрам процессор.

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

Длинные инструкции умножения (варианты M)

M вариантов Набор инструкций ARM включает четыре дополнительных инструкции, которые выполняют 32 x 32> 64 умножение и 32 x 32 +64> 64 умножение с накоплением. Эти инструкции подразумевают наличие множитель, который значительно больше минимального и иногда опускается в реализациях, для которых очень важен малый размер кристалла, и производительность не очень важна.

Расширенные инструкции DSP (Варианты E)

E-варианты набора команд ARM включают в себя ряд дополнительные инструкции, которые повышают производительность процессора ARM на типичных алгоритмы цифровой обработки сигналов (DSP).

Vector Floating (Плавающий вектор) Пункт v1 — ARM10

Разработано одновременно с архитектурой ARM версии 5 это расширение сопроцессора для архитектура ARM, разработанная для обеспечения высокой производительности операций с плавающей запятой на типичных графика и алгоритмы DSP. Обеспечивает одинарную и двойную точность арифметика с плавающей запятой.

Наконец для последняя информация и подробности о семействе процессоров ARM, почему бы и нет посетите домашние страницы ARMLtd, где можно найти подробную информацию о текущих и будущих ARM процессоры сохранены.

Главный | Топ

ARM7 (LPC2148) Характеристики микроконтроллера, описание схемы контактов

Разработчики встроенных систем и SOC (система на кристалле) выбирают определенные ядра микропроцессора, библиотеки и различные инструменты для разработки приложений на базе микропроцессора. Процессор ARM — одна из лучших альтернатив, доступных разработчикам встроенных систем. В последние несколько лет архитектура ARM стала очень популярной, и они доступны от разных производителей IC.Процессоры ARM используются в мобильных телефонах, автомобильных тормозных системах и т. Д. Глобальное сообщество партнеров ARM разработало полупроводники, а корпорации по разработке продуктов включают в себя таких сотрудников, как инженеры, дизайнеры и разработчики. Эта статья посвящена микроконтроллеру LPC2148 на базе ARM7, архитектуре и конфигурации контактов. Эта статья поможет вам понять основы микроконтроллера.


Микроконтроллер LPC2148 на базе ARM7

Полная форма ARM — это усовершенствованный компьютер с сокращенным набором команд (RISC), и это 32-битная архитектура процессора, расширенная за счет владений ARM.Приложения процессора ARM включают несколько микроконтроллеров, а также процессоры. Архитектура процессора ARM была лицензирована многими корпорациями для разработки продуктов SoC на базе процессоров ARM и процессоров. Это позволяет корпорациям производить свою продукцию с использованием архитектуры ARM. Точно так же все основные полупроводниковые компании будут производить SOC на базе ARM, такие как Samsung, Atmel, TI и т. Д.

Что такое процессор ARM7? Процессор

ARM7 обычно используется во встроенных системных приложениях.Кроме того, это баланс между классической и новой последовательностью Cortex. Этот процессор отлично подходит для поиска ресурсов, существующих в Интернете, с превосходной документацией, предлагаемой NXP Semiconductors. Он полностью подходит для ученика, чтобы получить подробную информацию о реализации проекта аппаратного и программного обеспечения.

LPC2148 Микроконтроллер

Микроконтроллер LPC2148 разработан Philips (NXP Semiconductor) с несколькими встроенными функциями и периферийными устройствами.По этим причинам он станет более надежным и эффективным вариантом для разработчика приложений. LPC2148 — это 16-битный или 32-битный микроконтроллер на базе семейства ARM7.

Характеристики LPC2148

Основные особенности LPC2148 включают следующее.

  • LPC2148 — это 16- или 32-разрядный микроконтроллер семейства ARM7, доступный в небольшом корпусе LQFP64.
  • ISP (в системном программировании) или IAP (в программировании приложений) с использованием встроенного программного загрузчика.
  • Внутренняя статическая ОЗУ составляет от 8 до 40 кБ, встроенная флэш-память — от 32 до 512 кБ, широкий интерфейс — 128 бит, или ускоритель позволяет работать с частотой 60 МГц.
  • Требуется 400 миллисекунд для стирания данных в полном чипе и 1 миллисекунда для 256 байт программирования.
  • Интерфейсы Embedded Trace
  • и Embedded ICE RT предлагают отладку в реальном времени с высокоскоростной трассировкой выполнения инструкций и встроенным программным обеспечением Real Monitor.
  • Он имеет 2 КБ ОЗУ конечной точки и USB 2.0 полноскоростной контроллер устройства. Кроме того, этот микроконтроллер предлагает 8 КБ встроенной оперативной памяти рядом с USB с DMA.
  • Один или два 10-битных АЦП предлагают 6 или 14 аналоговых входов / пс с малым временем преобразования 2,44 мкс / канал.
  • Только 10-битный ЦАП предлагает сменные аналоговые выходы.
  • Внешний счетчик событий / 32-битные таймеры-2, блок ШИМ и сторожевой таймер.
  • RTC с низким энергопотреблением (часы реального времени) и вход тактовой частоты 32 кГц.
  • Несколько последовательных интерфейсов, например, два 16C550 UART, две шины I2C со скоростью 400 кбит / с.
  • Устойчивые к 5 В, быстрые контакты ввода / вывода общего назначения в небольшом корпусе LQFP64.
  • Внешние контакты прерывания-21.
  • Максимальная частота CLK-тактовой частоты ЦП, 60 МГц, которую можно получить с помощью встроенного в кристалл контура фазовой автоподстройки частоты, время разрешения составляет 100 мкс.
  • Встроенный в микросхему осциллятор будет работать от внешнего кристалла в диапазоне от 1 МГц до 25 МГц.
  • Режимы энергосбережения в основном включают холостой ход и отключение питания.
  • Для дополнительной оптимизации энергопотребления предусмотрены индивидуальное включение или отключение периферийных функций и масштабирование периферийных устройств CLK.

Память

Микроконтроллер LPC2148 имеет встроенную FLASH-память объемом 512 КБ, а также внутреннюю SRAM объемом 32 КБ. Кроме того, этот микроконтроллер включает встроенную поддержку USB RAM до 2 КБ. Эта память хорошо подходит для всех приложений микроконтроллера.

Встроенная система флэш-памяти

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

  • Путем включения интерфейса JTAG в серийный номер
  • Использование UART или ISP (в системном программировании)
  • Возможности IAP (в прикладном программировании)

Прикладная программа, основанная на функциях IAP, также может быть удалена во время работы программы. При использовании встроенного загрузчика микроконтроллера LPC2148 для пользовательского кода доступно 500 КБ флэш-памяти. Флэш-память этого микроконтроллера предлагает наименьшее количество циклов записи / стирания 100 000, а также 20-летнее сохранение данных.

Встроенная SRAM

Этот микроконтроллер предлагает статическое ОЗУ объемом 32 КБ и очень полезно для хранения данных или кода. Он доступен для 8, 16 и 32 бит.

Порты ввода / вывода

Микроконтроллер LPC2148 имеет два порта ввода / вывода, которые обозначаются как P0 и P1. Все контакты порта имеют маркировку PX.Y. Здесь «X» обозначает номер порта, например 0 или 1, тогда как «Y» обозначает номер контакта 0–31. Все булавки также могут выполнять альтернативные задачи. Например, P0.8 обеспечивает вывод GPIO и Tx UART1, AD1.1, PWM4. При RST (СБРОС) каждый вывод организован как GPIO.

Как начать программировать?

Первым шагом к программированию lpc2148 является расположение контактов GPIO. Итак, вот связанные концепции, а также регистры. Контакты порта ввода-вывода общего назначения в LPC2148 включают P0.0 — P0.31 и P1.16 — P1.31, и фактически эти выводы доступны в зависимости от использования альтернативных функций.

Port-0 и Port-1 — это 32-битные порты ввода / вывода, и каждый бит этих портов может управляться отдельным направлением.Операции порта 0 и порта 1 зависят от функции контакта, который выбирается с помощью блока, подключенного к контактам. В Порте-0 контакты типа P0.24, P0.26 и P0.27 недоступны, тогда как в Порте 1 контакты с 0 по 15 недоступны. Здесь оба вывода, такие как Port-0 и Port-1, управляются двумя группами регистров, обсуждаемыми ниже.

LPC2148 Конфигурация контактов Микроконтроллер на базе ARM7 (LPC2148) Конфигурация выводов

Вывод1- (P0.21 / PWM5CAP1.3 / AD1.6)

  • P0.21 — вывод GPIO (вывод ввода-вывода общего назначения)
  • AD1.6 доступен только в микроконтроллерах LPC2144 / 46/48, где AD1.6 обозначает ADC-1, i / p-6.
  • PWM5 — это выход-5 широтно-импульсного модулятора.
  • CAP1.3 — это i / p захвата для Timer-1, channel-3

Контакт2- (P0.22 / CAP0.0 / AD1.7 / MAT0.0 2

  • P0.22 — цифровой вывод GPIO
  • Вывод
  • AD1.7 доступен в LPC2144 / 46/48 только там, где AD1.7 обозначает АЦП-1, вход-7
  • CAP0.0 — это входной вывод захвата для таймера 0, канал 0.
  • MAT0.0 соответствует o / p для Timer-0, channel-0

Контакт3-RTXC1 3

Это I / p к схеме генератора RTC

Pin4- TRACEPKT3 / P1.19

  • TRACEPKT3 — это пакет трассировки, бит-3, стандартный порт ввода / вывода с внутренним подтягиванием.
  • P1.19 — цифровой вывод GPIO

Контакт 5-RTXC2

Это выходной контакт схемы генератора RTC

.

Pin6, Pin18, Pin25, Pin42 и Pin50

Эти контакты являются заземляющими.

Pin7-VDDA

Этот вывод представляет собой источник питания аналогового напряжения (3.3 В), и это напряжение очень полезно для аналого-цифровых преобразователей на кристалле и цифро-аналоговых преобразователей.

Pin8- P1.18 / TRACEPKT2

  • P1.18 — цифровой вывод GPIO
  • TRACEPKT2 — это пакет трассировки, бит-2, стандартный порт ввода / вывода с внутренним подтягиванием.

Контакт 9- P0.25 / AOUT / AD0.4

  • P0.25 — цифровой вывод GPIO I
  • AD0.4 обозначает АЦП-0, вход-4
  • Aout — выход ЦАП, доступный только в LPC2142 / LPC2144 / LPC2146 / LPC2148

Контакт 10- D +

Этот вывод представляет собой двунаправленную линию USB D +

Штифт 11- D-

Этот вывод представляет собой двунаправленную USB-линию D-line

Штырь 12-Р1.17 / TRACEPKT1

  • P1.17 — цифровой вывод GPIO
  • TRACEPKT1 — это пакет трассировки, бит-1, стандартный порт ввода / вывода с внутренним подтягиванием.

Pin13-P0.28 / CAP0.2 / AD0.1 / MAT0.2

  • P0.28 — цифровой вывод GPIO
  • AD0.1 обозначает АЦП-0, вход-1
  • CAP0.2 — это i / p захвата для Timer-0, channel-2.
  • MAT0.2 соответствует o / p для Timer-0, channel-2

Pin14-P0.29 / CAP0.3 / AD0.2 / MAT0.3

  • P0.29 — цифровой вывод GPIO
  • AD0.2 обозначает АЦП-0, вход-2
  • CAP0.3 — это i / p захвата для Timer-0, channel-3.
  • MAT0.3 соответствует o / p для Timer-0, channel-3

Pin15-P0.30 / EINT3 / AD0.3 / CAP0.0

  • P0.30 — цифровой вывод GPIO
  • AD0.3 обозначает АЦП-0, вход-3
  • EINT3 — это 3 входа внешнего прерывания.
  • CAP0.3 — это i / p захвата для Timer-0, channel-0.

Штифт16- P1.16 / TRACEPKT0

  • P1.16 — цифровой вывод GPIO
  • TRACEPKT1 — это пакет трассировки, бит-0, стандартный порт ввода / вывода с внутренним подтягиванием

Контакт 17-P0.31 / UP_LED / CONNECT

  • P0.31 — цифровой вывод GPIO
  • UP_LED — это светодиодный индикатор хорошего соединения USB. Когда устройство расположено, оно низкое, а когда устройство не размещено, оно высокое.
  • CONNECT- Этот сигнал используется для управления внешним резистором (1.5 кОм) под управлением программного обеспечения и используется функцией Soft Connect

Контакт 19- P0.0 / PWM / TXD0

  • P0.0 — цифровой вывод GPIO
  • TXD0 — передатчик o / p для UART0.
  • PWM1 — широтно-импульсный модулятор o / p-1.

Штифт 20- P1.31 / TRST

  • P1.31 — цифровой вывод GPIO
  • TRST — это тестовый сброс для интерфейса JTAG.

Контакт 21-P0.1 / PWM3 / RXD0 / EINT0

  • P0.1 — цифровой вывод GPIO
  • RXD0 — это приемник i / p для UART0.
  • PWM3 — широтно-импульсный модулятор o / p-3.
  • EINT0 — внешнее прерывание 0-вход

Штифт22- P0.2 / CAP0.0 / SCL0

  • P0.2 — цифровой вывод GPIO
  • SCL0 — это тактовый ввод / вывод I2C0 и выход с открытым стоком
  • CAP0.0 — это i / p захвата для Timer-0, channel-0.

Штырьки 23, 43 и 51- VDD

Эти контакты служат для подачи напряжения питания на порты ввода / вывода, а также на ядро.

Pin24- P1.26 / RTCK

  • P1.26 — цифровой вывод GPIO
  • RTCK — это возвращенный тестовый CLK o / p, дополнительный сигнал, добавленный к JTAG-порту. Когда частота процессора меняется, это помогает синхронизации отладчика.

Pin26- P0.3 / SDA0 / MAT0.0 / EINT1

  • P0.3 — цифровой вывод GPIO
  • SDA0 — это вход / выход данных I2C0 и выход с открытым стоком для соблюдения требований шины I2C.
  • MAT0.0 соответствует o / p для таймера-0, канала-0.
  • EINT1 — внешнее прерывание 1-i / p.

Штифт27-P0.4 / CAP0.1 / SCK0 / AD0.6

  • P0.4 — цифровой ввод / вывод GPIO
  • SCK0 — это последовательный CLK для SPI0 и SPI CLK o / p от ведущего / i / p к ведомому.
  • CAP0.1 — это i / p захвата для таймера-0, канала-0.
  • IAD0.6 обозначает АЦП-0, вход-6

Pin28-P1.25 / EXTIN0

  • P1.25 — цифровой ввод / вывод GPIO
  • EXTIN0 — это внешний триггер i / p и стандартный ввод / вывод с внутренним подтягиванием

Штифт 29- P0.5 / MAT0.1 / MISO0 / AD0.7

  • P0.5 — цифровой ввод / вывод GPIO
  • MISO0 — это ведущее устройство на выходе ведомого устройства для SPI0, ввод / вывод данных для ведущего устройства SPI / вывод данных из ведомого устройства SPI.
  • MAT0.1 соответствует o / p для таймера-0, канала-1.
  • AD0.7 обозначает АЦП-0, вход-7.

Pin30-P0.6 / MOSI0 / CAP0.2 / AD1.0

  • P0.6 — цифровой ввод / вывод GPIO
  • MOSI0 является ведущим выходным ведомым устройством для SPI0, и данные выводятся из основного / ввода / вывода данных SPI в ведомое устройство SPI.
  • CAP0.2 — это i / p захвата для Timer-0, channel-2.

Pin31-P0.7 / PWM2 / SSEL0 / EINT2

  • P0.7 — цифровой ввод / вывод GPIO
  • SSEL0 является ведомым, выбранным для SPI0, и выбирает SPI-интерфейс в качестве ведомого.
  • PWM2 — выход-2 широтно-импульсного модулятора.
  • EINT2 — это 2 входа внешнего прерывания.

Pin32-P1.24 / TRACECLK

  • P1.24 — цифровой ввод / вывод GPIO.
  • TRACECLK — это CLK трассировки и стандартный порт ввода / вывода с внутренним подтягиванием

Штифт 33-P0.8 / TXD1 / PWM4 / AD1.1

  • P0.8 — цифровой ввод / вывод GPIO
  • TXD1 — это передатчик для UART1.
  • PWM4 — широтно-импульсный модулятор o / p-4.
  • AD1.1 обозначает АЦП-1, вход-1, и он доступен только в LPC2144 / 46/48.

Контакт 34- P0.9 / PWM6 / RXD1 / EINT3

  • P0.9 — цифровой ввод / вывод GPIO
  • RXD1 — это приемник i / p для UART1.
  • PWM6 — широтно-импульсный модулятор o / p-6.
  • EINT3 — внешнее прерывание с 3 входами

Pin35-P0.10 / RTS1 / CAP1.0 / AD1.2

  • P0.10 — цифровой ввод / вывод GPIO
  • RTS1 запрашивает отправку o / p для UART1 и LPC2144 / 46/48.
  • CAP1.0 — это i / p захвата для таймера-1, канала-0.
  • AD1.2 обозначает АЦП-1, вход-2, и он доступен только в LPC2144 / 46/48

Штифт36-P1.23 / PIPESTAT2

  • P1.23 — цифровой ввод / вывод GPIO
  • PIPESTAT2 — состояние конвейера, бит-2, и стандартный порт ввода / вывода с внутренним подтягиванием

Pin37-P0.11 / CAP1.1 / CTS1 / SCL1

  • P0.11 — цифровой ввод / вывод GPIO
  • CTS1 может отправлять i / p для UART1, и они доступны только в LPC2144 / 46/48
  • CAP1.1 — это i / p захвата для таймера-1, канала-1.
  • SCL1 — I2C1 CLK I / O и открытый сток для соблюдения шины I2C

Pin38-P0.12 / MAT1.0 / AD1.3 / DSR1

  • P0.12 — цифровой ввод / вывод GPIO
  • DSR1 — это готовый i / p набор данных для UART1, и они доступны только в LPC2144 / 46/48.
  • MAT1.0 соответствует o / p для таймера-1, канала-0.
  • AD1.3 обозначает вход 3 АЦП и доступен только в LPC2144 / 46/48.

Pin39-P0.13 / DTR1 / MAT1.1 / AD1.4

  • P0.13 — цифровой ввод / вывод GPIO
  • DTR1 — это терминал данных, готовый только для UART1 и LPC2144 / 46/48.
  • MAT1.1 соответствует o / p для таймера-1, канала-1.
  • AD1.4 обозначает вход АЦП-4, и они доступны только в LPC2144 / 46/48.

Штырь 40-Р1.22 / PIPESTAT1

  • P1.22 — цифровой ввод / вывод GPIO
  • PIPESTAT1 — состояние конвейера, бит-1 и стандартный порт ввода / вывода с внутренним подтягиванием

Pin41-P0.14 / DCD1 / EINT1 / SDA1

  • P0.14 — цифровой ввод / вывод GPIO
  • DCD1 — это i / p для обнаружения носителя данных для UART1, а также только для LPC2144 / 46/48.
  • EINT1 — внешнее прерывание с 1 входом.
  • SDA1 — это вход / выход данных I2C1 и выход с открытым стоком для соблюдения шины I2C.

Контакт 44: P1.21 / PIPESTAT0 44

  • I / O P1.21 — цифровой ввод / вывод GPIO
  • PIPESTAT0 — это статус конвейера, бит 0 и стандартный порт ввода / вывода при внутреннем подтягивании.

Контакт 45: P0.15 / EINT2 / RI1 / AD1.5 45

  • I / O P0.15 — цифровой вывод GPIO I / O
  • RI1 является кольцевым указателем i / p для UART1 и доступен только в LPC2144 / 46/48.
  • EINT2 — это 2 входа внешнего прерывания.
  • AD1.5 обозначает АЦП 1, вход-5 и также доступен только в LPC2144 / 46/48

Контакт 46: P0.16 / MAT0.2 / EINT0 / CAP0.2

  • P0.16 — цифровой ввод / вывод GPIO
  • EINT0 — это внешний вход прерывания.
  • MAT0.2 соответствует o / p для Таймера-0, канал -2
  • CAP0.2 — это i / p захвата для Timer-0, channel-2.

Контакт 47: P0.17 / SCK1 / CAP1.2 / MAT1.2 47

  • P0.17 — цифровой ввод / вывод GPIO
  • CAP1.2 — это i / p захвата для Timer-1, channel-2.
  • SCK1 — это последовательный CLK для SSP и переключения CLK от ведущего к ведомому.
  • MAT1.2 совпадает с таймером-1, каналом-2.

Контакт 48: P1.20 / TRACESYNC

  • P1.20 — цифровой ввод / вывод GPIO
  • TRACESYNC — это синхронизация трассировки.

Контакт 49: VBAT

Источник питания часов реального времени: этот вывод обеспечивает питание часов реального времени.

Контакт 52: P1.30 / TMS

P1.30 — цифровой ввод / вывод GPIO

TMS — это тестовый режим для взаимодействия с JTAG.

Контакт 53: P0.18 / CAP1.3 / MISO1 / MAT1.3

  • P0.18 — цифровой ввод / вывод GPIO
  • CAP1.3 — это i / p захвата для таймера 1, канал 3.
  • MISO1 — это главный вход Slave-out для SSP, а данные i / p для SPI-master

Контакт 54: P0.19 / MOSI1 / MAT1.2 / CAP1.2

  • P0.19 — цифровой ввод / вывод GPIO.
  • MAT1.2 обозначает совпадение o / p для таймера 1, канал 2.
  • MOSI1 является ведущим выходным ведомым устройством для ведущего устройства SSP.
  • CAP1.2 — это i / p захвата для таймера 1, канал 2.

Контакт 55: P0.20 / SSEL1 / MAT1.3 / EINT3

  • P0.20 — цифровой ввод / вывод GPIO.
  • MAT1.3 соответствует o / p таймеру 1, канал 3. I
  • SSEL1 — это Slave Select, разработанный для SSP. Здесь выбирает интерфейс SSP в качестве ведомого.
  • EINT3 — это 3 входа внешнего прерывания.

Штифт56: P1.29 / TCK

  • P1.29 — цифровой ввод / вывод GPIO
  • TCK — это тестовая CLK для интерфейса JTAG.

Контакт 57: вход внешнего сброса

Устройство может быть перегруппировано с помощью НИЗКОГО уровня на этом выводе, влияя на порты ввода / вывода, а также периферийные устройства для получения их значений по умолчанию, а выполнение процессора начинается с адреса 0.

Контакт58: P0.23 / VBUS

  • P0.23 — цифровой ввод / вывод GPIO
  • VBUS указывает на наличие питания USB-шины

Контакт 59: VSSA

VSSA — это аналоговая земля, и это должно быть такое же напряжение, как и VSS, хотя оно должно быть разделено для уменьшения ошибок и шума.

Pin60: P1.28 / TDI 60

  • P1.28 — цифровой ввод / вывод GPIO
  • Вывод
  • TDI — это тестовые данные, используемые для взаимодействия с JTAG

Контакт61: XTAL2

XTAL2 — вывод от усилителя генератора

Штырь62: XTAL1

XTAL1 — это i / p для внутреннего генератора CLK, а также для схем генератора

Pin63: Ссылка VREF-ADC

Этот вывод должен быть номинально равен или меньше напряжения VDD, хотя он должен быть отделен для уменьшения ошибок и шума.

Pin64: P1.27 / TDO 64

  • P1.27 — цифровой ввод / вывод GPIO
  • TDO — это тестовые данные, используемые для взаимодействия с JTAG.

Таким образом, речь идет о конфигурации выводов микроконтроллера LPC2148 на базе ARM 7. Для студентов-электронщиков эта информация даст базовые знания о конфигурации контактов, памяти портов ввода-вывода, а также регистрах. Вот вам вопрос, каковы области применения микроконтроллера LPC2148?

От шины CAN до шлюза CAN Bus

CG-ARM7

Монтируемый на рейку шлюз CAN Bus CG-ARM7 соединяет и сопрягает две подсистемы или сегменты шины CAN, что позволяет гибко проектировать топологии проводки с реализуемой структурой «звезда», «дерево» и разветвленной линейной структурой.Он поддерживает адаптацию скорости передачи данных, фильтрацию сообщений и преобразование идентификаторов между соединенными шинами и доступен либо с двумя интерфейсами высокоскоростной шины, либо с одним высокоскоростным и одним низкоскоростным интерфейсом шины.

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

Для специальных задач, таких как изменение содержания данных сообщений CAN, дополнительно доступен комплект разработчика с вариантом дизайна CG-ARM7 / D / E для написания специальной прошивки (ARM7).Доступен ряд вариантов дизайна CPC-ARM7, совместимых с кодом, со следующими отличительными особенностями:

  • CG-ARM7 (монтаж на рейке; неизолированный; варианты скорости HS / HS, HS / LS; порт конфигурации RS-232)
  • CG-ARM7 / GTI (монтаж на рейке; гальваническая развязка; варианты скорости HS / HS, HS / LS; порт конфигурации RS-232)
  • CG-ARM7 / D / E (микропрограммное обеспечение перепрограммируется / рекомендуется для разработки; входит в комплект разработчика; варианты скорости HS / HS, HS / LS, LS / LS; порт конфигурации USB; работа в расширенных температурах)

HS = Высокая скорость; LS = низкая скорость

Конфигурация устройства выполняется с помощью ПК через CAN, если также используется какой-либо из интерфейсов ПК серии CPC — поддерживаются PCI Express, USB или Ethernet — или через встроенный интерфейс RS232.Программное обеспечение для загрузки доступно для ПК с ОС Windows и Linux.
Основные характеристики
  • CAN шлюз для коммерческих, деловых и промышленных приложений
    • Сертификат FCC, класс A: использование ограничено коммерческой, деловой и промышленной средой
  • Монтаж на рейку
  • Подключение подсетей CAN с разной скоростью передачи данных
    • Сборка по умолчанию (HS / HS) соединяет две высокоскоростные подсети с поддержкой разных скоростей передачи данных
    • Дополнительная (HS / LS) сборка может быть специально заказана для взаимодействия между высокоскоростными и низкоскоростными подсетями CAN.
  • Фильтрация и буферизация трафика данных
    • Готовая прошивка позволяет конфигурировать фильтрацию и / или отображать сообщения по идентификатору
  • Инфраструктура протокола
  • :
    • Поддерживает протоколы CAN 2.0A (11-битные идентификаторы) и 2.0B (29-битные идентификаторы)
    • Подходит для использования с протоколами более высокого уровня CANopen, DeviceNet и J1939
  • Микроконтроллер NXP LPC2119 с 2 внутренними контроллерами CAN
    • Совместимость с кодом поддерживается в семействе шлюзов CG-ARM7, CG-ARM7 / GTI и CG-ARM7 / D / E
    • Конфигурация и загрузка прошивки через интерфейс RS-232
    • Дополнительная конфигурация и загрузка прошивки через шину CAN (требуется использование интерфейса ПК CPC)

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

Схема и подключение

Подключение к шинам CAN осуществляется через съемные клеммы.Помимо сигналов CAN, зажимы также несут напряжение питания для CG-ARM7. В следующей таблице показано назначение контактов внутренних интерфейсов.

Штифт Имя Функция
1 + 24В Напряжение питания
2, 3, 6 ЗЕМЛЯ Земля
4 CAN1_H Сигнальная линия CAN1 (доминирующий высокий)
5 CAN1_L Сигнальная линия CAN1 (доминирующий низкий)
7 CAN2_H Сигнальная линия CAN2 (доминирующий высокий)
8 CAN2_L Сигнальная линия CAN2 (доминирующий низкий)

Предельные значения
Параметр Минимум Максимум Установка
Температура хранения -20 +80 ° С
Рабочая температура 0 +60 ° С
Напряжение питания -100 +35 В
Напряжение на шинных соединениях -30 +30 В
Допустимая потребляемая мощность (при 60 ° C) п.с. 2000 мВт

Любое (также временное) напряжение, превышающее предельные значения, может вызвать необратимое повреждение CG-ARM7 и других подключенных устройств. Воздействие ограничивающих условий в течение продолжительных периодов времени может повлиять на надежность и сократить срок службы устройства.

Номинальные значения
Параметр Минимум Типовой Максимум Установка
Потребление тока (на холостом ходу) п.с. 40 н.у. мА
Напряжение питания 10 24 30 В

Все значения, если не указано иное, относятся к напряжению питания 24 В и температуре окружающей среды 20 ° C.

Объем поставки
  • Шлюз CAN / CAN CG-ARM7
  • Штекер с винтовыми зажимами
  • Руководство пользователя
  • Конфигурационное программное обеспечение

Введение в микроконтроллер ARM7 LPC2148

Это руководство посвящено Введение в микроконтроллер ARM7 LPC2148 .Мы также обсудим некоторые факты и особенности микроконтроллера NXP LPC2148. Это руководство поможет вам понять функциональные основы микроконтроллера ARM7 LPC2148. В следующем руководстве мы установим программное обеспечение и настроим оборудование для записи или загрузки шестнадцатеричного файла во флэш-память микроконтроллера LPC2148.

Что такое ARM?

ARM-Advanced RISC Machine — это 32-разрядная архитектура процессора RISC (компьютер с сокращенным набором команд) , разработанная ARM Holdings.Многие новички иногда неправильно понимают, что ARM — это микроконтроллер или процессор, но на самом деле ARM — это архитектура, которая используется во многих процессорах и микроконтроллерах. Архитектура ARM лицензирована для компаний, которые хотят производить процессоры на базе ARM или продукты System-on-Chip. Это позволяет компаниям разрабатывать собственные процессоры, совместимые с архитектурой набора команд ARM. Например, устройство LPC2148, которое мы используем, представляет собой продукт SOC на базе архитектуры ARM, разработанный NXP Semiconductor.Точно так же все основные производители полупроводников, такие как Atmel, Samsung, TI и т. Д., Производят SOC на базе ARM.

Зачем начинать с ARM7 LCP2148?

ARM7 — наиболее успешное и широко используемое семейство процессоров во встроенных системных приложениях. Поэтому мы решили выбрать контроллер NXP на базе ARM7 TDMI LPC2148 . Кроме того, ARM7 — это баланс между классической и новой серией Cortex. ARM7 отлично подходит для начала с точки зрения ресурсов, доступных в Интернете, и качественной документации, предоставленной NXP.Он идеально подходит для начинающих, чтобы получить более глубокое представление об аппаратной и программной реализации.

LPC2148 производится NXP Semiconductor (Phillips) , и в него предварительно загружено множество встроенных функций и периферийных устройств. Это делает его более эффективным и надежным выбором для высококлассного разработчика приложений. Я не хочу повторять список функций из Руководства пользователя. Я прошу вас держать руководство пользователя при чтении этих руководств. По мере продвижения мы будем обсуждать и использовать практически все функции этой серии.Теперь давайте посмотрим на схему выводов LPC2148.

Схема выводов LPC2148

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

ПАМЯТЬ

LPC2148 имеет 32 КБ на микросхеме SRAM и 512 КБ на флэш-памяти микросхемы. Этот чип имеет встроенную поддержку USB RAM до 2 КБ. Этой памяти более чем достаточно практически для всех приложений. Давайте разберемся с функцией этого огромного пространства памяти в LPC2148.

Система флэш-памяти: LPC2148 имеет 512 КБ флэш-памяти.Эта память может использоваться как для хранения кода, так и для хранения данных. Флэш-память можно программировать различными способами

  • Использование встроенного последовательного порта Интерфейс JTAG
  • Использование внутрисистемного программирования (ISP)
  • С помощью программирования внутри приложения (IAP) Возможности

Прикладная программа, использующая функции IAP, также может стирать и / или программировать FLASH во время работы приложения. При использовании загрузчика на микросхеме LPC2148 для кода пользователя доступно 500 КБ флэш-памяти.

RAM Система памяти: LPC2148 предоставляет 32 КБ статической RAM, которая может использоваться для хранения кода и / или данных. Доступен как 8-битный, 16-битный и 32-битный.

ПОРТЫ ВХОДА / ВЫХОДА (GPIO LPC2148)

Понимание того, что такое порты ввода-вывода и как их использовать, очень важно. Это потому, что, когда мы видим микрочип, мы обнаруживаем черный ящик, то есть микросхему с некоторыми контактами. LPC2148 имеет два порта ввода-вывода, каждый из которых имеет 32-битную ширину, которые обеспечиваются 64 контактами ввода-вывода. Порты называются P0 и P1.Контакты каждого порта обозначены как Px.y , где « x » обозначает номер порта, 0 или 1. Где « y » обозначает номер контакта, обычно от 0 до 31. Каждый контакт может выполнять несколько функций. Например: Контакт № 1, который является P0.21, служит как GPIO, так и PWM5, AD1.6 (аналого-цифровой преобразователь 1, вход 6), CAP1.3 (вход захвата для таймера 1, канал 3).

НАСТРОЙКА GPIO в LPC2148:

Первое, что нужно узнать при программировании LPC2148, — это как настроить контакты GPIO? Начнем со связанных понятий и регистров.

ШПИЛЬКИ ПОРТА ТИП ОПИСАНИЕ
P0.0-P0.31
P1.16-P1.31
Вход / выход Ввод / вывод общего назначения. Количество фактически доступных GPIO зависит от использования альтернативных функций.

ПОРТ 0 — 32-битный порт ввода-вывода с индивидуальным управлением направлением для каждого бита. Всего 28 контактов порта 0 могут использоваться в качестве двунаправленных цифровых входов / выходов общего назначения, в то время как P0.31 обеспечивает только функции цифрового вывода. Работа контактов порта 0 зависит от функции контактов, выбранной с помощью блока подключения контактов. Контакты P0.24, P0.26 и P0.27 недоступны.

ПОРТ 1 — это 32-битный двунаправленный порт ввода-вывода с индивидуальным управлением направлением для каждого бита. Работа контактов порта 1 зависит от функции контактов, выбранной с помощью блока подключения контактов. Контакты с 0 по 15 порта 1 недоступны.

PORT0 и PORT1 управляются с помощью двух групп регистров , описанных ниже.

ИОПИН

Это регистр значения вывода порта GPIO. Текущее состояние сконфигурированных выводов порта GPIO всегда можно прочитать из этого регистра, независимо от направления вывода.

ИОДИР

Это регистр управления направлением порта GPIO. Этот регистр индивидуально Управляет направлением каждого вывода порта .

IOCLR

Это регистры очистки вывода порта GPIO. Этот регистр контролирует состояние выходных контактов .Запись единиц приводит к понижению уровня на соответствующих контактах порта и очищает соответствующие биты в регистре IOSET. Запись нулей не дает никакого эффекта.

IOSET

Это регистры набора выходов порта GPIO. Этот регистр управляет состоянием выходных контактов вместе с регистром IOCLR. Запись единиц дает высокие значения на соответствующих контактах порта. Запись нулей не дает никакого эффекта.

Это набор регистров, используемых для настройки контактов ввода / вывода. Теперь перейдем к отдельным регистрам глубже.

РЕГИСТРЫ ДЛЯ ПРОГРАММИРОВАНИЯ С

IOSEL0

Порт 0 имеет 32 контакта (от P0.0 до P0.31). Каждый вывод может иметь несколько функций. При сбросе все контакты конфигурируются как контакты GPIO. Однако мы можем перенастроить, используя регистры IOSEL0 и IOSEL1.

IOSEL0 используется для выбора функции от P0.0 до P0.15 . Каждый вывод имеет до 4 функций, поэтому для выбора функции предусмотрено 2 бита на вывод в IOSEL0.

00 Функция 0 (Функция по умолчанию = GPIO)
01 Функция 1
10 Функция 2
11 Функция 3

IOSEL1

IOSEL1 используется для выбора функции P ins P0.16 по P0.31

IOSEL2

IOSEL2 используется для выбора функции контактов P1.16 — P1.31

IO0DIR

IO0DIR используется для настройки контактов порта 0-P0 в качестве входных или выходных контактов.

1 = Выходной контакт
0 = Входной контакт

Пример: IO0DIR = 0x0000FFFF означает, что P0.0 — P0.15 настроены как выходные контакты, а P0.16 — P0.31 настроены как входные контакты.

IO1DIR

IO1DIR используется для настройки контактов порта 1-P1 в качестве входных или выходных контактов.

1 = Выходной контакт
0 = Входной контакт

Пример: IO1DIR = 0xAAAAAAAA означает, что четные контакты (P1.0, P1.2, P1.4 и т. Д.) Настроены как входные, а нечетные (P1.1, P1.3, P1.5 и т. Д.) ) сконфигурированы как входные контакты.

IO0SET

Используется для установки контактов Port0-P0 на логику 1.

Пример: IO0SET = 0x0000FFFF установит выводы P0.0 в P0.15 на логику 1. Это не повлияет на другие выводы.

IO0CLR

Используется для установки контактов Port0-P0 на логический 0.

Пример: IO0CLR = 0x0000FFFF установит контакты P0.0 в P0.15 на логический 0. Это не повлияет на другие контакты.

IO1SET

Используется для установки контактов Port1-P1 на логику 1.

Пример: IO1SET = 0x0000FFFF установит контакты P1.0 в P1.15 на логику 1. Это не повлияет на другие контакты.

IO1CLR

Используется для установки контактов Port1-P1 на логический 0.

Пример: IO1CLR = 0x0000FFFF установит контакты P1.От 0 до P1.15 при логическом 0. Это не повлияет на другие выводы.

Как только вы полностью поймете, как использовать все регистры, вы можете приступить к программированию.

Пример: мигающие светодиоды, подключенные к контактам P0.10-P0.13

Step-1: Выберите контакты GPIO PORT , используя PINSEL0 .

Шаг 2: Укажите направление выводов в качестве вывода с помощью IO0DIR .

Step-3: Установите штифты P0.10-P0.13 с помощью IO0SET.

Шаг-4: Очистите контакты P0.10-P0.13, используя IO0CLR .

Шаг 5: Перейдите к шагу 2.

Теперь, используя эти шаги, приведенные здесь, попробуйте написать базовую программу самостоятельно, и как только это будет сделано, сравните с базовой программой, приведенной здесь. Вы можете написать эту программу, используя различные техники. Мы предоставили вам самый простой вариант. В следующем руководстве мы выполним установку программного обеспечения и подключение оборудования, чтобы узнать, как программировать микроконтроллер LPC2148.Не стесняйтесь оставлять комментарии…. !!!!

eLua — ARM7 и ARM9

Сборка GCC для ARM

ПРИМЕЧАНИЕ: эти инструкции устарели. Вероятно, они не применимы к более новым версиям различных компонентов (binutils, gcc, newlib). Если вам нужна инструментальная цепочка ARM, создавать ее самостоятельно редко бывает нужно. Вместо этого получите готовый, например, от Mentor Graphics или gcc-arm-встроенный.

В этом руководстве объясняется, как создать цепочку инструментов GCC + Newlib. которые можно использовать для компиляции программ для архитектуры ARM, таким образом возможность компилировать программы для большого количества процессоров ARM там.Такой набор инструментов понадобится, если вы хотите скомпилировать eLua для ARM процессоры. Обратите внимание, что вы также можете использовать предварительно созданный набор инструментов для компиляции eLua (см. подробные сведения о наборах инструментов), так что сборка один сам строго не требуется. Этот учебник похож на многие другие, которые вы найдете на Интернет (в частности, от gnuarm, на котором он основан), но он немного более подробный и показывает некоторые «хитрости» (указание параметров во время компиляции) вы можете использовать при компиляции Newlib.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я ни в коем случае не специалист в Процесс компиляции GCC / newlib / binutils.Я уверен что есть лучше способы выполнить то, что я здесь описываю, но я просто хотел быстрый и грязный способ создания цепочки инструментов, я не собираюсь становится слишком близко к процессу сборки. Если ты думаешь, что я сделал неправильно, неточно или просто возмутительно некрасиво, не стесняйтесь обращаться к нам и Внесу необходимые исправления. И, конечно же, это руководство поставляется без каких-либо гарантий.

Предварительные требования

Для создания цепочки инструментов вам понадобится:

  • компьютер под управлением Linux : я использую Ubuntu, но любой Linux будет работать, если вы знаете, как найти эквивалент «apt-get» для ваше распространение.Я не буду вдаваться в подробности об этом, погуглите и вы обязательно найдете то, что вам нужно. Также предполагается, что Linux в системе уже установлена ​​«базовая» собственная набор инструментов (gcc / make и Это верно для Ubuntu после установки. Опять же, вы могли бы нужно проверить вашу конкретную раздачу.
  • GNU binutils : получите отсюда. На момент написания последней версии была 2.19.1, но она отказывается компилироваться для ARM. То же самое касается 2.19. Фактически, единственная более новая версия Binutils, которая, похоже, работает должным образом, — это 2.19.50, его можно скачать отсюда. Это версия, которую мы собираемся использовать в этом руководстве.
  • GCC : пока я пишу это, последняя версия GCC 4.3.3, которую я буду использовать в этом руководстве. Загрузите его отсюда после выбора подходящего зеркала.
  • Newlib : на момент написания этой статьи последняя официальная версия Newlib — 1.17.0, которую я буду использовать в этом руководстве. Загрузите его отсюда.
  • В руководстве предполагается, что в качестве оболочки вы используете bash.Если вы используете что-то еще, вам может потребоваться настроить некоторые специфичные для оболочки команды.

Для компиляции инструментальной цепочки вам потребуются некоторые вспомогательные программы / библиотеки. Для их установки:

  $ sudo apt-get install flex bison libgmp3-dev libmpfr-dev autoconf texinfo build-essential  

Затем решите, где вы хотите установить свою цепочку инструментов. Они обычно идите в / usr / local / , поэтому я предполагаю / usr / local / cross-arm для этого руководства.Чтобы спасти себя введите этот путь в переменную оболочки:

  $ экспорт TOOLPATH = / usr / local / cross-arm  

Шаг 1: binutils

Это самый простой шаг: распаковать, настроить, собрать.

  $ tar -xvjf binutils-2.19.50.tar.bz2
$ cd binutils-2.19.50
сборка $ mkdir
$ cd build
$ ../configure --target = arm-elf --prefix = $ TOOLPATH --enable-interwork --enable-Multilib --with-gnu-as --with-gnu-ld --disable-nls
$ сделать все
$ sudo make install
$ export PATH = $ {TOOLPATH} / bin: $ PATH
$ cd../ ..  

Теперь у вас есть ARM «binutils» (ассемблер, компоновщик, дизассемблер …) в вашем PATH.

Шаг 2: базовый GCC

На этом этапе мы создаем «базовый» GCC (то есть GCC без каких-либо поддержки библиотек, которые мы будем использовать для создания всех библиотек для наша цель). Давайте скомпилируем его (и обратите внимание, что этап установки немного отличается от Newlib):

  $ tar -xvjf gcc-4.3.3.tar.bz2
$ cd gcc-4.3.3
сборка $ mkdir
$ cd build
$ ../configure --target = arm-elf --prefix = $ TOOLPATH --enable-interwork --enable-Multilib --enable-languages ​​= "c, c ++" --with-newlib --without-headers - -disable-shared --with-gnu-as --with-gnu-ld
$ make all-gcc
$ sudo -s -H
# экспорт ПУТЬ = / usr / local / cross-arm / bin: $ PATH
# make install-gcc
# выход
$ cd../ ..  

Шаг 3: Newlib

Еще раз, Newlib так же прост, как распаковка, настройка и сборка. Но я хотел, чтобы моя библиотека была как можно меньше (а не так быстро, как возможно) и я хотел сохранить только то, что нужно, в финале исполняемый файл, поэтому я добавил флаги «-ffunction-section -fdata-section» чтобы компоновщик мог выполнить удаление мертвого кода:

  $ tar -xvzf newlib-1.17.0.tar.gz
$ cd newlib-1.17.0
сборка $ mkdir
$ cd build
$ ../configure --target = arm-elf --prefix = $ TOOLPATH --enable-interwork --disable-newlib-provided-syscalls --with-gnu-ld --with-gnu-as --disable- общий
$ make CFLAGS_FOR_TARGET = "- ffunction-section -fdata-section -DPREFER_SIZE_OVER_SPEED -D__OPTIMIZE_SIZE__ -Os -fomit-frame-pointer -D__BUFSIZ __ = 256"
$ sudo -s -H
# экспорт ПУТЬ = / usr / local / cross-arm / bin: $ PATH
# сделать установку
# выход
$ cd../ ..  

Некоторые примечания о флагах, используемых в указанной выше последовательности:

  • --disable-newlib-provided-syscalls : это заслуживает отдельной страницы, но я не буду останавливаться на этом здесь. Для объяснения см., Например, эта страница
  • -DPREFER_SIZE_OVER_SPEED -D__OPTIMIZE_SIZE__ : компилировать Newlib по размеру, а не по скорости (это зависит от Newlib).
  • -Os -fomit-frame-pointer : указать GCC на оптимизацию по размеру, а не по скорости.
  • -D__BUFSIZ __ = 256 : снова для Newlib, это размер буфера, выделяемый по умолчанию для файлов, открытых через fopen (). Значение по умолчанию — 1024, что я считаю слишком большим. для eLua , поэтому я использую 256. Конечно, вы можете изменить это значение.

Шаг 4: полный GCC

Наконец, на последнем этапе нашего руководства мы завершаем GCC строить. На этом этапе создается ряд библиотек поддержки компилятора. (в первую очередь libgcc.a). К счастью, это проще, чем Newlib шаг компиляции:

  $ cd gcc-4.3.3 / сборка
$ сделать все
$ sudo make install
  

Шаг 5: готово!

Теперь вы, наконец, можете наслаждаться своим набором инструментов ARM и скомпилировать eLua с его помощью 🙂 Если вам нужны дополнительные разъяснения или приведенные выше инструкции не помогли вам, не стесняйтесь обращаться к нам.

ARM7 ARM9 ARM11 J link V8 ARM Emulator Cortex-M3 ADS IAR STM32 JTAG Interface —


  • Убедитесь, что это подходит введя номер вашей модели.
  • Технические характеристики: источник питания USB, полный ток <50 мА, интерфейс USB 2.0, полная скорость 12 Мбит / с, интерфейсы целевой платы, JTAG (20P), J-Link и скорость последовательной передачи данных целевой платы между максимумом 12 МГц, поддерживаемое напряжение целевой платы 1,2 - 3,3 В, 5 В совместимый
  • Напряжение питания целевой платы 4,5 — 5 В (обеспечивается USB 5 В), максимальный ток источника питания целевой платы 300 мА, с защитой от перегрузки по току, рабочая температура +5? С … + 60? C, температура хранения -20? C… +65, влажность <90%, размер (без кабелей): 103 мм x 53 мм x 27 мм, вес (без кабеля): 60 г, EMC EN 55022, EN 55024
  • Поддерживаемые операционные системы: Microsoft Windows 2000, Microsoft Windows XP, Microsoft Windows XP x64, Microsoft Windows 2003, Microsoft Windows 2003 x64, Microsoft Windows Vista, Microsoft Windows Vista x64
  • Это абсолютно новый, хорошего качества и высокой производительности. ** ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ на точный размер и напряжение перед размещением заказа, чтобы избежать покупки неправильной вещи.Бесплатная доставка и время доставки в США составляет ок. 10-18 дней с даты отгрузки.
› См. Дополнительные сведения о продукте .

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

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