реклама на сайте
подробности

 
 
> Баги симуляторов ...
Яrik
сообщение Aug 24 2007, 14:06
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 110
Регистрация: 8-01-07
Из: Украина
Пользователь №: 24 216



Придлагаю скидывать в данную ветку все встричающиеся баги программ симуляторов-эмуляторов (Proteus, Vmlab, AvrStudio).

Сам пока столкнулся только со следующим:

В Proteus 6.9.03 не работает прерывание от Input Capure (могу ошибаться, буду рад если меня исправят, но программа МК ATmega8 рабочая - проверено в Vmlab).

Сообщение отредактировал Яrik - Aug 24 2007, 14:26
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Яrik
сообщение Aug 24 2007, 16:43
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 110
Регистрация: 8-01-07
Из: Украина
Пользователь №: 24 216



Цитата
А фраза "МК ATmega8 рабочая - проверено в Vmlab" меня привела в полный восторг!

Сметься каждый гаразд. Звучит канешно не очень, но все же нужно быть менее придирчивым к словам.
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 25 2007, 01:31
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Яrik @ Aug 24 2007, 19:43) *
Сметься каждый гаразд. Звучит канешно не очень, но все же нужно быть менее придирчивым к словам.

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

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

Ибо вы вероятно работаете с одним и тем же набором камней с одинаковой периферией и операционкой которая покрывает весь "низ". Плюс у вас есть довольно толстая консоль (по меркам AVR) которая заменяет функционал внутрисхемного отладчика.

мелкие AVRки со своим объемом памяти не позволяют разместить ни консоль, ни нормальную ОС. В этом случае внутрисхемный отладчик единственный способ эффективной отладки программы вообще.

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

Может быть вам так удобно. Мне например удобнее сразу писать и отлаживать программу в target железе в том виде в каком она потом будет в конечном изделии.

Писать и отлаживать на инструментальной машине - это все равно что делать двойную работу. Писать - потом портировать. Зачем? ведь можно сразу писать под target девайс.

Цитата
Я тоже заметил, что Си++ (ну а чуть ранее Си) такие языки, на которых совершить ошибку не так просто. Если четко понимаешь чего хочешь получить в результате и владеешь этим языком, то получаешь это!

TCCR1B = (1 << WGM12) | 5;
Синтаксически все правильно. На разных МК будет совершенно разный результат.
Чем тут может помочь инструментальная машина?

свято верить, что на C/C++ можно сходу написать программу без ошибок - это вторая крайность, граничащая с писателями на ассемблере.

Там где можно сэкономить 1-2 дня на поиски причины бага, все средства хороши. Внутрисхемный эмулятор - инструмент позволяющий сэкономить ваше время. Нет причин им не воспользоваться.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 25 2007, 14:04
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(defunct @ Aug 25 2007, 04:31) *
Ибо вы вероятно работаете с одним и тем же набором камней с одинаковой периферией и операционкой которая покрывает весь "низ".

Все с точностью до наоборот smile.gif У меня прериферия очень разная и очень внешняя (контроллер это почти всегда самый маленький чип на плате ). Контроллеры тоже за многие годы очень разные на пути встречались.
Цитата
Плюс у вас есть довольно толстая консоль (по меркам AVR) которая заменяет функционал внутрисхемного отладчика.

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

Всегда можно загнать себя у угол smile.gif.

Цитата
ведь можно сразу писать под target девайс.
TCCR1B = (1 << WGM12) | 5;
Синтаксически все правильно. На разных МК будет совершенно разный результат.
Чем тут может помочь инструментальная машина?

А что, эту строчку трудно написать без мутной '5' ? А в чем вообще можно в ней ошибиться?
Цитата
свято верить, что на C/C++ можно сходу написать программу без ошибок - это вторая крайность, граничащая с писателями на ассемблере.

