Pull to refresh

Comments 42

UFO landed and left these words here
К сожалению, Хабр не поддерживает анхоры в статьях (хотел вставить ссылки на якорь рядом с блоком ссылок), поэтому придется постить прямые ссылки. Но тут появляется другое неудобство — будете скакать уже не в футер статьи, а прямиком по ссылкам… Короче, похоже что универсального решения нет.

Ваш коммент то плюсуют, то минусуют. Пока он колеблется около нуля =).
Сам при программировании/разработке пользуюсь программатором, а вот реализовывать обновление прошивки в уже готовом устройстве (например обновление ПО пользователем) вполне удобно с помощью данного загрузчика.
Я раньше смотрел на бутлоадеры свысока, думал — да нафик они нужны, отъедают место в коде, да еще разбираться надо с ними… Всегда пользовался 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 здесь, здесь все, никита, стас, гена, турбо и дюша метелкин» (с)
Еще карма не закончилась для срача в коментах =)?
пока нет))) была бы еще карма для срача в кармах
UFO landed and left these words here
Не покупайте ничего у этих рекламщиков, берите там, где дают нормальную цену.
UFO landed and left these words here
На рынке в Москве ATmega32-16AU в розницу стоит 82 рубля. Оптом 75 рублей и дешевле (зависит от партии). Может быть, Михаил надежный поставщик, «помошник» и все такое, но Ваша назойливая реклама говорит об обратном.
UFO landed and left these words here
У меня есть цены только на декабрь 2009 года, других нет. Хотите, озвучу?
UFO landed and left these words here
И что собственно на сегодня, после прошествии 7 месяцев, должно измениться? Цены должны вырасти в полтора — два раза? Не верю.

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

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

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

Захотели нахаляву, ничего не делая, получить больше клиентов и посещений своего ресурса? Тогда получите в довесок, то что заработали — минусы в комментариях, рейтинге и в карме. В итоге добьетесь того, что НЛО Вас просто забанит.
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
Скоро рычать начну и порву, как Тузик грелку.
UFO landed and left these words here
UFO landed and left these words here
Подарки я очень люблю, подарки — это хорошо.
Что-то Вы надолго замолчали. Голоса за комментарии кончились? Скучно даже как-то…
UFO landed and left these words here
Чего Вы тут аукаете, не в лесу же ведь.
В качестве акта доброй воли поднимаю белый флаг и предлагаю заключить пакт о ненападении. Вы обещаете больше на публиковать говнокоментарии у меня в статьях, а я а свою очередь буду закрывать глаза на Ваши злодейства в других местах Хабра и не ставить Вам минусики. За остальных хабралюдей не ручаюсь. Идет?
UFO landed and left these words here
Снова гадюшник из Хабра делаете? Обидно.
Sign up to leave a comment.

Articles