AVR Studio и HAPSim

Раз уж пошел разговор об отладке AVR Studio, то стоит упомянуть про ряд примочек для нее. Одной из самых интересных примочек является небольшая программка — HAPSim. Программка почти не известна, по крайней мере я лишь пару раз слышал упоминание о ней на форуме. Прога не слишком стабильна, иногда работает не так как надо, а еще ей не хватает многих эргономических моментов, но, надеюсь, в следующий версиях это будет исправлено.

Итак, что делает Hapsim. Он всего лишь подцепляется к студии и в момент выполнения эмуляции программы может симулировать работу разных устройств, прицепленных на порты. Из доступных устройств есть:

  • Кнопки. Как обычные, прижимающие к земле, так и трехвыводные, которые могут поставить как высокий, так и низкий уровень в зависимости от состояния
  • LCD на базе HD44780
  • Терминал (USART или I2C) с возможностью осуществить трансфер на комповый COM порт (сам не проверял, но заявлено в мануале)
  • Клавиатурная матрица 4х4
  • Блок светодиодов
Не богато, но вполне хватает для простенькой отладки. Особо радует терминал :) Можно по быстрому отлаживать без заливки прошивки в МК.

Как работать с Hapsim?
А тут все гораздо проще чем кажется:

  1. Распаковать Hapsim куда-нибудь рядом с студией. Я прям в ее каталог сунул, в папочку.
  2. Запустить AVR Studio с нужным проектом.
  3. Запустить программку.
  4. Выбрать МК, не в пример протеусам всяким, тут поддерживается вся линейка AVR.
  5. Добавить в окно Hapsim нужные тебе девайсы (File -> New Control), а затем настроить их. Каждый появившийся в рабочем поле девайс получает кнопку на панели инструментов. Тыкнул на нее — вот тебе и настройка. Если блоков несколько, то настройка открывается для активного окна. Настройки тоже не мудреные — указать бит порта, да активный режим. Например, для светодиодов можно указать цвет, название, порт и бит порта, а также галочкой сделать его инверсным (например, как я люблю, зажигать нулем)
  6. Запустить в студии эмуляцию отладки и можно клацать по виртуальным кнопочкам и смотреть как ведет себя студия.

Замечу только, что в пошаговом режиме работает весьма стремно, особенно если надо нажать кнопку и удерживать (в хапсиме нет фиксируемых тумблеров), поэтому лучше запускать на исполнение (F5 — Run), а саму программу утыкать брейкпоинтами во всех ключевых местах.

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

