|
Баги симуляторов ... |
|
|
|
 |
Ответов
|
Aug 24 2007, 16:43
|
Частый гость
 
Группа: Новичок
Сообщений: 110
Регистрация: 8-01-07
Из: Украина
Пользователь №: 24 216

|
Цитата А фраза "МК ATmega8 рабочая - проверено в Vmlab" меня привела в полный восторг! Сметься каждый гаразд. Звучит канешно не очень, но все же нужно быть менее придирчивым к словам.
|
|
|
|
|
Aug 25 2007, 01:31
|

кекс
     
Группа: Свой
Сообщений: 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 дня на поиски причины бага, все средства хороши. Внутрисхемный эмулятор - инструмент позволяющий сэкономить ваше время. Нет причин им не воспользоваться.
|
|
|
|
|
Aug 25 2007, 14:04
|

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

|
Цитата(defunct @ Aug 25 2007, 04:31)  Ибо вы вероятно работаете с одним и тем же набором камней с одинаковой периферией и операционкой которая покрывает весь "низ". Все с точностью до наоборот  У меня прериферия очень разная и очень внешняя (контроллер это почти всегда самый маленький чип на плате ). Контроллеры тоже за многие годы очень разные на пути встречались. Цитата Плюс у вас есть довольно толстая консоль (по меркам AVR) которая заменяет функционал внутрисхемного отладчика. Консоль обязательна. Толщина консоли, для, например MSC51 может более, чем скромная. Многое, очень многое и самое сложное отлаживается на другой машине. Как Вы вообще представляете себе отладку на железе, например обработки оцифрованного сигнала? Только не надо говорить, что приведенная задача это исключительно для толстых контроллеров - это, например, и задача для банальной AVR-ки по измерению преременого напряжения, или посложнее АОН/DTMF какой-нибудь телефонный... Цитата мелкие AVRки со своим объемом памяти не позволяют разместить ни консоль, ни нормальную ОС. Всегда можно загнать себя у угол  . Цитата ведь можно сразу писать под target девайс. TCCR1B = (1 << WGM12) | 5; Синтаксически все правильно. На разных МК будет совершенно разный результат. Чем тут может помочь инструментальная машина? А что, эту строчку трудно написать без мутной '5' ? А в чем вообще можно в ней ошибиться? Цитата свято верить, что на C/C++ можно сходу написать программу без ошибок - это вторая крайность, граничащая с писателями на ассемблере. Разумеется нет. Только глупо ошибится/описаться много много сложнее и самое главное получив результат "не работает" много эфективнее просто прочитать и обдумать написанный исходник, нежели тыкаться в снижающем кругозор (а многих, по моим наблюдениям провоцирующем на заплатки ) окошке отладчика. Для ASM писания польза от отладчика естественно много больше. В случаях типа полного рассыпания программы после внесения большого количества изменений отладчик поможет сориентироваться в проблеме. При самых первых шагах на новом контроллере не бесполезен... Я имею внутрисхемные отладчики на все контроллеры, которые использую, но пользуюсь ими КРАЙНЕ КРАЙНЕ редко - практически только при освоении собственно отладчика  . Цитата Внутрисхемный эмулятор - инструмент позволяющий сэкономить ваше время. Нет причин им не воспользоваться. Проблема в том, что нельзя быть рабом внутрисхемного эмулятора, размягчать себе мозги, писать не думая и каждую строчку 2+2= проверять. Цитата(rezident @ Aug 25 2007, 16:23)  А всего-то навсего закопипастил сравнение вместо присваивания  От такого, очень хорошо помогает опыт вдумчивого ЧТЕНИЯ исходников, вместо хватания за эмулятор. Многие вещи начинают просто бросаться в глаза, особенно. Цитата { flag==FLAG_START; //<==здесь ошибка на которую компилятор даже не мяргнул  А от такого - включение в компиляторе ВСЕХ Warnings, Remarks. Ну не встречал я за последний десяток лет компиляторов, которые не выдали-бы что-то типа "Expression has no effect"
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 25 2007, 16:46
|

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

|
Цитата(zltigo @ Aug 25 2007, 17:04)  Как Вы вообще представляете себе отладку на железе, например обработки оцифрованного сигнала? Только не надо говорить, что приведенная задача это исключительно для толстых контроллеров - это, например, и задача для банальной AVR-ки по измерению преременого напряжения, или посложнее АОН/DTMF какой-нибудь телефонный... Вполне нормально представляю. Такие задачи отлаживал внутрисхемным отладчиком. Собирается стенд. Подается на вход измеряемый сигнал. Запускается девайс под отладкой, смотрится результат - будь то посчитанная переменка или распознанный DTMF event. Если результат неверный - выпонение приостанавливается и смотрятся все структуры в памяти, если причины не понятны, добавляются отладочные поля. Повторный запуск и просмотр. Точки останова в ключевых местах, и баг находится не дольше чем за час. Цитата А что, эту строчку трудно написать без мутной '5' ? А в чем вообще можно в ней ошибиться? Цифра 5 тут как раз ничего страшного не делает, цифра "5" всегда приведет к запуску таймера, но возможно с разными значениями предделителя на разных МК. А вот более понятный (1 << WGM12) более опасен и на разных МК полностью меняет поведение таймера. Цитата Я имею внутрисхемные отладчики на все контроллеры, которые использую, но пользуюсь ими КРАЙНЕ КРАЙНЕ редко - практически только при освоении собственно отладчика  . Смотря для каких проектов. Долгострои с отлаженной операционкой я и сам редко отлаживаю внутрисхемными отладчиками. А в новых небольших проектах, там где надо сделать hal, портировать ОСку, настроить периферию зачем себя ограничивать? Цитата Проблема в том, что нельзя быть рабом внутрисхемного эмулятора, размягчать себе мозги, писать не думая и каждую строчку 2+2= проверять. Нельзя, но и отказываться от него совсем - не разумно.
|
|
|
|
|
Aug 25 2007, 17:11
|

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

|
Цитата(defunct @ Aug 25 2007, 19:46)  Такие задачи отлаживал внутрисхемным отладчиком. Собирается стенд. Подается на вход измеряемый сигнал.... Такие задачи можно пытатся отлаживать как угодно, и результат может, к сожалению, получится тоже какой угодно. А вообще такие эадачи моделирутся НЕ НА ОДНОМ КАКОМ-ТО входном сигнале в Матлабе, пишутся на инструментальной машине, на ней-же с проверяются и отлаживаются после чего переносятся на целевую платформу c получением гарантированного качества ВО ВСЕМ диапазоне и разнообразии входных сигналов. Цитата Нельзя, но и отказываться от него совсем - не разумно. Вы где-то на этом форуме видели мои призывы к выкидыванию внутрисхемных отладчиков? Если нет - то о чем это Вы?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
Я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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|