|
|
  |
В каких случаях отладка/тестирование в симуляторе более оптимальны, чем в "железе"?, Какие задачи по отладке/тестированию вообще решаемы только в симулятор |
|
|
Guest_Цыкетчик_*
|
Sep 24 2008, 09:19
|
Guests

|
1. В каких случаях отладка/тестирование в симуляторе более оптимальны, чем в "железе", а в каких менее оптимальны? (оптимальны в смысле затрат времени и/или интеллектуальных ресурсов (отладка может быть НЕ оптимальной с точки зрения затрат времени, но оптимальной с точки зрения затрат интеллектуальных ресурсов (когда "думать не надо"(писать всякие отладочные скрипты и т.п.)))) 2. Какие задачи по отладке/тестированию вообще решаемы только в симуляторе и не решаемы в железе?
Часто слышу такую точку зрения, что симуляторами пользуются только ламеры и начинающие электронщики. А профессионалы ("правильные" инженеры), мол, пользуются только отладкой/тестированием программы в реальном "железе".
Что Вы думаете по этому поводу? Особенно интересуют ответы на вопрос п.2
Говоря о симуляторах я не имею ввиду конкретные симуляторы типа AVR Studio с урезанными возможностями (из-за которых возможно "правильные" инженеры и возненавидели все симуляторы как класс программного обеспечения) в которых даже отладочные скрипты нельзя писать. Я говорю вообщем
По п.2
Я думаю, например, что это когда например нужно добавить в прогу отладочный код, но при этом чтобы время выполнения участков программы не изменилось. Это подвластно только симулятору. Поскольку только он может подкорректировать часы виртуального времени вычтя из них дельту, необходимую для работы отладочного кода
Сообщение отредактировал Цыкетчик - Sep 24 2008, 09:47
|
|
|
|
|
Sep 24 2008, 11:53
|
Частый гость
 
Группа: Участник
Сообщений: 138
Регистрация: 31-08-08
Пользователь №: 39 900

|
Цитата(Цыкетчик @ Sep 24 2008, 13:19)  1. В каких случаях отладка/тестирование в симуляторе более оптимальны, чем в "железе", а в каких менее оптимальны? (оптимальны в смысле затрат времени и/или интеллектуальных ресурсов (отладка может быть НЕ оптимальной с точки зрения затрат времени, но оптимальной с точки зрения затрат интеллектуальных ресурсов (когда "думать не надо"(писать всякие отладочные скрипты и т.п.)))) Во всех случаях, симулятор оптимальнее. Не оптимален при недостатке знаний и опыта работы с программой. Иногда проще моделировать в железе, например, взаимное влияние корпусов элементов и геометрический конструктив высокочастотных устройств. Цитата 2. Какие задачи по отладке/тестированию вообще решаемы только в симуляторе и не решаемы в железе? При отсутствии измерительного оборудования, возможно, например, измерение и наблюдение за формой тока, в любых цепях (переходы транзистора и.т.д), наблюдение за величинами, ёмкость, сопротивление, мощность и.т.д. Вы можете в виде графика наблюдать кривую мощность на переходе диода, транзистора и.т.д. Можете видеть комплексные величины и величины заданные в виде формул. Цитата Часто слышу такую точку зрения, что симуляторами пользуются только ламеры и начинающие электронщики. А профессионалы ("правильные" инженеры), мол, пользуются только отладкой/тестированием программы в реальном "железе". Это шутка наверно. После разработки занимаюсь только проверкой работоспособности, никакой отладки. Если изделие не работает, пересчитываю, переделываю и снова проверяю в железе. Отладка в железе, подбор номиналов и.т.п, это же геморрой, да и сгореть может. Цитата Говоря о симуляторах я не имею ввиду конкретные симуляторы типа AVR Studio с урезанными возможностями (из-за которых возможно "правильные" инженеры и возненавидели все симуляторы как класс программного обеспечения) в которых даже отладочные скрипты нельзя писать. Я говорю вообщем В общем, не знаю, знаком только с Pspice и MicroCap. Занимаюсь разработкой таких изделий, которые без симулятора сложно спроектировать. Только, что дочитал ваш пост до конца, вы имели в виду другие симуляторы, да ну ладно ответ не по теме, но пусть будет.
Сообщение отредактировал korolkov24 - Sep 24 2008, 12:02
|
|
|
|
Guest_Цыкетчик_*
|
Sep 24 2008, 13:00
|
Guests

