Перейти к содержанию
    

Заметил я, что любите вы, zltigo, банальности изрекать. Видимо считаете, что ваша колокольня самая высокая и самая прямая? ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как Вы вообще представляете себе отладку на железе, например обработки оцифрованного сигнала? Только не надо говорить, что приведенная задача это исключительно для толстых контроллеров - это, например, и задача для банальной AVR-ки по измерению преременого напряжения, или посложнее АОН/DTMF какой-нибудь телефонный...

Вполне нормально представляю. Такие задачи отлаживал внутрисхемным отладчиком. Собирается стенд. Подается на вход измеряемый сигнал.

Запускается девайс под отладкой, смотрится результат - будь то посчитанная переменка или распознанный DTMF event. Если результат неверный - выпонение приостанавливается и смотрятся все структуры в памяти, если причины не понятны, добавляются отладочные поля. Повторный запуск и просмотр. Точки останова в ключевых местах, и баг находится не дольше чем за час.

 

А что, эту строчку трудно написать без мутной '5' ? А в чем вообще можно в ней ошибиться?

Цифра 5 тут как раз ничего страшного не делает, цифра "5" всегда приведет к запуску таймера, но возможно с разными значениями предделителя на разных МК. А вот более понятный (1 << WGM12) более опасен и на разных МК полностью меняет поведение таймера.

 

 

Я имею внутрисхемные отладчики на все контроллеры, которые использую, но пользуюсь ими КРАЙНЕ КРАЙНЕ редко - практически только при освоении собственно отладчика :).

Смотря для каких проектов.

Долгострои с отлаженной операционкой я и сам редко отлаживаю внутрисхемными отладчиками.

А в новых небольших проектах, там где надо сделать hal, портировать ОСку, настроить периферию зачем себя ограничивать?

 

Проблема в том, что нельзя быть рабом внутрисхемного эмулятора, размягчать себе мозги, писать не думая и каждую строчку 2+2= проверять.

Нельзя, но и отказываться от него совсем - не разумно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заметил я, что любите вы, zltigo, банальности изрекать.

Многие, очень многие вещи банальны, в том числе и слежение за Warnigs, но Вы почему-то этим не воспользовались и предпочли потратить полтора часа на копание в дебагере. Причем после этого сочли возможным укорить компилятор :(.

Насчет банальностей - нет ничего банальнее в эмбеддерстве, нежели использование внутрисхемного отладчика вместо всего и вся по по анекдотному принципу "а чего тут думать - трясти надо".

Видимо считаете, что ваша колокольня самая высокая и самая прямая? ;)

