Первый обзор отладочной платы STM32F746GDISCOVERY топик-ссылка

В моих руках недавно оказалась новая отладка от ST с МК STM32F7, небольшой обзор внутренностей прилагается. Вкратце: МК с 216 МГц/462 DMIPS, 64 Мб SDRAM, 128 Мб Flash, ЖК-экран 4.3 дюйма с ёмкостным (!) тач-скрином, и конечно Ethernet (LAN8742), FS/HS USB, слот SD-карты и MIPI-камеры, плюс два MEMS-микрофона, чтобы делать стереозвук или чистить шум. Первые впечатления очень хорошие, хочу попробовать сделать микрофонную решётку, и много чего ещё. В примерах есть куча всего, в т.ч. и Ethernet.

Вокруг EFM32 - свежая версия обзора контроллеров и средств разработки

Два года назад г-н Alatar написал весьма подробный и полезный обзор средств для разработки и отладки микроконтроллеров EFM32. Первая часть посвящена инфраструктуре программных средств разработки (Simplicity Studio), вторая часть — работе с контроллерами, третья часть представляет собой обзор API для EFM32.

С мая 2013 года жизнь EFM32 не стояла на месте, совсем наоборот. Уже в июне 2013 года Energy Micro была куплена компанией Silicon Labs. Так линейка этих малопотребляющих микроконтроллеров стала активно расширяться и уже разрослась до более чем 250-ти кристаллов, а Simplicity Studio пережила два масштабных обновления. В обзоре ниже описано чем сейчас является EFM32 и что изменилось в Simplicity Studio по сравнению с постом «Вокруг EFM32 — обзор библиотек и софта» от 2013 года.


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

Швейцарский нож для embedded разработчика.

Швейцарский нож для embedded разработчика.

Разработка embedded устройств — это моя работа и хобби. За все время, проведенное за этим занятием, у меня накопилось много «поделок» и «недоделок» различных инструментов для отладки и тестирования: USB-UART преобразователи, JTAG адаптеры, разного рода программаторы и т.д. Рассматривая весь этот «зоопарк» устройств, мы (я и несколько моих друзей) задумались, а можно ли сделать одно многофункциональное устройство, которое выполняло бы функции всех этих инструментов отладки. Сделать что-то аналогичное швейцарскому армейскому ножу для embedded разработки.

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


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

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

Прочитал на лоре недавно как человек тестирует свое устройство на AVR даже не имея самого устройства. Использует simulavr для моделирования самого МК и собственную модель внешней периферии (двигатели, светодиоды, датчики, последовательные интерфейсы и т.п.). Собирается делать автоматические тесты. После этого захотелось улучшить свои методы тестирования и отладки.

У меня все несколько хуже. Тестируется только управляющий код, он включается в состав модели внешних устройств (у меня только двигатели), собирается под x86. Получаю программу которая из входных сигналов и каких-то заданных констант выдает много телеметрии, которую можно смотреть на графиках или пытаться делать автоматический анализ. Но остается много кода который не покрыт тестами, например все обработчики команд CLI. Их приходится отлаживать на живом МК.



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

Создаём ST-Link V2

      Как-то так исторически сложилось, что, хоть и «подружился» с микроконтроллерами от ST Microelectronics я уже давненько, но полноценного отладчика до сих пор у меня не было. «Подсадил» на STM8 меня друг, подарив на день рождения платку STM8S-Discovery. Вдоволь наигравшись с целевым камушком, я отключил отладочную часть платки, а встроенный ST-Link стал «рабочей лошадкой» в моей лаборатории. Таковым и оставался бы до сих пор, и всё было хорошо, да вот где-то с полгода назад случилась ситуация, которая сподвигнула меня на изыскания по размножению отладчика: мне пришлось подключить обратно отладочную часть дискавери, так как проэкт, над которым предполагалось работать, использовал тот же проц, что и в дискавери, и обросла платка некислым таким «ежиком» из проводов и деталюшек, закипела работа… А тут заказчик звонит-мол, приедь ко мне да подправь, плиз, прошивочку в своём устройстве-да там фигня, задержку на секунду увеличить и всего-то делов… А «рабочая лошадь» чуть ли не намертво к рабочему столу привязана проводами да кабелюками, блин! Пришлось разбирать, конечно… Вернувшись от заказчика и грустно поглядев на то, что ещё утром было полем для бурной деятельности по проверке идей-полез искать вдохновения в гугле. Кому интересно, что из этого получилось-добро пожаловать под отрезь… :)


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