|
Спасибо за столь подробный и развёрнутый ответ.
Но, Вы, как я понял, говорили о схемотехнических симуляторах аналоговых устройств. А я бы хотел поговорить о симуляторах микроконтроллеров, позволяющих выполнять, тестировать и отлаживать код Target MCU у себя на компе. Т.е. о компьютерной программе, в которой можно иммитировать входные сигналы, выполнять программу для Target MCU и получать выходные сигналы такие же, какие будут в реальном ("железном") микроконтроллере.
Прошу прощения, что сразу не сделал это уточнение
Ещё по п.2 В симуляторе легко можно "подать на пин" напряжение ПРОИЗВОЛЬНОЙ формы, что мягко говоря затруднительно будет сделать в реальном железе
|
|
|
|
|
Sep 24 2008, 16:31
|

старший лаборант
     
Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097

|
Цитата(Цыкетчик @ Sep 24 2008, 16:00)  А я бы хотел поговорить о симуляторах микроконтроллеров, позволяющих выполнять, тестировать и отлаживать код Target MCU у себя на компе. Навскидку - два случая. 1. Железо ещё не собрано, а сроки жмут. 2. Сложные внутренние алгоритмы, а железо не поддерживает внутрисхемную отладку (сейчас это редкость, но всё же встречается). А "лапами дёргать" всё же как-то лучше в реале... особенно, если на МК куча периферии навешана, которой ни в каких симуляторах нет и не предвидится.
--------------------
Китайская комплектация - европейское качество! ;)
|
|
|
|
Guest_@Ark_*
|
Sep 24 2008, 19:10
|
Guests

