cortex-m

  • ХабрахабрФото Переключение контекста и простой вытесняющий планировщик для CortexM

    Переключение контекста и простой вытесняющий планировщик для CortexM

    С каждым годом курсовые для моих студентов становятся все объемнее. Например, в этом году одним из заданий была разработка метеостанции, ведь только ленивый не делает метеостанции, а студенты они по определению не ленивые, поэтому должны её сделать. Её можно быстро накидать в Cube или собрать на Ардуино, но задача курсового не в этом. Основная задача — самостоятельно, с нуля разобраться…

    Читать далее »
  • ХабрахабрФото Отладка микроконтроллеров ARM Cortex-M по UART Часть 2

    Отладка микроконтроллеров ARM Cortex-M по UART Часть 2

    В прошлой статье я рассказывал про прерывание DebugMon и регистры с ним связанные. В этой статье будем писать реализацию отладчика по UART. Низкоуровневая часть Тут и тут есть описание структуры запросов и ответов GDB сервера. Хоть оно и кажется простым, но реализовывать в микроконтроллере его мы не будем по следующим причинам: Большая избыточность данных. Адреса, значения регистров, переменных кодируются в…

    Читать далее »
  • ХабрахабрФото [Из песочницы] Отладка микроконтроллеров ARM Cortex-M по UART

    [Из песочницы] Отладка микроконтроллеров ARM Cortex-M по UART

    В данной статье я расскажу вам как можно использовать регистры отладки и breakpoint'ов в микроконтроллерах, построенных на ядрах ARM Cortex-M Введение Знали ли вы что ядра ARM Cortex-M в микроконтроллерах могут отлаживать сами себя?Оказывается могут. Читая Technical Reference Manual на ядро Cortex M3 обнаружил что у него есть прерывание DebugMon. Далее проанализировал все регистры с ним связанные. В итоге выяснил…

    Читать далее »
  • ХабрахабрФото Безопасный доступ к полям регистров на С++ без ущерба эффективности(на примере CortexM)

    Безопасный доступ к полям регистров на С++ без ущерба эффективности(на примере CortexM)

    Рис. взят с сайта www.extremetech.com/wp-content/uploads/2016/07/MegaProcessor-Feature.jpg Всем доброго здравия!В прошлой статье я рассмотрел вопрос о проблеме доступа к регистрам микроконтроллера с ядром CortexM на языке С++ и показал простые варианты решения части проблем. Сегодня я хочу показать идею как можно сделать безопасным доступ к регистру и его полям без ущерба эффективности, используя сгенерированные на основе SVD файлов С++ классы. Кода будет…

    Читать далее »
  • ХабрахабрФото Синглтон размещающий объекты в ROM и статические переменные(С++ на примере микроконтроллера Cortex M4)

    Синглтон размещающий объекты в ROM и статические переменные(С++ на примере микроконтроллера Cortex M4)

    Теперь же я хочу рассказать, как можно использовать порождающий шаблон одиночка для создания объектов в ROM. В предыдущей статье Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора), был разобран вопрос о том, как расположить константные объекты в ROM. Введение Очень много было уже написано про Singleton(далее по тексту Синглтон) его положительные и отрицательные стороны. Но несмотря…

    Читать далее »
  • ХабрахабрФото Как поморгать 4 светодиодами на CortexM используя С++17, tuple и извращенное воображение

    Как поморгать 4 светодиодами на CortexM используя С++17, tuple и извращенное воображение

    Всем доброго здравия! При обучении студентов разработке встроенного программного обеспечения для микроконтроллеров в университете я использую С++ и иногда даю особо интересующимся студентам всякие задачки для определения особо больных на голову одаренных учеников. Оптимизация компилятора при этом не должна быть выше Medium. В очередной раз таким студентам была дана задача поморгать 4 светодиодами, используя язык С++ 17 и стандартную библиотеку…

    Читать далее »
  • ХабрахабрФото Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора)

    Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора)

    Я обучаю своих студентов работе с микроконтроллером STM32F411RE, на борту которого имеется аж целых 512 кБайт ROM и 128 кБайт ОЗУОбычно на этом микроконтроллере в ROM память записывается программа, а в RAM изменяемые данные и очень часто нужно сделать так, чтобы константы лежали в ROM.В микроконтроллере STM32F411RE, ROM память расположена по адресам с 0x08000000...0x0807FFFF, а RAM с 0x20000000...0x2001FFFF. И если…

    Читать далее »
  • ХабрахабрФото Post-mortem отладка на Cortex-M

    Post-mortem отладка на Cortex-M

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

    Читать далее »
  • ХабрахабрФото Post-mortem отладка на Cortex-M

    Post-mortem отладка на Cortex-M

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

    Читать далее »
  • ХабрахабрФото Проверка корректности адресов в памяти на Cortex-M0/M3/M4/M7

    Проверка корректности адресов в памяти на Cortex-M0/M3/M4/M7

    Привет, Хабр! По поводу случившегося на днях послабления режима, возмущения в комментариях одного соседнего поста о том, что статьи про микроконтроллеры — сплошь мигание светодиодом, а также безвременной гибели моего стандалон-блога, восстанавливать который мне пока лень, переложу сюда полезный материал об одном прискорбно мало освещаемом прессой трюке в работе с ядрами Cortex-M — проверке произвольных адресов на валидность. Одна из…

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


Кнопка «Наверх»