Отладка по UART или встроенный GDB server

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

Я был оч удивлен, когда на просторах сети не нашел ни одного достойного решения для, казалось бы, нужной задачи, как отладка AVR по UART. На запрос «avr gdb stub» я получил пару куцих решений, которые уже давным давно не поддерживаются, несовместимы с текущей версией gdb и содержат ряд существенных недостатков: отсутсвие исполнения интрукций по шагам или же замедление исполнения отлаживаемой программы в сотни раз. Мне показалось, что это хороший шанс попытаться разобраться в теме и, возможно, улучшить существующие решения.



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

Настройки компилятора в Atmel Studio 6 и отладка на симуляторе - грабли

Интересная, но, в общем, неудивительная вещь при отладке — возможно, кому-то пригодится.

Заметил, что при пошаговом выполнении программы оказываюсь в той функции, которая в этот момент (да и вообще в данной конфигурации программы) не вызывается. Причем оказываюсь не в начале функции, а где-то в середине. Заинтересовался — какого, собственно?

Настройки компилятора (оптимизация) были следующие:
— уровень оптимизации -O2
— галки стояли на «Pack structure members together (-fpack-struct)» и «Prepare functions for garbage collection (-ffunction-sections)»

Попробовал поиграться с уровнями оптимизации — без толку. Выключаю -ffunction-sections — всё нормально. А жаба душит, включение этой опции даёт уменьшение размера почти в два раза.

В хелпе написано следующее:
"-ffunction-sections: Prepare functions for garbage collection, if a function is never used, its memory will be scrapped"
То бишь, если функция нигде не используется, то под неё вроде бы память не выделяется. Оно и логично, сборка мусора и все такое.

То, что меня удивило: при включенной опции — при попадании программы в середину нигде не использующейся функции выхожу я из неё буквально на следующем шаге и туда, куда мне и надо. Посмотрел окно «disassembly» — там, куда я попадаю, Сишный текст строчки из НЕИСПОЛЬЗУЕМОЙ функции есть, а ассемблерные инструкции все как надо (там идет сброс флага и выход из ИСПОЛЬЗУЕМОЙ функции, в которую я заходил и как раз должен из неё выйти) Что за ерунда — так и не понял, может, кто точно знает и расскажет? В железе пока не пробовал, но судя по ассемблерному тексту, все должно работать правильно.

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

Да, чуть не забыл, при использовании -ffunction-sections в опциях линкера должно быть включено «Garbage collect unused sections (-Wl--gc-sections)», а то толку от использования -ffunction-sections не будет.

Для интересующихся, про настройки компилятора и линкера: Optimisations of AVR programs using avr-gcc

JTAGICE3 за дешево...может прокатит

Приходило мне от Рэйнбоу такое письмо:
Вы присылали заявку на участие в семинаре ATMEL «Применение 8/16-разрядных микроконтроллеров ATMEL AVR Xmega с USB. Решения ATMEL для сетей ZigBee». К сожалению, на практический семинар уже зарегистрировано максимальное количество участников.
Но у нас предусмотрен специальный бонус: Вы можете заказать универсальный программатор-отладчик JTAGICE3 для микроконтроллеров семейств AVR и AVR32 со скидкой 50%. Его стоимость для Вас составит всего 110 USD.
Присылайте Ваши заявки на e-mail sby@rtcs.ru до 18 мая 2012г.
Цена шикарная. Не знаю прокатит ли с других мэйлов. Протянул и забыл здесь написать раньше…

www.rtcs.ru
Правда покаталогу у них я его вообще не нашел. STK600 у них 240$.

Способ отладки механизмов вытесняющих RTOS на ПК топик-ссылка

Большая часть кода программ для МК может быть с успехом отлажена и протестирована на ПК. Зачем это нужно? Это удобно и сильно экономит время. Гораздо быстрее запустить программу на компьютере, посмотреть её вывод, походить по шагам, чем мучаться с железными отладчиками или мигать светодиодом. Плюс появляется удобная возможность писать авто-тесты. Автор заметки предлагает интересный способ имитации среды с прерываниями, в том числе позволяющий отлаживать внутренние механизмы вытесняющих RTOS.

Черный AVR DRAGON в год дракона

AVR
Каково место нашего Дракоши среди других зверей для АВР-друзей? Что он может? Как его безопасно юзать? Какими легендами окружен Дракон? Как практически начать работу?
Такие вопросы стояли передо мной в конце декабря 2011 года, я хочу поделится своими ответами.

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