Базовые макросы. Взгляд из ассемблера ARM Cortex-M.

Всем привет.

Здесь я коротко напишу про вид из ассемблера базовых макросов min(a,b), max(a,b) и isEqual(a,b).

Первые два иногда пригождаются, третий — весьма спорный, но иногда его удобно использовать.

Заметка будет короткой и наверняка не интересной для профи, которые знакомы с архитектурой ARM-Cortex, и понимающие отличия ARM-режима процессора от THUMB-режима) Кому все же интересно — добро пожаловать под кат.

we.zloy_pakimon.arm_asm_macro_1



Читать дальше

Анонс 32-разрядного процессора для бытовой электроники

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


Ключевые особенности процессора Cortex M7:

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

Что предоставляет большие возможности автоматизации помещений и различных объектов. Ждем-с первых образцов, что бы испытать новинку.
  • +2
  • 24 сентября 2014, 15:42
  • A_D

TM4C1294, и начало работы с GPIO

Приобрел недавно себе чудесную платку от TI.
В целом это пост, в личный блог: про пробное включение TM4C1294, и начало работы с новым чипом, и как принято, первые эксперементы с GPIO, как говорится хелловорлд-светодиодом, и тестовыя макетная платка…
Чип TM4C1294 — Также позиционируктся в семействе Tiva, он же Tiva C, или Tiva-C. Tiva-C мне лично, ну ооочень нравится,.
Для себя лично, начал создание для этого чипа собственных библитек, ибо библиотеки от TI запрешено шарить по лицензионным ограничениям TI.
Собственно, интересует сделать свои библиотеки для работы с чипом и переферией (не используя стандартные), так как (ихние) стандартные меня не то очень устраивают, или не всегда.
Краткое видео (место закончилось :) ) — www.youtube.com/watch?v=1HRvDEuhsSs

Детальнее под катом…

Читать дальше

Неожиданные проблемы при стыковке STM32F103 и Atmega 88 по SPI

В качестве памятки себе, ну и может кто чего подскажет в коментах…

Не очень давно я выкладывал в личный блог заметку:о распиновке кнопок в ручке джойстика Saitek X52

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


Читать дальше

EK-TM4C123GXL (Tiva C) + NRF24L01+, подключаем, мигрируем библиотеку, используем

Приобрел недавно плату EK-TM4C123GXL от TI (смотреть здесь). В качестве задачи для освоения решил подключить к ней NRF24L01+. Среда — Keil 5.01.
Библиотека была использована готовая, от maniacbug (статья здесь). Но она для Ардуино и написана на С++, потому с плюсов переписана на С, дополнительно, та часть, что работает с «железом», вынесена в отдельные файлы.


Читать дальше

Собрать современный ARM тулчейн в Linux

Тут многие говорят, что тулчейн собрать сложно, и надо пользоваться готовыми.
Но мне тут понадобился C++11 (потестить с МК компил-тайм оптимизацию и виртуальные функции), и я решил собрать тулчейн.

binutils — 2.24, GCC — 4.8.2, Newlib — 2.1.0, gdb — 7.6.2


Читать дальше
  • +1
  • 09 января 2014, 17:07
  • dekar

ATOMIC-макросы для ARM

Поклонникам контроллеров AVR и компилятора WinAVR хорошо знаком макрос
ATOMIC_BLOCK(SOMETHING),
с помощью которого обычно реализуется атомарный доступ. При переходе на контроллеры ARM возникает вопрос: а где мой любимый ATOMIC_BLOCK? А нету. Восполним этот пробел.


Читать дальше

Спариваем CoIDE и российский Cortex M3

Микроконтроллеры серии 1986ВЕ9х производства ЗАО «ПКК Миландр» приятно удивляют своими характеристиками, но к сожалению поддерживаются только коммерческими средствами разработки! Уважающим старый добрый GCC посвящается!


Читать дальше
  • +13
  • 27 ноября 2013, 13:19
  • Direct
  • 2

Многозадачный программный таймер.

В мире микроконтроллеров, как и в мире вообще — существуют разного рода задачи. Какие-то требуют немедленного исполнения, какие-то могут подождать. Но есть и такие, которые возникают крайне редко, но их количество может быть внушительным. Вот о реализации таких задач (последних) мы и поговорим. Чтобы «убить» 7 мух(, а может быть и великанов) одним ударом — будем использовать программный таймер на базе одного аппаратного. Так как все задачи — «медленноприходящие» (интересно, есть такое слово в русском языке?) — настроим аппаратный таймер таким образом, чтобы тикал он несколько раз в секунду (например, 50 или даже 500). И создадим массив структур, в каждой из которых будет лежать вся информация по каждому программному таймеру отдельно. Итак, рассмотрим чего добился:

Читать дальше

Удобная настройка GPIO портов

Настройка GPIOX портов в STM32, как уж повелось, не самое интересное занятие.
Большое разнообразие настроек в определенный момент начинает взрывать мозг, особенно если пользоваться стандартными решениями.
Например, чтобы нам настроить GPIOA.11 на 10МГцовый — выход по типу OPEN_DRAIN c выключенным драйвером — нужно выполнить следующие операции:


Читать дальше