LPCXpresso Урок 13. Debug. Погружаемся в отладку на примере UART.

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


Читать дальше
  • +2
  • 22 сентября 2011, 09:08
  • angel5a
  • 1

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

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



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

Мелочи жизни

DI HALT (19:48:32 5/08/2011)
Привет, тут?

Spiritus Sancti (19:48:41 5/08/2011)
*YES*

DI HALT (19:48:56 5/08/2011)
хошь мозг поломать? Я тут с мистикой столкнулся ваще блин

Spiritus Sancti (19:49:04 5/08/2011)
м?

Читать дальше
  • 0
  • 05 августа 2011, 22:28
  • DIHALT

Отладка STM32 в среде Eclipse+GCC

Так как я недавно перешел на использование связки Eclipse+CodeSourcery G++ Lite в качестве среды разработки для микроконтроллеров STM32, то у меня встал вопрос об отладке с помощью ST-Link.
Решение было найдено в виде ST-Link gdbserver, который легко прикручивается к Eclipse. О чем я кратко и расскажу в этой статье.


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

Протеус vs. Реальность

Протеус, хоть и умеет вполне прилично симулировать работу цифровых (а в хорошую погоду — даже аналоговых) схем, не лишен огромного числа багов.

Вот простой пример:

Тини2313 имеет 3 пина порта A: A0, A1 — под XTAL и A2 — под ресетом.
Все биты регистров PINA, PORTA и DDRA, начиная с 3го бита — зарезервированы. Всегда читаются как 0, а писать в них нельзя. Это в реальности. А в Протеусе можно.

.include "tn2313def.inc"

sbi DDRB,4  ; Зеленая лампочка - "реальность"
sbi DDRB,2  ; Красная лампочка - "протеус"

sbi PORTA, 3 ;Пробуем поднять несуществующий пин
sbis PORTA,3 ; Если он поднялся, то мы во сне
rjmp Its_real
 sbi PORTB,2 ; А если мы во сне, то зажигаем красную лампочку
rjmp end
Its_real:
 sbi PORTB,4 ; Иначе - зеленую
End:
rjmp end


Это, кстати, самый простой способ понять, что мы под колпаком эмулятора.

Дальше — веселее. Если запустить ШИМ в режиме Fast PWM на высокой частоте (XTAL = 8MHz, предделитель отключен) и загнать в OCR число 255, то на выходе мы получим «пульс трупа». Но не на уровне 5V, как ожидалось, а на уровне земли.
А еще протеус позволяет невозбранно переключать пины, занятые UART.

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

Кто знает другие баги протеуса?

Отладка в Quartus II с помощью JTAG

Я описал USB-Blaster и сказал что он прошивает только через JTAG. Некоторые спрашивают: «Если это JTAG, тогда через него можно отлаживать?», — да, можно.

Когда вы отлаживаете МК, то у вас на виду текущее значение регистров и место где сейчас находится выполнение программы, можно в режиме реального времени изменять регистры и выполнять программу по шагам. В ПЛИС никаких регистров нет, а тем более программы, как же там происходит отладка?

//в статье описано как с помощью встроенных функций Quartus получить хороший логический анализатор


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

Как заглянуть в мозги AVR AtMega без JTAG и гемороя

AVR
Ну нету у меня JTAG! А значения переменных посмотреть хочется!
Что делать? (с) Чернышевский. «Кто виноват?», «Кому на Руси жить хорошо?» — тьфу ты не туда.



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

Реализация кольцевого буфера на языке Verilog HDL. Пара слов о поиске ошибок.

У нас уже есть примеры реализации кольцевого буфера на языках Assembler (для STM32) [1], C [2] и C++ [3]. Пожалуй, продолжим. В этой статье я приведу пример реализации простенького кольцевого буфера на языке Verilog HDL. Так же будет приведен разбор типовой ошибки, которую я допустил при написании этого кода.


Читать дальше
  • +2
  • 06 апреля 2011, 22:25
  • Alatar

Ахтунг! Bray Terminal похоже глючит!

дружусь сейчас с памятью AT24xxx по i2c. i2c потрогал тоже первый раз в жизни, так что дебага хватило с головой(третий день вот идет):-) Наткнулся на такие грабли — когда из Брая выстреливаешь достаточно длинный кусок байт(больше 20ти например) или запуливаешь через него из файла — в половине случаев куда-то кушается начальный кусок посылки, причем не байт-два, а добрая половина. Эта хня убила у меня наверное часа полтора лишнего дебага. Подключился через легальный COMPort Toolkit — все вроде бы ОК. Юзаю Брай всю сознательную электронную жизнь, но более ранние проекты не требовали такого объема трафика, несколько байт туда-сюда и все. И ведь вполне возможно, что из-за его глюков я так и недораскурил SD CARD на асме:-) Если кто-то может подтвердить инфу о небезгрешности Брая — дайте знать, буду искать терминалку получше, ибо КомПортТулкитом пользоваться в качестве терминала мерзковато.