Доступ к битам через указатель на структуру или манипулирование битами периферии в gdb

Вначале посмотрим как это делается на arm-none-eabi.

При отладке программ под arm-none-eabi, для просмотра регистров в отладчике
arm-none-eabi-gdb в тексте программы описываю структуру регистра,
объявляю указатель на структуру и присваиваю указателю адрес регистра и вуаля,
в arm-none-eabi-gdb print печатает содержимое регистра и позволяет менять
значения битов и все в человеческом виде.

На msp430 не все так радужно.



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

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

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

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



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

Используем отладку LPC-Link без CodeRed IDE

Всем привет,
Дошли наконец руки до валяющейся уже год экспрессы с 1768 на борту. Но поскольку CodeRed IDE мне категорически не нравится, появилось стойкое желание завести отладку под любой другой IDE. Что мне отчасти удалось. Опишу, что я сделал, может у кого-то появится идея, как быть дальше.



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

Отладочная плата для STM32 aka B.M.O.W.

B.M.O.W.

Я по роду основной деятельности программист, очень много работал на ARM платформе (Symbian, Windows Mobile, Linux, you name it ;)) и вот недавно решил приложить свои профессиональные навыки к хобби — завести ручногоотладочную плату STM32. Развел «Орлом» одностороннюю плату по даташиту с джамперами переключения загрузчика, отключением часового и основного кварцев и всеми портами наружу + JTAG (20-ти пиновый, что конечно оверкилл, но я к таким привык).
Вид сверху: все вроде прилично ;), окромя рабочего бардака на столе…



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

LPCXpresso отладка в SlickEdit

Компилить для LPCXpresso можно в Keil, а вот отладка работает только в родной среде. Или нет?
Заливаем прошивку в плату (для чего в кейле уже настроена кнопка прошивки). Строка заливки:
crt_emu_lpc11_13_nxp.exe -wire=winusb -pLPC1114/302 -flash-load-exec=«test.axf»
Создаем GDB-сервер с помощью той же утилитки от NXP:
crt_emu_lpc11_13_nxp -g -2 -pLPC1114/302 -wire=winusb -server=:3333 -mi
(эта строка у меня в батнике).
Запускаем SlickEdit. В меню есть подключение к удаленному процессу (GDB).
Добавляем в конфигурацию GDB ARM для отладки на ARM.


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

Использование gcc для stm32f100

Примерно полгода назад я обзавелся самым мелким контроллером stm32f100c4. Здесь я хотел бы изложить свой опыт применения средств разработки gcc вживую, без графической оболочки. Описывается установка, создание проекта — использование Makefile, прошивка через UART, отладка через gdb на stm32vldiscovery, ну и самое главное — грабли

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