Комментарии 42
НЛО прилетело и опубликовало эту надпись здесь
К сожалению, Хабр не поддерживает анхоры в статьях (хотел вставить ссылки на якорь рядом с блоком ссылок), поэтому придется постить прямые ссылки. Но тут появляется другое неудобство — будете скакать уже не в футер статьи, а прямиком по ссылкам… Короче, похоже что универсального решения нет.

Ваш коммент то плюсуют, то минусуют. Пока он колеблется около нуля =).
Сам при программировании/разработке пользуюсь программатором, а вот реализовывать обновление прошивки в уже готовом устройстве (например обновление ПО пользователем) вполне удобно с помощью данного загрузчика.
Я раньше смотрел на бутлоадеры свысока, думал — да нафик они нужны, отъедают место в коде, да еще разбираться надо с ними… Всегда пользовался JTAGICE mkII (программатор плюс отладчик), и думал лучше ничего нет. А как попробовал бутлоадер — понял, что одно другому не мешает, и в конце памяти программ почти всегда есть свободный кусок. Очень удобно — фактически вместе с устройством носишь с собой программатор. Захотел — перешил. Must have однозначно.
Дело говоришь. Я вот недели три провозился: то один программатор спаяю, то другой — не работает нифига. И схему Громова пробовал, и STK200, и ещё бог знает, что. А у меня была для прототипов плата CraftDuino с выведенными линиями с микросхемы FT232RL. Я подсмотрел у товарища Di Halt'а распиновку для ISP-программатора на этой микросхеме, впаял штырьки и сварганил ISP-шнурок. Успешно прошил ATTiny12, ATTiny2313 и ATMega48.
А на CraftDuino я прошивку вмиг залил, как только в руках повертел вдоволь — потому что там bootloader. И никакого месяца возни: воткнул в USB, нажал кнопку Upload в IDE, и всё (:
Жаль, не на все кристаллы можно загрузчик поставить.
Да, действительно, не на все кристаллы. Минимум на ATmega8. Да и то, чтобы код USB-bootloader влез в секцию 2 килобайта, надо очень постараться — подобрать версию gcc, чтобы код оптимально скомпилился. Лучше всего подходят микроконтроллеры ATmega32 и выше.
А если написать на асме? Обычно скомпилированный сишный код отнимает больше флеша, чем ассемблерный. Но сишный код, конечно, более портируемый.
Неделю назад я написал кода на асме строк на 200 — светодиодом помигать, моторчик ШИМом через транзистор раскрутить, всё по нажатию кнопки. Прошивка вышла на 174 байта. Сишный код получился в два раза короче (ну да, таблицу прерываний расписывать не надо, но всё же) и понятнее, но прошивка заняла на сей раз 239 байт. Для такой штуки, как загрузчик, я полагаю, излишек побольше будет.
Вы все правильно говорите. Но весь фокус в том, чтобы брать готовенькое и с наименьшими усилиями. Все как обычно — идем по пути наименьшего сопротивления. Кому в здравом уме придет мысль переписывать код, да еще и (подумать страшно!..) — на АССЕМБЛЕРЕ?.. Еффект, который будет получен ради экономии полкилобайта кода (в нашем случае) будет мизерный — ну подумаешь, сможем залить теперь код в ATmega8, когда ATmega32 стоит все равно сущие копейки. А работы придется проделать — мама не горюй, код поддержки USB не шутка даже на C, откройте-ка модуль bootloader\usbdrv\usbdrv.c — понимаете там что-нибудь? Лично я мало что понимаю. Оно Вам надо? Если надо, то тратьте свое драгоценное время.

Можно поступить проще — скомпилировать в ассемлер, и вырезать мусорный код, который генерит компилятор (всякие там ненужные PUSH и POP, очистку памяти при старте и т. п.). Т. е. можно заняться низкоуровневой оптимизацией кода C. Но опять-таки, без должного стимула (например денежного) никто и пальцем шевелить не будет — поставят ATmega32 и вся недолга.

Похожая тенденция в компьютерном железе — дешевле и экономически выгоднее заставить юзверей проапгрейдиться (взять новый процессор, акселератор, больше памяти и т. п.), чем платить деньги программистам за вылизывание кода драйверов и интерфейсных библиотек.
Согласен, мало кому захочется в этом всём копаться. Лично я себя экономией лишних байт дисциплинирую, чтобы планку не опускать. Конечно же, я не предлагаю экономить везде, где только можно. Мне просто показалось, что было бы неплохо оптимизировать код, для которого приходится подбирать нужную версию компилятора. Как бы там ни было, рано или поздно я напишу свой загрузчик — хотя бы для получения опыта (:
Важна золотая середина — нельзя ни переборщить, не недоборщить. Иначе не выжить в нашем жестоком мире (почти шутка). Идеальный пример — та же самая библиотека V-USB, на которой основан описанный в статье bootloader. Критичные места (которые должны работать максимально быстро и точно) написаны на ассемблере (см. bootloader\usbdrv\usbdrvasm.S), а сложная логика, которая требует модификации и поддержки — на C. Идеальный баланс, отлажено годами, работает как единый механизм. Сравнить разве что можно с автоматом Калашникова — ни грамма лишнего веса, все поставлено на службу её величеству эффективности.
Еще один аспект — поддерживаемость кода. То, что Вы накосячите на ассемблере, через месяц-другой станет не нужно никому, даже Вам. Потому что жизнь идет, все меняется, а подправить в асмовом коде что-то, добавить/изменить функционал будет практически невозможно. Я, конечно, говорю не про мигание светодиодом и не про кручение моторчиком, а про наш конкретный случай (т. е. достаточно объемный код) — bootloader USB.
Программирования тут мало-мало. Точнее, его совсем нет. Просто приложение к конкретной задаче. Хотя, может быть, Вы и правы. Только мне блог DIY почему-то больше нравится.
«USB здесь, здесь все, никита, стас, гена, турбо и дюша метелкин» (с)
НЛО прилетело и опубликовало эту надпись здесь
Не покупайте ничего у этих рекламщиков, берите там, где дают нормальную цену.
НЛО прилетело и опубликовало эту надпись здесь
На рынке в Москве ATmega32-16AU в розницу стоит 82 рубля. Оптом 75 рублей и дешевле (зависит от партии). Может быть, Михаил надежный поставщик, «помошник» и все такое, но Ваша назойливая реклама говорит об обратном.
НЛО прилетело и опубликовало эту надпись здесь
У меня есть цены только на декабрь 2009 года, других нет. Хотите, озвучу?
НЛО прилетело и опубликовало эту надпись здесь
И что собственно на сегодня, после прошествии 7 месяцев, должно измениться? Цены должны вырасти в полтора — два раза? Не верю.

Зашел на efind.ru, поинтересовался. И дальше что? Там есть в разы дороже чем у Вас, но есть и дешевле. Там, где дороже (в том числе и у Вас) я покупать никогда не буду, лучше простимулирую хороших продавцов. Точно так же я не буду покупать у тех, кто бессовестно пичкает меня рекламой.

Поймите меня правильно — мне все равно какие у Вас цены, рынок есть рынок, каждый вертится как может. Кому-то Ваши цены могут показаться нормальными (кто не умеет или не хочет искать где дешевле). Дело в Ваших рекламных комментариях — они просто достали, суете их везде и по поводу и без повода.
НЛО прилетело и опубликовало эту надпись здесь
Устал с Вами воевать. Ну как Вам объяснить, чтобы Вы меня поняли? Достала меня Ваша реклама. Русский язык понимаете? Я не хотел бы видеть ТАКИЕ комментарии у себя в статьях и вообще на Хабре. Причем, заметьте, я не против рекламы как таковой. Я против говнорекламы.

На Хабре нормальной рекламы очень много. Мало того, весь Хабр состоит на 80% из рекламных статей. Но ТАКАЯ реклама, как Ваша, ИМХО, на страницах Хабра не уместна. Если хотите нормального к себе отношения, пишите что-то действительно полезное и интересное, буду рад почитать, поучиться и покликать по предлагаемым Вами ссылкам.

Захотели нахаляву, ничего не делая, получить больше клиентов и посещений своего ресурса? Тогда получите в довесок, то что заработали — минусы в комментариях, рейтинге и в карме. В итоге добьетесь того, что НЛО Вас просто забанит.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Что-то Вы надолго замолчали. Голоса за комментарии кончились? Скучно даже как-то…
НЛО прилетело и опубликовало эту надпись здесь
В качестве акта доброй воли поднимаю белый флаг и предлагаю заключить пакт о ненападении. Вы обещаете больше на публиковать говнокоментарии у меня в статьях, а я а свою очередь буду закрывать глаза на Ваши злодейства в других местах Хабра и не ставить Вам минусики. За остальных хабралюдей не ручаюсь. Идет?
НЛО прилетело и опубликовало эту надпись здесь
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.