Мои 'колокольни', как минимум, ободраны многочисленными моими влезаниями и падениями с них. Я уже писал на этом форуме, повторюсь, я не родился таким "умным" - многое достигалось изучением чужого опыта и собственным. Более того многие из моих 'колоколен' достаточно высоки, дабы говорить о некотором видении горизонтов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Многие, очень многие вещи банальны, в том числе и слежение за Warnigs, но Вы почему-то этим не воспользовались и предпочли потратить полтора часа на копание в дебагере. Причем после этого сочли возможным укорить компилятор :(.

как насчет такого бага:

if ( .... ); // .....

{

....

...

}

 

или такого

if ( pSmth->x = z )

{

}

 

слежение за Warning'ами становится нетривиальной задачей, когда в проекте около сотни файлов и около сотни известных warning'ов, порождаемых обращениями к открытым массивам ( Payload[1] ).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такие задачи отлаживал внутрисхемным отладчиком. Собирается стенд. Подается на вход измеряемый сигнал....

Такие задачи можно пытатся отлаживать как угодно, и результат может, к сожалению, получится тоже какой угодно. А вообще такие эадачи моделирутся НЕ НА ОДНОМ КАКОМ-ТО входном сигнале в Матлабе, пишутся на инструментальной машине, на ней-же с проверяются и отлаживаются после чего переносятся на целевую платформу c получением гарантированного качества ВО ВСЕМ диапазоне и разнообразии входных сигналов.

Нельзя, но и отказываться от него совсем - не разумно.

Вы где-то на этом форуме видели мои призывы к выкидыванию внутрисхемных отладчиков?

Если нет - то о чем это Вы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ну знаете уж.. Что может быть достоверней натурного моделирования?

НИ-ЧЕ-ГО.

Вот с моделированием в матлабе и в прочей лабуде как раз и получается результат "какой угодно".

 

А вообще такие эадачи моделирутся НЕ НА ОДНОМ КАКОМ-ТО входном сигнале в Матлабе

Не понял фразы.

Матлаб я вообще не использую.

 

Вы где-то на этом форуме видели мои призывы к выкидыванию внутрисхемных отладчиков?

Если нет - то о чем это Вы?

В этой ветке! По крайней мере видел, что Вы дали понять - что пользы от внутрисхемных отладчиков мало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как насчет такого бага:

if ( .... ); // .....

{

Да, такое обычно молча падает жертвой оптимизации.

Если посмотрите несколько выше на мои посты, то увидите, что включение Warnings было не первым условием - первым ВАЖНЕЙШИМ условием было развитие умения читать исходные тексты. Умение читать на таком уровне 'грамотности', когда всякие 'мелочи' типа лишних или отсутствующих 'запятых' режут глаз. К сожалению, по личным наблюдениям, это умение много хуже развито у чрезмерных пользователей отладчиков (не важно, внутрисхемных или, например Visual C). Чуть что в отладчик и топать, пока отладчик 'пальцем' не покажет. Много хуже другое, что проблемы развиваются и написанием. "Чего-то напишу, а потом, что 'неправильно' отладчик покажет - залатаю" заметно сказывается на результате :(.

if ( pSmth->x = z )

{

Это возмутительно - какой компилятор позволил себе не выдать Warning|Remark на такое?

слежение за Warning'ами становится нетривиальной задачей, когда в проекте около сотни файлов и около сотни известных warning'ов, порождаемых обращениями к открытым массивам ( Payload[1] ).

Опять изреку 'банальнось' :) - известные Warnings в 98 случаях из 100 исчезают, если четко выразить мысль компилятору. В одном случае из 100 давятся конкретно в одном конкретном месте конкретной прагмой. И только оставшийся один, относящийся к, например, к портабельности (типа присвоения указателя лонгу совершенно законный на ARM платформе, но череватый при переносе на другую платформу) давится глобально в проекте/make.

 

P.S.

Еще совет - рекомендую пользоваться С++ компилятором, даже для компиляции "С" исходников - кроме небольших, но приятных, бонусов, обычно более строгие разброки с исходниками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Многие, очень многие вещи банальны, в том числе и слежение за Warnigs, но Вы почему-то этим не воспользовались и предпочли потратить полтора часа на копание в дебагере. Причем после этого сочли возможным укорить компилятор :(.

Дык не было варнига-то!!! В этом-то все и дело! Я стараюсь чтобы их вообще не было, а если они есть, то естественно оцениваю степень их критичности. В данном случае я вообще модифицировал чужую программу с не до конца понятными мне алгоритмами в условиях жестокого цейтнота. Как тут без эмулятора-то? :07:

Насчет банальностей - нет ничего банальнее в эмбеддерстве, нежели использование внутрисхемного отладчика вместо всего и вся по по анекдотному принципу "а чего тут думать - трясти надо".

Опять двадцать пять! А с какого это перепуга вы решили, что я исключительный апологет эмуляторов и дебаггеров? Во многих устройствах у меня JTAG не выведен даже. Но я не бросаюсь в крайности и по мере необходимости не брезгую ни симуляторами, ни эмуляторами.

Мои 'колокольни', как минимум, ободраны многочисленными моими влезаниями и падениями с них. Я уже писал на этом форуме, повторюсь, я не родился таким "умным" - многое достигалось изучением чужого опыта и собственным. Более того многие из моих 'колоколен' достаточно высоки, дабы говорить о некотором видении горизонтов.

Ну да, ну да. Все мы учились понемногу, чему-то тут, чему-то там :) Я не профессиональный программист и вообще программированием МК занимаюсь от случая к случаю. Так что моя колоколенка нызенькая-нызенькая, но ведь я и не утверждаю обратного ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну знаете уж.. Что может быть достоверней натурного моделирования?

НИ-ЧЕ-ГО.

Смотря что понимать под 'натурным'. Нормальная не 'паркетная' натура, стоит всегда ОЧЕНЬ дорого.

Вы там писали "Подается на вход измеряемый сигнал" от чего он подается? От, например, генертора

синусоиды? Ладно, амплитуду своего лабораторного генератора сможете менять, частоту тоже. Что там с гармониками? Ничего :( - почти наверняка не изменить. Шумы подмешать сможете - да, если есть генератор шума. А что там с не белыми да розовыми шумами? Ага, ставим еще импульсный генератор. Так, теперь добавляем еще семь синусоидальных генераторов и получаем неплохой стенд для натурного моделирования банальнейшего DTMF приемника.

Спасибо, но такая натура для меня это дороговато будет. Хорошо еще, что не самолет делаю и не надо будет при натурных испытаниях их пачками ломать :).

Причем, я вообще не представаляю в какое 'место' сунуть отладчик, если при каком-то сочетании будет неверное распознавание.

Это:

Вот с моделированием в матлабе и в прочей лабуде как раз и получается результат "какой угодно".

и

Матлаб я вообще не использую.

как-то плохо между собой соотносятся. А использовать чего-нибудь кроме внутрисхемного отладчика никогда не поздно начать :).

В этой ветке! По крайней мере видел, что Вы дали понять - что пользы от внутрисхемных отладчиков мало.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как насчет такого бага:

if ( .... ); // .....

{

....

...

}

15 лет назад писали, что из-за подобного бага даже у NASA прокол получился. Из-за лишней точки с запятой в программе была потеряна связь с аппаратом, запущенным к Марсу или куда подальше (точно не помню уже).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дык не было варнига-то!!! В этом-то все и дело!

Какой компилятор? В любом случае начать с ознакомления с инструментом и принудительной активизации всей ругани.

В данном случае я вообще модифицировал чужую программу с не до конца понятными мне алгоритмами в условиях жестокого цейтнота. Как тут без эмулятора-то? :07:

Опять о банальном :( Либо программа станет "Вашей", либо с удручающей вероятностью после быстрого кавалерийского наскока буде еще хуже.

Опять двадцать пять! А с какого это перепуга вы решили, что я...

Я не решил. Просто упорно излагаю свои мысли. Извините, если некоторые из них показались реакцией именно на Ваши посты.

Я не профессиональный программист и вообще программированием МК занимаюсь от случая к случаю.

Вы будете смеяться, но я тоже :), хотя последние годы программированием занимаюсь все больше и больше, и больше..... , ибо 'надо' - самый провальный участок оказался :(. Но иногда жалею :( о прошлом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какой компилятор?

IAR EW430 4.32A.

В любом случае начать с ознакомления с инструментом

Ознакомлен.

и принудительной активизации всей ругани.

Включена, но что-то там не в порядке в этой версии. Иногда возникают ошибки в том месте, где их до этого не было и где я ничего не менял. Вроде помогает Rebuild All или выгрузка/загрузка среды снова. Я уже покаялся, что начал проект в версии 4.32A, хотя до этого работал с вполне вменяемой 3.30A. Судя по всему команда разработчиков IAR немало багов исправила, т.к. есть сообщение о версии 3.42E, которая видимо только в full-версии имеется. Версия Evaluation по-прежнему только 3.42A доступна.

Опять о банальном :( Либо программа станет "Вашей", либо с удручающей вероятностью после быстрого кавалерийского наскока буде еще хуже.

Не всегда человек властен над реальностью, иногда и она доминирует :(

Вы будете смеяться, но я тоже :), хотя последние годы программированием занимаюсь все больше и больше, и больше..... , ибо 'надо' - самый провальный участок оказался :(. Но иногда жалею :( о прошлом.

Тоже изреку банальность. Современная железка на базе МК без софта, наполняющего его "жизнью", остается "мертвой" и никому не нужной. Се ля ви :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отчего-же? Большая часть вообще должна писаться и отлаживаться на инструментальной машине и только потом уже в дышащем виде переноситься на целевой контроллер.

Про "отладку" простейшего периферийного железа контроллеров общего назначения хоть в симуляторах, хоть нет я просто помолчу, ибо вообще не понимаю, чего там "отлаживать".

В конце концов и если кто-то не может прочитать пару сот строк документации, обдумать и после этого написать пару десятков строк без ошибок и при этом принципиально пишет на ASM (которым на самом деле не владеет) то мне до этого просто нет дела

zltigo я Вам задам один простой вопрос, приходилось ли Вам отлаживать работу

i2c на чипах AT91SAM7 ?

Если не приходилось, то наверное мы друг друга не поймем :)

А если приходилось, и Вам удалось это сделать(написать пару десятков строк основываясь только

на даташите), то извините, я Вам просто не поверю, хотя бы на том основании что IAR, из-за

глючности/плохой/ошибочной документации на эти чипы, просто сделала доступ в своих исходниках

по i2c, побайтовым!

Вопрос, сможете ли Вы, без отладчика, написать пару десятков строк для обслуживания i2c

на SAM7 пользуясь только даташитом ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

zltigo я Вам задам один простой вопрос, приходилось ли Вам отлаживать работу

i2c на чипах AT91SAM7 ?

Нет, но приходилось многое, что другое.

Если не приходилось, то наверное мы друг друга не поймем :)

Зато для меня обыденное дело иметь дело с периферийными чипами для которых документация измеряется многими сотнями-тысячей листов. Причем эта документация скудная :( и ввиду много меньшего круга пользователей такими чипами мнооооого худшего качества. Я пока жив. Разбоки и лабораторные работы трудоемки, обращения support неизбежны, но до сих пор все получалось. Кроме того у меня есть приобретенне за многие годы "чувство железа", а оно только путем логических размышлений достигается а не изучения эмуляторов.

Вам просто не поверю, хотя бы на том основании что IAR, из-за

глючности/плохой/ошибочной документации на эти чипы, просто сделала доступ в своих исходниках

по i2c, побайтовым!

А если я скажу, что никогда не пользуюсь халявными хидерами от производителей компиляторов, мои шансы на успех в Ваших глазах возрастут :)?

 

 

 

IAR EW430 4.32A.

Полагаю 3.42 :)

Берем вышеозначенный компилятор. Без всякого заумства в виде добвавления каких-либо ключей,

хотя я обычно сразу добавляю

--warnings_affect_exit_code

--warnings_are_errors

--remarks

компилим:

    if( count = 3 )
    {  do_dummy();
    }    
    count == 7;

Получаем:

IAR MSP430 C/C++ Compiler V3.42A/W32 [Evaluation]

Copyright 1996-2006 IAR Systems. All rights reserved.

Warning[Pe187]: use of "=" where "==" may have been intended ....

Warning[Pe174]: expression has no effect ....

Вот такой эксперимент.

Вопрос зачем было supress на warning ставить можете задать себе.

что-то там не в порядке в этой версии. Иногда возникают ошибки в том месте, где их до этого не было и где я ничего не менял. Вроде помогает Rebuild All или выгрузка/загрузка среды снова.

IDE не пользую, точнее пользую, но не чаще, чем отладчик :)

есть сообщение о версии 3.42E, которая видимо только в full-версии имеется. Версия Evaluation по-прежнему только 3.42A доступна.

Если patch успели скачать до изменения IAR-ом upgrade политики, то прикрутим его и к Evalution..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос, сможете ли Вы, без отладчика, написать пару десятков строк для обслуживания i2c

на SAM7 пользуясь только даташитом ?

Вмешаюсь и Я. А может быть, что АТМЕЛ сделал такие даташиты намеренно? Ну например платные семинары или скорее всего сбор данных о специалистах обращающихся в службу поддержки? Другого обьяснения качества datasheet на sam7 не представляю.

А как там у других АРМов? Может быть они(камни) или дороже/хуже? Раз АТМЕЛ может позволить такой datasheet?

Изменено пользователем Т.Достоевский

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...