|
Цитата(Цыкетчик @ Sep 24 2008, 13:19)  ... Часто слышу такую точку зрения, что симуляторами пользуются только ламеры и начинающие электронщики. А профессионалы ("правильные" инженеры), мол, пользуются только отладкой/тестированием программы в реальном "железе". Да, в общем, правильно говорят "правильные" инженеры. Конечно, здесь речь идет об отладке ПО для готового устройства, а не о симулировании(моделировании) схемотехники. Реальное "железо" всегда предпочтительнее любого симулятора. Если есть возможность - нужно отлаживать ПО на нем. Если нет - то имеет смысл собрать макет (пусть даже в усеченном виде), и все равно отлаживать на нем. Попытаюсь обосновать: 1) Работа программы на симуляторе всегда может чем-то отличаться от работы на реальном "железе". А может и не отличаться. Как минимум, придется это потом проверить. А как максимум - повторить весь процесс отладки заново. (Это по поводу затрат времени.) 2) В процессе отладки проверяется не только (и не столько) правильность работы программы, но еще и правильность работы схемы устройства, оценивается влияние различных факторов (наводок, шумов и т.п.). То есть отлаживается работа реальной связки "железо+ПО". Так как отдельная, "правильно написанная", программа никому не нужна. Так же как и отдельное, правильно спроектированное "железо". 3) Перед написанием рабочей программы устойства, не лишне сначала написать ряд тестов, чтобы убедиться, что "железо" работает, и работает именно так, как это было задумано. Тут могут "всплыть" нюансы, которые потом серьезно повлияют на разработку рабочей программы. Иногда, после таких тестов, приходится дорабатывать (перерабатывать) и схему устройства. Если Вы целиком доверитесь симуляторам, то обнаружите все эти проблемы только в конце работы...
|
|
|
|
|
Oct 1 2008, 12:19
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
Цитата(Цыкетчик @ Sep 24 2008, 13:19)  1. В каких случаях отладка/тестирование в симуляторе более оптимальны, чем в "железе", а в каких менее оптимальны? (оптимальны в смысле затрат времени и/или интеллектуальных ресурсов (отладка может быть НЕ оптимальной с точки зрения затрат времени, но оптимальной с точки зрения затрат интеллектуальных ресурсов (когда "думать не надо"(писать всякие отладочные скрипты и т.п.)))) 2. Какие задачи по отладке/тестированию вообще решаемы только в симуляторе и не решаемы в железе? Ну например, когда программное обеспечение пишут 24 программера, а железка одна. Если ждать пока один отладит свою часть на железке другие 23 будут просто тупо простаивать
|
|
|
|
|
Oct 2 2008, 15:47
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(Цыкетчик @ Sep 24 2008, 12:19)  Часто слышу такую точку зрения, что симуляторами пользуются только ламеры и начинающие электронщики. А профессионалы ("правильные" инженеры), мол, пользуются только отладкой/тестированием программы в реальном "железе".
Что Вы думаете по этому поводу? Особенно интересуют ответы на вопрос п.2 Когда нужно отладить кусок программы, например, какой-то алгоритм сортировки или перемножения массивов, то это делают в отладчике, симуляторе. Можно общие алгоритмы системы в нем первоначально отладить. Это быстрее, особенно когда железо еще не готово. Но, когда в дело вмешиваются аппаратные драйверы, поток аппаратных прерываний, - тщательная отладка в живом железе принципиально необходима. Полагаться тут на самые хорошие симуляторы - ламмерский наивняк. Это многократно проверено на живых системах. Начиная от попытки записать переменную в ПЗУ (на симуляторе писалась!) и кончая неспособностью конкретного контроллера прерваться посреди определенной подпрограммы. Программист может неверно представлять (если вообще имеет об этом представление) реальное быстродействие оконечных устройств, вопросы переходных процессов при включении питания, не совсем верно могут быть заданы протоколы обмена со смежными устройствами (думали младшим разрядом вперед, а оно старшими выталкивает в последовательный канал) и еще куча-куча реалий. Потому - симуляторы хорошо, но они могут только вспомогательные, оценочные функции выполнять.
|
|
|
|
|
Oct 3 2008, 13:51
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
Цитата(dch @ Oct 2 2008, 19:25)  все что можно отладить на компе следует на нем, а что нельзя на мк Золотые слова. Плностью их поддерживаю!!! Их надо поставить в рамку во всех холиварах на тему нужны симуляторы как класс или нет
|
|
|
|
|
Oct 14 2008, 10:50
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Цитата 2. Какие задачи по отладке/тестированию вообще решаемы только в симуляторе и не решаемы в железе? Если подходить просто с точки зрения отладки железа/Программы/прибора, то ИМХО в принципе достаточно легко рассчитать по какому пути нужно идти - моделирование или реал. В этом случае нужно подсчитать во сколько обойдется создание модели железа/МК/прибора в железе или в софте + во сколько обойдется создание внешней среды для тестирования этого железа/МК/прибора, достаточной для полного тестирования устройства. Например я разрабатываю контроллер 3-х фазного инвертора для 10-кВольтных сетей мощностями в десятки МВт. Если все отлаживать в реальном железе, то один неправильный дрыг пином приведет к боьшому буму стоимостью не один десяток к?. Поэтому используются и симуляторы и железо: 1. Matlab+Simulink - отлаживается алгоритм управления инвертором. Sympowersystems - отлаживается модель инвертора с сетью 10кВ. Все в виртуале. 2. Прототип на 380В с реальным контроллером - отлаживается алгоритм и железо. Это в реальном времени. 3. RTDS - отлаживается контроллер с виртуальной сетью 10кВ в реальном времени. 4. Счас делаем Matlab+XPCTarget. Для отладки в основном железа в реальном времени. Конечно для испытаний есть и реальный прототип на 2МВт, но спектр возможных действий в этом случае очень сильно ограничен, так как при испытаниях например на КЗ можно весь завод остановить. Поэтому это все делается в симуляторе и принимается на веру.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|