Разумеется нет. Только глупо ошибится/описаться много много сложнее и самое главное получив результат "не работает" много эфективнее просто прочитать и обдумать написанный исходник, нежели тыкаться в снижающем кругозор (а многих, по моим наблюдениям провоцирующем на заплатки ) окошке отладчика. Для ASM писания польза от отладчика естественно много больше. В случаях типа полного рассыпания программы после внесения большого количества изменений отладчик поможет сориентироваться в проблеме. При самых первых шагах на новом контроллере не бесполезен...
Я имею внутрисхемные отладчики на все контроллеры, которые использую, но пользуюсь ими КРАЙНЕ КРАЙНЕ редко - практически только при освоении собственно отладчика smile.gif.
Цитата
Внутрисхемный эмулятор - инструмент позволяющий сэкономить ваше время. Нет причин им не воспользоваться.

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



Цитата(rezident @ Aug 25 2007, 16:23) *
А всего-то навсего закопипастил сравнение вместо присваивания smile.gif

От такого, очень хорошо помогает опыт вдумчивого ЧТЕНИЯ исходников, вместо хватания за эмулятор.
Многие вещи начинают просто бросаться в глаза, особенно.
Цитата
{ flag==FLAG_START; //<==здесь ошибка на которую компилятор даже не мяргнулwink.gif

А от такого - включение в компиляторе ВСЕХ Warnings, Remarks.
Ну не встречал я за последний десяток лет компиляторов, которые не выдали-бы что-то типа
"Expression has no effect"


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 25 2007, 16:46
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(zltigo @ Aug 25 2007, 17:04) *
Как Вы вообще представляете себе отладку на железе, например обработки оцифрованного сигнала? Только не надо говорить, что приведенная задача это исключительно для толстых контроллеров - это, например, и задача для банальной AVR-ки по измерению преременого напряжения, или посложнее АОН/DTMF какой-нибудь телефонный...

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

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

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


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

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

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

Нельзя, но и отказываться от него совсем - не разумно.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 25 2007, 17:11
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(defunct @ Aug 25 2007, 19:46) *
Такие задачи отлаживал внутрисхемным отладчиком. Собирается стенд. Подается на вход измеряемый сигнал....

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

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Яrik   Баги симуляторов ...   Aug 24 2007, 14:06
- - Igor26   Цитата(Яrik @ Aug 24 2007, 18:06) Придлаг...   Aug 24 2007, 15:45
|- - zltigo   Цитата(Igor26 @ Aug 24 2007, 18:45) Моё м...   Aug 24 2007, 16:15
|- - singlskv   Цитата(zltigo @ Aug 24 2007, 20:15) Отчег...   Aug 25 2007, 21:27
|- - zltigo   Цитата(singlskv @ Aug 26 2007, 00:27) zlt...   Aug 25 2007, 22:40
||- - defunct   Цитата(zltigo @ Aug 26 2007, 01:40) компи...   Aug 25 2007, 23:04
||- - rezident   Цитата(zltigo @ Aug 26 2007, 04:40) Полаг...   Aug 25 2007, 23:43
||- - zltigo   Цитата(rezident @ Aug 26 2007, 02:43) Ну ...   Aug 26 2007, 07:16
||- - rezident   Цитата(zltigo @ Aug 26 2007, 13:16) ...   Aug 26 2007, 10:15
|||- - zltigo   Цитата(rezident @ Aug 26 2007, 13:15) Я в...   Aug 26 2007, 11:09
||- - SasaVitebsk   Цитата(zltigo @ Aug 26 2007, 11:16) Я про...   Nov 13 2007, 19:25
|- - Т.Достоевский   Цитата(singlskv @ Aug 26 2007, 01:27) Воп...   Aug 25 2007, 23:03
- - Яrik   ЦитатаА фраза "МК ATmega8 рабочая - проверено...   Aug 24 2007, 15:54
- - =AVR=   Лучше сказать более обтекаемо - симуляторами можно...   Aug 24 2007, 15:57
|- - vesago   Цитата(=AVR= @ Aug 24 2007, 18:57) Лучше ...   Aug 25 2007, 08:40
|- - haker_fox   Цитата(Яrik @ Aug 25 2007, 01:43) Сметься...   Aug 25 2007, 00:04
|- - haker_fox   Цитата(defunct @ Aug 25 2007, 10:31) свят...   Aug 25 2007, 03:44
|- - vesago   Цитата(zltigo @ Aug 25 2007, 17:04) Пробл...   Aug 25 2007, 14:44
|- - defunct   Цитата(zltigo @ Aug 25 2007, 20:11) Такие...   Aug 25 2007, 17:27
|- - zltigo   Цитата(defunct @ Aug 25 2007, 20:27) Ну з...   Aug 25 2007, 18:16
- - Kirill Trusov   камень в огород симуляторов, посморите мою ветку а...   Aug 24 2007, 20:44
- - rezident   Вроде все уже сказали правильно. В симуляторе отла...   Aug 25 2007, 13:23
- - vesago   Да, жостка. Я тоже страдаю такого рода описками. П...   Aug 25 2007, 13:35
- - rezident   Заметил я, что любите вы, zltigo, банальности изре...   Aug 25 2007, 15:59
|- - zltigo   Цитата(rezident @ Aug 25 2007, 18:59) Зам...   Aug 25 2007, 16:57
|- - defunct   Цитата(zltigo @ Aug 25 2007, 19:57) Многи...   Aug 25 2007, 17:04
||- - zltigo   Цитата(defunct @ Aug 25 2007, 20:04) как ...   Aug 25 2007, 17:51
||- - rezident   Цитата(defunct @ Aug 25 2007, 23:04) как ...   Aug 25 2007, 18:22
|- - rezident   Цитата(zltigo @ Aug 25 2007, 22:57) Многи...   Aug 25 2007, 17:57
|- - zltigo   Цитата(rezident @ Aug 25 2007, 20:57) Дык...   Aug 25 2007, 18:31
|- - rezident   Цитата(zltigo @ Aug 26 2007, 00:31) Какой...   Aug 25 2007, 19:11
- - rezident   Все понятно стало. Под "продуктом IAR" в...   Aug 26 2007, 12:02
|- - zltigo   Цитата(rezident @ Aug 26 2007, 15:02) Все...   Aug 26 2007, 12:06
- - ReAl   Цитата(defunct @ Aug 25 2007, 19:04) как ...   Aug 26 2007, 17:45
|- - defunct   Цитата(ReAl @ Aug 26 2007, 20:45) С друго...   Aug 26 2007, 23:38
- - Snaky   Цитата(defunct @ Aug 25 2007, 23:04) как ...   Aug 27 2007, 03:02
- - _Pasha   Avr Studio 4.13 build 528 При работе с UART в меге...   Nov 13 2007, 10:41
- - Igor26   2Zltigo. А теперь представьте такую ситуацию. Прин...   Nov 14 2007, 11:12
|- - taranoid   В даташите на мегу48 меня сразили на повал примеры...   Nov 15 2007, 16:53
- - _Pasha   Цитата(taranoid @ Nov 15 2007, 20:53) В д...   Nov 15 2007, 18:27
|- - taranoid   Мне по спешке было проще заменить мегу48 на мегу 8...   Nov 20 2007, 15:27
- - Maik-vs   AVR Studio 4.13.555 Обычно вечером пишу в програм...   Nov 19 2007, 07:41
|- - ae_   Цитата(Maik-vs @ Nov 19 2007, 16:41)...   Nov 20 2007, 03:10
|- - Maik-vs   Цитата(ae_ @ Nov 20 2007, 07:10) Не вижу ...   Nov 20 2007, 10:26
- - _Pasha   Цитата(Maik-vs @ Nov 20 2007, 13:26)...   Nov 20 2007, 12:20
|- - Maik-vs   Цитата(_Pasha @ Nov 20 2007, 16:20) Небос...   Nov 22 2007, 10:47
- - 011119xx   в vmlab при просмотре окна периферии для АЦП ATmeg...   Dec 4 2007, 04:51
- - SasaVitebsk   вроде работает   Sep 24 2008, 11:32
- - okela   В АВРСтудии 4.12сп4 была замечена следующая бага (...   Feb 20 2009, 12:52


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 17:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01485 секунд с 7
ELECTRONIX ©2004-2016