55 thoughts on “AVR Studio и HAPSim”

      1. Ну, программист, допустим, не финский, а уже давно как международный. А тема с никсами — достаточно интересная. Если бы были порты авр студии и пикада под линухи, я бы винду со своей машины снёс бы, не задумываясь. И это при том, что сам совершенно не фанат линуха, и даже не особо в нём разбираюсь. Вот заодно бы разобрался, и новую технологию бы освоил. А машинка бы освоила свои 4 гига оперативки, а не 3.25, как сейчас. Да и работает оно… по-другому. на работе несколько серверов с линухом имеют аптайм по нескольку месяцев; отключаются только когда питание совсем кончится, и бесперебойник разрядится, или когда из них пыль выдуть надо.
        А промышленный стандарт — это что? QNX? или DOS (рассказывали, что на спутниках летает)? А, вот ещё вспомнил: ISA (industrial standart architecture)

        1. Да я бы тоже. Но этого нету и не придвидится (и сильно сомневаюсь что когда либо будет). Тут все дело в принципах организации линухов. Потому что коммерческие кады стоят дорого и выпускать их в сорцах западло. А в бинариках — так не на каждом линухе запустить их можно будет — вон их какой зоопарк развелся. Каждый красноглазик грезит свой дистрибутив поднять. Что сильно сужает целевую аудиторию.

          Промышленный стандарт это винда :) Причем уже давно.

          Кстати, у жены аптайм на ХП уже тоже несколько месяцев и это не сервер а обычный десктоп за которым она ежедневно сидит. Там даже антивируса нет. Было бы больше, но не получается. То свет отключат, то железку какую воткнуть надо.

          1. всё же настоящий промышленный стандарт — qnx.
            а винду юзают только потому, что «это бесплатно».
            даже в моём космическом инсте на 2к народу.
            мы же qnx пользуем исключительно по собственной инициативе ибо уж слишком много плюсов у него.
            но если сильно прижмёт лицуха или придётся выходить на уровень великого буржуинства, то придётся.

            адд. кстати, про мифы про «красноглазиков», «тысячь несовместимых дистрибутивов», «несовместимости библиотек» и, о-ужас!, «необходимости иметь исходные коды (будто для компиляции в винде они не нужны», живут не только в умах инженеров, которые лет пятнадцать назад слышали про первые попытки сообщества, но и у многих начальников, которые вообще «ни разу ногой и рылом» )

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

            ну и напоследок забавное. на днях болтал по асе со знакомым нашим, но там, в америках. зашёл разговор про фотошопы и прочее. ну я и говорю — на работе юзают CS3, взял дистриб у местных админов. знакомый аж прослезился «какая у вас богатая фирма, вот мы сидим в линухах и юзаем gimp». как мне челу объяснить, что для нашей фырмы фотошоп не стоит по 2тыщи баксофф на каждое место, а скачан крякнутый бесплатно с торрентсов за обед?

            1. Много ты видел станков на QNX? Или рабочих мест с кадами? Я вот ни разу. На досе видел, но это был антиквариат, на RT11 тоже видел, но это уже ископаемое. А вот все новые станки идут в связке ХП+ПЛК.

              QNX это круто, конечно, но уж больно дорого стоит. Кстати, есть мысль поднять его на минимамке и пощупать. Какую версию лучше ставить?

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

              1. много, но к сожалению больше за границей. у нас больше осрв2000 (
                бесплатные версии кунухов или тестовые на месяц от swd — вполне юзабельные.
                не считал, но думаю, что платные версии виндов со всеми необходимыми средами, будут не сильно дороже кунуха.

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

                возьми какой-нить старый «нейтрино», мы их даже бесплатно заказывали на http://www.swd.ru/ когда-то.

                плюс дам бизнес-установку — не бывает у них «ниш, на которые забивают». так у буржуинов дела не ведутся. даже «мелкопрог» в том направлении работает.

                я частенько бывал на разных международных мероприятиях-конференциях. смотрел их презентации, как оно сделано, разговаривал с народом. и мне французы и немцы совершенно серьёзно говорили «ни одно из их нормальных фирм никогда не поставит виндовс себе. максимум — у секретарш на ресепшене. остальное — те же кунухи на стендах, фряхи-солярисы-линухи на десктопах, спецниксы для админов». народ приезжает с поверпоинтской презентахой, сделаной в опенофисе, и реально не знает аналогов в виндовсе, которыми надо её запускать.
                это всё по фырмам, которые делают гироскопические приборы, системы и комплексы, вроде сажема и прочих.

                  1. Вот можно посмотреть сюда:
                    На странице www-atmel-com\dyn\products\tools.asp?family_id=682

                    написано вот такое:

                    AVR32 Studio 2.1.0 AVR32 Studio is a free Integrated Development Environment (IDE) for AVR32 that enables you to write, build, deploy and debug your C/C++ and assembler code. AVR32 Studio integrates with the AVR32 GNU Toolchain including GCC for building applications for AVR32. AVR32 Studio is Built On Eclipse™ and supports Microsoft® Windows® 2000, XP and Vista, and Linux®.

                    Но, к сожалению, под восьмибитные нету :(

    1. Поставь для системного винта Мобиль Рак. Когда захочешь повыделываться — сунь туда винт с Линухом. Захотел поработать с нормальными программами — сунул винт с Виндами и всем остальным. Постепенно станешь совать Линуха все реже и реже, а потом и совсем выбросишь. Так постепенно, незаметно и безболезненно и вернешься в мир нормальных людей… Вот оно где, Щастье — то!!!

    2. К вопросу cad софта под Linux, есть дивный эмулятор wine специально для запуска windows приложений под никсами, лично пробовал zemax 2006, pcad2002, ewb512, strong DC++, желающие try -)

        1. Устанавливается, проекты открывает, собирает, кривовато режим отладки идет ( на портах биты кликом вроде не ставятся ), проекты не создает -( ну это можно файлы в папке создать в принципе самому (или скопировать из имеющегося -) )- это 4.17, — более ранние возможно пойдут лучше… Proteus 7.5 SP3 установился корректно, открывает проекты, эмулирует корректно. Uniproof COMпорт с контроллером не видит -( Система PC BSD 7.0 Fibonacci. В общем видимо перспективно, но надо как следует повозиться -)

        2. P.S. Все что касается отладки идет кривовато. В отладке не ставятся руками значения в портах, при создании нового проекта, при указании эмулятора — виснет -(, а так все работает… Вероятно дело в wine, надо попробовать пересобрать с поддержкой HAL -)

    1. Любая виртуалка будет более тормозной и заведомо неполноценной, из за невозможности полностью предусмотреть и реализовать все нюансы эмулируемой системы. Гораздо проще иметь отдельный винт на каждую систему. А заменить и перезагрузиться — пара минут. Зато системы полностью независимые. Системы семейства UNIX — чисто серверные, для дома мало пригодные, даже если им приделать костыли и подпорки. Единственный смысл работы с ними — изучение с целью заняться в дальнейшем системным администрированием. Но серверов с UNIX уже не так уж и много, в серьезных организациях предпочитают SOLARIS, который работает в основном с SUN, который дома не поставишь, или серверные версии Виндов (для INTEL).

      1. Многоуважаемый SWG, позвольте спросить, когда Вы последний раз устанавливали и пользовались *nix-like операционную систему?????
        Дело в том, что установка и дальнейшее использование современных дистрибутивов, намного проще, чем в 90-х. Год назад я продал laptop DELL Latitude 600. Продал одному парню, который до того за компом даже и не сидел. …спустя месяц Он так шустро работал за ноутом с SUSE 9…
        Можете попробовать UBUNTU, она хороша для повседневного пользования, и программ, созданных сообществом OPEN SOURSE, хватит всем, для любых целей, тем более все бесплатно. Пример, линь со всей графикой (64-х битная ОС), посравнению с ОС от МайкроСофт работает реально шустрее.
        ВЫШЕСКАЗАННОЕ НЕ ОЗНАЧАЕТ:
        — что я являюсь ярым противником Windows
        — начало HOLYWARа

        М А Н И Ф Е С Т

        — Я благодарен МайкроСофт за своевременное создание системы, понятной рядовому человеку….
        — Я благодарен APPLE (и лично С. Джобсу) за их вклад в развитие шрифтов, за отличный вид и стабильность
        — Я благодарен старине Линусу за появление простой НиксЛайк системы…
        — Я благодарен сообществу Опен Сурс за развитие и движение некоммерческих программ
        — Я благодарен Пиратам… За возможность использования коммерческого ПО. Просто иногда невозможно стать легальным владельцем(см. ст. К.Касперского о-поПЫТКЕ-купить-некое-программное-решение, и-что-из-этого-вышло)
        В С Е

          1. Примеры реальных взломов
            (фрагмент книги «Техника и философия хакерских атак»)
            Компилятор Intel C++ 5.0.1

            Автор: (c)Крис Касперски

            В настоящей книге все атаки рассматривались исключительно на примерах, специально написанных для демонстрации того или иного алгоритма программ «CrackMe». При этом многие из них были слишком искусственными и далекими от реальных защитных механизмов. Это было удобно для изложения материала, но не отражало реальных существующих защит.

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

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

            Рисунок 1. Логотип компилятора Intel C++.

            Прежде чем приступать к обсуждению аспектов стойкости защиты компилятора Intel C++ 5.0.1, считаю своим долгом заявить, что я глубоко восхищен этим великолепным программным продуктом и ломать его, на мой взгляд, по меньшей мере кощунственно. Впрочем, сегодня только ленивый не найдет в Сети кряк (один только Google по запросу «Intel C++ crack» выдает свыше 12 тысячи ссылок!), так что никакого вреда от данной публикации не будет.

            Немного грустных новостей для начала. Приобрести легальную версию данного компилятора для жителей России оказывается чрезвычайно затруднительно. И вопрос упирается даже не в то «сколько он стоит» (а стоит он, если мне не изменяет память, что-то в районе тысячи долларов) — компания Intel просто игнорирует данный сегмент рынка. Обращения в российское представительство компании с просьбой предоставить (за деньги!) данный компилятор для его же описания (читай — рекламы и продвижения) в книге «Техника оптимизации программ» положительных результатов не дали. Даже после того, как к этому вопросу подключились, прямо-таки скажем, не мелкие отечественные издательства BHV и Солон — Р. Ладно, не хотят продавать — ну и не надо! Благо, хоть с сервера компании можно свободно утянуть 30-дневный триал. Не густо, конечно, но для сравнительного тестирования вполне достаточно (а для других целей мне этот компилятор и не нужен!).

            Впрочем, все оказалось не так просто! С Web-сервера компилятор запросто так не отдался, а после заполнения регистрационной формы меня вежливо поблагодарили и сообщили, что сейчас ко мне на «мыло» упадет письмо с триальной лицензией и инструкцией по ее установке. Это «сейчас» заняло у севера аж несколько дней (такое впечатление, что анкеты просматриваются вручную). Ок! Лицензия получена! Начинаем скачивать файл… Как это так — докачка не поддерживается?! А вот не поддерживается и все! Учитывая, что у меня лишь хлипкий Dial-Up по каналу в 19.200 (да и тот — по межгороду), скачать полста мегабайт без единого разрыва просто нереально. К тому же, работа над книгой уже близится к завершению и вносить в нее еще один компилятор (а значит, переписывать кучу текста заново) мне становится просто «влом». Да и Intel C++ — это далеко не самый популярный в кругах российских программистов компилятор и книга без него как-нибудь переживет (хотя, посмотреть, как Intel оптимизирует код под свои процессоры, очень хотелось, да и документация по компилятору вдохновляла). Самое смешное, что когда я все-таки скачал компилятор через своих московских знакомых (ну, для Москвы 45 мегабайт — это вообще ничто), он наотрез отказался работать, мотивируя свое поведение тем, что срок демонстрационной лицензии уже истек…

            Разозлившись на весь свет (и на парней из Intel в частности), я отправился на ftp-сервер компании, откуда наскоро, всего за каких-то три дня, слил полнофункциональную (хотя и шибко несвежую) версию компилятора, находящуюся по следующему адресу: ftp://download.intel.com/software/products/downloads/C5.0.1-15.exe. (приятно, что ftp докачку исправно поддерживал и многократные разрывы никаких проблем не вызывали). Польстившись на размер, я скачал именно пятую версию компилятора, которая была в полтора раза легче шестой (под которую у меня имелась неиспользованная триальная лицензия) и аж в два раза компактнее седьмой — новейшей на момент написания этих строк версии, ломать которую из «политических» соображений, я все равно бы не рискнул, так зачем же ее зря качать?

            Теперь, собственно, мы и подходим к известному философскому вопросу: этично ли ломать программный продукт уважаемой тобой компании или без этого можно обойтись? Да, если бы без этого было возможно обойтись, я бы, честное слово, без тени сожаления выложил за этот замечательный продукт пачку вечнозеленых, но, увы… компания не проявляет ко мне, как к покупателю, никакого интереса и, кроме как ломать, ничего другого просто не остается!
            ……………………………………………………………..
            конец цитаты
            полная версия статьи находится по адресу ИНСАЙДПРО.КОМ( http://www.insidepro.com/kk/007/007r.shtml )

      2. Просто для информации:
        Solaris прекрасно работает на десктопе, высылался фирмой Sun бесплатно, скйчас это Oracle. Посмотрите у них на сайте. Ubuntu прекрасно работает, подхватывает все железо, только wifi требует пару кликов и драйвера для Винды.

  1. Про утыкать программу брейкпоинтами — это вы хорошо пошутили. Возможно в режиме симуляции их и можно много поставить, но вот я отлаживаю через JTAGICE уже готовое железо на ATMega128, и там можно одновременно только 3 точки поставить по всей программе.

  2. А кто нибудь юзал симуляцию LCD в Hapsim? У меня не получилось, хотя взял работающую программу включил симуляцию, а он цобака какие-то ироглифы пишет. пытаюсь вывести латинские буковки и циферки

    1. В хапсиме есть пример работы с LCD может ты подключил что неправильно. В живую проверял?

      Всякая фигня лезет когда дисплей нормально не инициализируется. Т.е. работает в 4 битном режиме, а думает что в восьмибитном. Инициализация отличается от дисплея к дисплею и не зная этих граблей может быть геморрой.

  3. тут все про оффтоп пишут, а у меня HAPSim Hook пишет: «AVR Simulator not loaded».
    и — действительно! — текст «AVR Simulator» внизу в строке статуса студии серый, типа, неактивный. а вот как этот самый симулятор настроить?

            1. А у меня не прокатывает. Поставил AVR Studio 4.17 + HapSim 216. Создал проект под ATtiny13, выбрал AVR Simulator. Собрал проект, запустил отладку. Метка AVR Simulator из серой стала чёрной. Запускаю HapSim, а он выкидывает окно с матами:
              «проверь наличие файла …/AVR Tools/Partdesciptionfiles/simulatorparts.cac»
              Проверяю, а нет такого файла.
              Что делать? Как быть?

  4. я люблю этот мир
    хапсим пишет(скачал посл. версию с автора): я незнаю этой версии студии..
    ну дак впринципе понятно студяя новее.. блин.. качать старую версию студии.. нонсанс — давнгрейт! блина..

      1. протеус поюзай.. ну далекоооо не аналог… мож понравиться
        (талкаеш прошивку и эмулируешь) для отладки — непомогает самособой

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

  5. AVR Studio 4.18 + Hapsim 2.17 = «AVR Simulator not loaded», хотя пробовал подцепляться в разных режимах АВРки. Никаких файлов никто не просит, просто кидает окошко с ошибкой и всё.

    Кстати, АВР Студия голая, без сервиспака №3, потому что пришлось Студию с сервиспаком переустанавливать — после остановки симуляции (клик по кнопке стоп), Студия молча вываливалась вообще. Сейчас, переустановленная, не вываливается.

    Видать, не судьба.

    1. Что-то студия последняя из 4-й версии с тремя сервис паками также при остановки отладки вываливается без предупреждения. До переустановки XP стояла она же и такого замечено не было. А сейчаст на новой XP вот такое поведение. Никто не знает как это лечить? Может действительно переустановить без сервиспаков?

      1. Что-то студия последняя из 4-й версии с тремя сервис паками также при остановки отладки вываливается без предупреждения. До переустановки XP стояла она же и такого замечено не было. А сейчаст на новой XP вот такое поведение. Никто не знает как это лечить? Может действительно переустановить без сервиспаков?
        Она у меня, правда, без дополнительных эмуляторов.

      1. Последовал Вашим советам: распаковал Hapsim в одноименную папку, папку закинул в Tools (от AVR Studio). Запускаю и получаю уже известное сообщение «Device List not found». Ладно… иду по указанному пути, нахожу там два файла: «cache.cac» и «simulatorparts.cac»… А дальше что?
        Скопировал эти файлы в папку Hapsim, запускаю программу и то же самое сообщение :-(.
        В папке Hapsim имеется файл !readme.htm. Выполняю пункты раздела «Quickstart with Demo-Application ‘LCDTest'» (для того, чтобы Hapsim увидел запущенную Студию). По фигу! :-( Снова сообщение про «Device List…»
        Какое имя файла/расширение у этого списка??

        1. На сайте Hapsim нашел ответ на последний свой вопрос: файл этого злополучного списка — simulatorparts.cac
          Но никакой инфы — как с этим воевать :-(

          1. Увы! Радость длилась недолго :-(
            Мало того, что после запуска программки на ее дисплее так и оставалась приветственная запись «LCD — HD44780U Simulator!» — вне зависимости от ее настроек, или выбора имеющихся предустановок, или прохождения симуляции (работа с LCD с сайта) в Студии.
            После перезагрузки Студии программка перестала видеть запущенную симуляцию: «AVR Simulator not loaded!»
            Куда копать?

    1. Ну он особо корректно никогда не работал. Это хороший такой костыль за неимением лучшего. Вообще AVR Studio с недавних пор интегрируется в протеус и получается вполне терпимо. Точнее должно получаться, но у меня не вышло. Видать изза того, что протеус был крякнутый. Он тупо вылетал с ошибкой при попытки завязать его со студией.

Добавить комментарий

Ваш e-mail не будет опубликован.

Перед отправкой формы:
Human test by Not Captcha