разница в 4 байта, с учетом что это ардуино, смешно. А ведь все не хуже все чем на ассемблере (весь листинг):
да поначалу совсем немного излишков есть, но это ж С++ - он так думает. Дальше размер уже от пограмиста уже будет зависеть. Зато например математика на Цэ намного нагляднее и проще.
Какой там "всего 4"?! Разница гораздо больше - ведь у проекта под адуринкой всего-то конфигурация таймера на досчет до 0,5 секунды и АППАРАТНЫЙ ногодрыг ЕДИНСТВЕННО ВОЗМОЖНОГО ВЫВОДА. (Аппаратные преимущества соответствующего МК явные). А в моем варианте из-за 8 разрядной организации таймера (специфика аппаратной начинки тиньки13й) и счетчик досчета и обработчик прерывания и дополнительный "хвост" для обеспечения программно селектируемого "ногодрыга". Так что заведомо избыточный код добавлен. И то разница в 4 байта. А Ёжли бы полное соответствие (допустим с 2313 на Т1) то вряд-ли уже можно говорить о "малом размере"...
Цифры же озвучены 66-62=4. Сравнивать надо одинаковые действующие программы на одинаковом МК. Листинг же привел - да это чисто на ассемблере можно подсократить, но не много. В дальнейшем оверхеда скорее не будет. Компилятор еще можно поуговаривать, типа векторы выкинуть и др.
УВЫ... тиньки 10й у меня нету(в том числе и проработки документации по причине перспектив применения). Так что речь может идти только об аналогии. Одначе и при том - там всего-то установить режимы таймера и запуск отсчета при остальных функциях на основе аппаратной составляющей - и 66 байт (33 команды)?... Это явно перебор... Так что при всем уважении, но ассемблер таки остается базовым языком программирования для прикладных устройств простой периферии. А уже далее комплект из комбинированного применения как периферийных интерфейсных СБИС на основе МК под ассемблером/ЯВУ, так и более крупных МК/систем на кристалле под ЯВУ. Соответственно и подготовка материала для ассемблера заметно более затратная - но там компенсация за счет применения небольшого арсенала хорошо проработанных представителей различных семейств для разнообразных прикладушек. В случае с ЯВУ затрат времени на проработку документации МК заметно меньше, но "абсолютная власть" над ресурсами становится более "заморочной" - но под ЯВУ этого в большинстве случаев и не требуется.
Ключевыми особенностями высоковольтных SiC MOSFET Wolfspeed являются малое сопротивление канала в открытом состоянии и минимальное значение паразитных емкостей, что позволяет максимально снизить статические и динамические потери, и, соответственно, увеличить рабочую частоту преобразователей.
Одначе и при том - там всего-то установить режимы таймера и запуск отсчета при остальных функциях на основе аппаратной составляющей - и 66 байт (33 команды)?... Это явно перебор...
слова много, перебор - непрофессионально тини10 живая не нужна - создаем проект в древней аврстудии 4.19, быстренько пишем тот же функционал:
Код:
---------- ATtiny10 memory use summary [bytes]: Segment Begin End Code Data Used Size Use% ---------- [.cseg] 0x000000 0x000040 64 0 64 1024 6.3% [.dseg] 0x000040 0x000060 0 3 3 32 9.4% [.eseg] 0x000000 0x000000 0 0 0 0 - Assembly complete, 0 errors. 0 warnings
Первое семейство STM32L5 на базе ядра ARM Cortex-M33, флагман семейств ST с низким потреблением. Область применения IoT, расходомеры, умные часы, промышленные датчики и многое другое. Опубликованы материалы двух практических вебинаров по расчету энергопотребления и работой с TrustZone. Рассмотрены особенности и примеры практической реализации CAN FD на STM32L5.
Вопрос в том, что при отсутствии перспектив проработка техдокументации для аттини10 не выполнялась - а без таковой я только предполагать могу (или "на скору руку" чего нашкрябать по беглому взгляду на даташит, рискуя ошибок наделать). Зачем собственно в программе из Вашего последнего примера : 1. Запись ВСЕХ векторов прерываний вместо необходимого только по RESET? (ни единое прерывание по умолчанию НЕ ИСПОЛЬЗУЕТСЯ); 2. Установка значения регистра указателя стека (спорно ибо в большинстве АВР выполняется автоматически при подаче питания - надо вчитываться в даташит и ерраты); 3. переустановка штатной частоты системного генератора (в большинстве АВР базовая частота устанавливается по умолчанию автоматически); 4 соответственно и загрузка нового значения калибровки. Ведь даже для тиньки 13й вполне реально получение удобоваримого значения опорной сетки частот на 8-разрядном таймере с предделителем... А тут 16 разрядный таймер... ???
Воть и излишние байты явно проявились. Это для дополнительного садомазохизьму что-ли?
Наш диалог напоминает из известного фильма поиск в магазине коня - "а нет ли такого, но без крыльев", а конь вообще снимался еще в других фильмах (с крыльями). а смысл выжимать лишние байты - редко возникает задача где есть борьба за последний байт http://we.easyelectronics.ru/Asticon/is ... bayta.html ну даже 30 байт мы сэкономим упираясь и потея на ассемблере, ведь задачи для тини10 обычно совсем крохотные (фонарики, моргалки, моторчики) и если их могут решать ардуинщики в ихней среде - кусок хлеба у ассемблерщиков уже отобран (кыш на пенсион). Об этом была речь. Ардуинщик, если упрется - может и тини25/45/85 взять и в дамки
И это говорит МАТЕРЫЙ КОТ... ПЕЧАЛЬКА. Я наоборот указываю на то, что ресурс ассемблера если и исчерпан (недостаточно времени/средств для СТАРОГО КОТА), то исключительно или в отношении ARM(система-на-кристалле) или в отношении абсолютно новых семейств, что могут в перспективе появиться. Да и направление "смешанных проектов" с применением самодельных СБИС практически никем не занято. Ардуинщики тоже с разным подходом имеются - различаем "школярство" и профи-разработку. Тут надо попытаться нечто среднее поднять - как минимум "продвинутый пользователь" с навыками самостоятельного написания программ "с нуля" при использовании минимума из средств "штатного референса". Столь жесткие рамки обусловлены наличием в платформах IDE не только АВР МК, но и иных семейств. Да кому-то все-таки придется и в "потроха" самой IDE залезть, чтоб на надлежащем уровне противостоять "школярству". ЭЭххх... последний КОТ (oleg110592) школярам от адуринки сдался!
Пы.Сы. У мня такое видение перспектив было лет с 10-15 тому назад. Благополучно прошло по мере "перехода на иной уровень" - с которым и адуринья благополучно вписалась (минуя промежуточный Си). Правда таки приходится "пропущенный материал" по мере возникновения вопросов поднимать/перелопачивать.
лучше горькая правда, чем сладкая ложь. Вот и на святую тини13 ардуинщики замахнулись https://github.com/MCUdude/MicroCore 3 дня назад подновляли - значит востребовано поддерживает различные тактовые частоты 9.6 MHz internal oscillator (default) 4.8 MHz internal oscillator 1.2 MHz internal oscillator 600 kHz internal oscillator * 128 kHz internal watchdog oscillator * с калибровкой ! 20 MHz external oscillator 16 MHz external oscillator 12 MHz external oscillator 8 MHz external oscillator 1 MHz external oscillator оптимизация LTO и согласно заветам батьки Атмеля AVR4027: Tips and Tricks to Optimize Your C Code for 8-bit AVR Microcontrollers. UART library, которого вроде насколько помню аппаратно нету и т.д. з.ы. а вы продолжайте заниматься "самовиденьем перспектив"
Даже интересно, что там в 13й тиньке LTOшить можно?! Но в целом прогресс ардуины налицо: и 10 лет не прошло с первых реализаций программного UART...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе удивительно, но при взгляде на многих сверху ничего не меняется...
лучше горькая правда, чем сладкая ложь. Вот и на святую тини13 ардуинщики замахнулись https://github.com/MCUdude/MicroCore... з.ы. а вы продолжайте заниматься "самовиденьем перспектив"
У меня этот вариант уже даавненько установлен... Обновления там сегодня по ВСЕМ платформам, что в MCUdude заявлены:
ССЫЛКИ УКАЗАНЫ ДЛЯ РАЗМЕЩЕНИЯ В соответствующем окне РАЗДЕЛА НАСТРОЙКИ - ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ ДЛЯ МЕНЕДЖЕРА ПЛАТ, А НЕ ДЛЯ ПРЯМОГО ПЕРЕХОДА В БРОУЗЕРЕ!!
Единственный минус - ставятся автоматом на сегодня ТОЛЬКО для windows7-10. Для ХР придется обновлять вручную. Собственно там все же разработка "в рамках референса", иначе или "чистый Си" или "чистый ассемблер" придется использовать. Да вчитываться в документацию. Оба подхода в своих рамках верны, но в конкретном случае удобнее использовать тот вариант, который более подходит для решения конкретного проекта. Да и "взаимовлияние" приемов весьма удачно в таком случае вписывается. Собственно удобство адуринки не в "контрмерах" относително АВРок, а в единой среде для разных семейств. Однако "нюансы" в описании отличий базового референса для различных семейств пока ХРОМАЮТ... И ... к сожалению особо именно тем направлением (разбором отличий и "нюансов") пока у нас слабо занимаются (как и популяризацией работы на уровне отличном от "школярства").
Даже интересно, что там в 13й тиньке LTOшить можно?! Но в целом прогресс ардуины налицо: и 10 лет не прошло с первых реализаций программного UART...
Собственно единственная наша общая ошибка только в том, что вместо объединенного подхода каждый старается остаться фанатом своего компилятора, семейства.... При том не всегда замечая (и тем более применяя) полезности из "противоположного лагеря".
Возможно там еще чего интересного для "больших кристаллов" в новом обновлении - я то не Сишник... Обновление по всем MCUdude платформам для ардуино 1.8.13 вроде совсем свеженькое - декабрьское (в ноябре еще не было)... За ХРшную версию (1.8.9 и более ранние) ... я там автообновление напрочь закрыл "во избежание проблем"... УВЫ... автоматика (автообновлнеие) уже для ХР ... слишком современна - операционка "давится" приложениями для х64 и новыми добавками в сетевых технологиях...
там написано MicroCore требует Arduino IDE версии 1.6.13 или выше. и зачем
Цитата:
Зачем использовать ATtiny13 в проекте Arduino? Они ГРОМКО дешевые (мы говорим здесь о центах!) Они бывают как в DIP, так и в SOIC пакетах. Они совместимы по выводам с семейством ATtiny25 / 45/85 и часто совместимы с кодом Большинство функций Arduino реализовано в MicroCore. Благодаря MicroCore вы можете уместить большой объем кода высокого уровня в 1024 байта!
Ну мне и ассемблера для 13й вполне достаточно. Насчет "требует Arduino IDE версии 1.6.13 или выше"... Там вопрос похитрее (и заметно хуже)... В прошлом году вероятно было что-то изменено в алгоритмах автообновления. Если базовая машина с виндовс ХР (х32) автообновление не просто"захлебывается" , но и портит уже установленную IDE... А версия 1.8.13 устанавливается ТОЛЬКО на 7-10ке. Разбираться с причинами тогда не стал - просто сделал копию с базовых файлов на другом ПК и затем восстанавливал содержимое для дополнительных платформ. А вот под 7-10 любая из версий IDE продолжает корректно обновлять платформы... УВЫ... "дань современности"... (ТБХУ!!!)...
Просто подборка "дополнительного материала" от разных авторов. (как и z-uno и другие дополнительные платформы). Меня у MCUdude более другие АВРки интересовали - та же 8515/162, 16я, 128я и прочее... А подборка с 13-й удачнее таки у DIY - там 8-лапок побольше. Кстати... нигде не встречал КАЧЕСТВЕННОЙ платформы под тиньку 2313/4313. Да и ПИКи "особнячком" держутся. Ранее шел разговор о том, что ардуиноIDE не такая уж и "детская шалость", которой можно побрезговать. Сколько народу пыталось доказать нежизнеспособность IDE... Теперь чаще слышу "обратный вариант"... А правда одна - все надо использовать разумно-достаточно и взаимовыгодно.
...Просто подборка "дополнительного материала" от разных авторов. ...Кстати... нигде не встречал КАЧЕСТВЕННОЙ платформы под тиньку 2313/4313. ...Ранее шел разговор о том, что ардуиноIDE не такая уж и "детская шалость", которой можно побрезговать.
1)"подборка от разных" - мусорная каша на компьютере в иде, потом жалобы - то не работает и то не работает 2)гуглом легко ищется или на сайте, который от каши на компьютере не открывается https://github.com/SpenceKonde/ATTinyCore 3) разговор от о том что нафик эта иде не нужна, она нужна только для кухарок - проверил код блинка тини10 на линуксе без всяких иде, скомпилил без вопросов тем же чудесным универсальным макефайлом - получил абсолютно тот же результат и те же 66 байт. Причем GCC AVR из дебиановского репозитория, старенький атмелевский еще вариант. CPP - он и в Африке CPP (повторяюсь).
А мне ВЛОМ на сегодня составление макуфайлов учить. Тем более под каждый проект заново прописывать, ёжли есть хоть и "ограниченный рамками референса", но вполне устраивающий по качеству инструмент. Насчет "каши" неверное утверждение ибо каждая платформа таки имеет свои прописи путей и свои подкаталоги. Ежли конечно грамотно разработана. Сайт не от "каши на компьютере" не открывается, а от ограничений наложенных более "МОДЕОРНИСТСКИМ" ПО, применяемом на многих сайтах - в ХР данный МОДЕРНИЗЬМ уже не поддерживается.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения