Цитата:В принципе, можно обойтись загрузкой через последовательный порт - для этого предварительно нужно в кристалл залить специальную программку-downloader и соответствующем образом запрограммировать управляющие fuse (биты, которыми программируются режимы кристалла - в том числе, и возможность рестарта через даунлоадер). Но для этого понадобится по крайней мере однажды воспользоваться стандартным программатором - для того, что б этот ДЛ зашить в МК.
ДЛ загружается в старшие адреса программной памяти и при холодном рестарте проверяет, нет ли на последовательном порту программы на закачку. Если есть - то ДЛ закачивает программу в младшие адреса и после закачки стартует её на выполнение.
Если заниматься МК как следует - то без программатора (по крайней мере последовательного - через внутрисхемный программатор ака ISP) не обойтись. Одного кристалла будет мало - а бегать к соседу прошивать ДЛ в каждый новый, это не набегаешься.
Но вот начинать с зашитого кем то другим кристалла - это самое то. И наиболее правильно, если это будет именно Ардуино - это потом всякие отладочные комплекты на любой вкус будут. А сначала нужно, что б оно включилось и заработало - и ардуень в этом смысле непревзойдённа, поскольку предоставляет законченную среду, включающую гарантированно совместимое железо и программу (IDE).
Цитата:На начальном этапе критическим параметром является документированность - если опираться на любой отладочный комплект, а тем паче собирать его самому, документации будет намного меньше и вероятность преуспеть значительно снижается.
Потому ещё раз я на первый подход предлагаю имено Ардуино - кто б что б иного про это не говорил.
Ардуинное железо само по себе является тем же самым отладочным комплектом - и можно писать на любом языке помимо стандартного ардуиновского диалекта Си.
Огромное количество периферии и библиотек значительно облегчают жизнь на этапе освоения.
У меня сейчас три конвенциональных ардуени не считая однокристальных версий - для экспериментов по связи разного музыкального оборудования в единую сеть.
При этом, минимальная ардуень - это просто чип АТМега8 с резистором на выводе RESET!
Делается он так - в кроватку Ардуино Северино ставится новый чип, в него по ISP прошивается загрузчик (одним нажатием), после чего из IDE закачивается прикладной скетч (пользовательские программы в домене ардуино принято именовать "скетчами").
После этого кристалл извлекается из кроватки и ставится в целевой модуль.
http://mk90.blogspot.com/2011/01/arduino-3-atmega8a-bootloader.htmlРазумеется, можно программировать и сразу в целевом модуле - через ISP.
Так, что ардуень ни чём не уступает никакой отладочной системе - имея существенное преимущество в виде полной унификации и максимальной дружественности: взяв независимый отладочный комплект, ты будешь всё строить сам - а если в качестве основы взята ардуень, ты, мало что соображая на начальном этапе, воспользуешься огромными залежами хорошо документированных прикладных программ, развитие которых происходит экспоненциально.
Цитата:Или можно купить переходник USB-COM (у моего ноута нет железного COM-порта) и держать двустороннюю связь по нему, а программатор-отладчик никогда в жизни не понадобится поскольку в нем нет ничего полезного?
Переходник должен быть продвинутым - поддерживать бит-банг режим ком-порта! То есть, обязательным является приобретение FT232RL или эквивалента. Простые шнурки как правло это не поддерживают.
Бит-банг программер - это программатор, в котором управление процессом внутрисхемного программирования производится через вспомогательные линии ком-порта.
Приобретя ардуень с USB ты автоматически приобретаешь такой программатор:
http://arduino.cc/en/Tutorial/ArduinoISPhttp://freeduino.ru/arduino/isp.html Цитата:Я тоже склоняюсь к отладочной печати в гипертерминал и к маханию ножками
Это стандартный способ отладки в среде ардуино - там даже есть кнопочка терминала, что б не лезть далеко.
Но помимо терминала, как отладочного средства, сразу озаботься "хлеборезкой" - на этапе первичных экспериментов, опробования различного периферийного железа это очень быстрый способ продвижения к положительному результату.
Цитата:Насколько я понял, это похоже на пошаговый отладчик программного кода в языках программирования высокого уровня на компе или то-же отладчик симулятора - только "настоящий" и железный, и однозначно работающий с периферией?
Пошаговую отладку сложной математики (именно математики - то есть формульных вычислений) удобно делать в симуляторах - не вылезая в железо. Симуляторы есть в AVRStudio, Proteus и ряде других отладочных сред.
Когда математика выверена - можно вылезти в железо на хлеборезку. Или, если это в данном конкретном случае проходимт - сразу в целевое железо, отлаживая полный алгоритм через внутрисхемный программинг.
Цитата:Если процесс перепрошивки МК будет происходить быстро, тогда думаю будет проще несколько раз его перепрошить каждый раз выводя в отладочную печать то что нужно, и поймать ошибку.
Так и делается - время перепрошивки сильно зависит от используемого адаптера ISP и варьирует от нескольких секунд, до нескольких десятков секунд.
Особенно удобно, если среда напрямую поддерживает программер.
Наиболее удобный - AVR ISP MkII. Он напрямую дружит с АВРСтудией - тогда скорректировал код, компильнул - и оно по умолчанию пишется в кристалл. Не надо выгружать объектный код, лезть в другое окно и шить его отдельной программой, поддерживающей твою железяку.
При работе в АрдуиноIDE такой сквозной режим обеспечивается по умолчанию с первой же минуты - и потому самый неопытный юзер попадает в дружественную среду, что значительно облегчает начальное освоение.
UPD: в порядке объективной критики ардуени - она ориентирована только на три базовых кристалла: АТмега8, АТмега168 и АТмега328.
Собственно говоря, это и есть единственный её реальный недостаток - который на самом деле является основой главных достоинств: многообразие возможностей на стартовом этапе только мешает - слишком большое количество степеней свободы осложняет реальный выбор.
Никто и ничто не мешает отработать задачу на этом стандартном железе - и лишь потом, будучи на 101% уверенным, переносить в любой другой кристалл.
ХИНТ: о чём сразу следует озаботиться - это собрать фьюз-доктора!
Совершенно определённо ты поначалу залочишь кучу кристаллов - просто из-за ошибок в установках фьюзов. А если ты во фьюзах записал запрет на RESET или на ISP, то доступ через простые программаторы у тебя накроется и ты сможешь снова работать с кристаллом, только "разлочив" его.
Для этого собирается специальное устройство, которое шьёт кристаллы по высокому напряжению и возвращает фьюзы в заводское состояние.
http://startcd.narod.ru/rstdisbl_mega8/rstdisbl.htmhttp://www.getchip.net/posts/059-ispravlyaem-avr-fyuzy-pri-pomoshhi-atmega-fuseb...http://avrdevice.ru/?page_id=225ХИНТ2: собрать
стандартную ардуень не составляет проблемы:
http://howtomakekit.blogspot.com/2009/11/arduino-severino.htmlПо серийному порту она может работать через любой убогий усб/сериал мост - поскольку использован стандартный протокол Tx/Rx...