| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Соревнование "свободных художников" по мини-хелловорду https://radiokot.ru/forum/viewtopic.php?f=57&t=181932 |
Страница 1 из 4 |
| Автор: | ARV [ Пт мар 25, 2022 10:13:14 ] |
| Заголовок сообщения: | Соревнование "свободных художников" по мини-хелловорду |
есть желающие просто помериться письками? предлагаю что-то типа бесплатного и бесполезного соревнования по получению кода минимального размера с заданными параметрами, этакий хелловорд для AVR. идея навеяна многократными вопросами о размерах и постоянном упоминании размеров прошивки практически в любой теме о МК. вот, пока идея такая: 1. условия: - код на С/С++, любой доступный компилятор Си/С++; - запрещается ассемблер, ассемблерные вставки (ключевое слово asm), кроме входящих в "стандартный" комплект компилятора (aka libc); - запрещаются любые "хаки" с использованием линкера типа линковки готового бинарного файла; - разрешаются любые документированные и недокументированные фичи компилятора/линкера, которые можно повторить "стандартными" методами, т.е. командной строкой или makefile; - разрешается использование любых фьюзов и т.п. аппаратных нюансов МК, которые могут быть повторены каждым без спец-приспособлений; - МК тактируется только от любого доступного внутреннего источника тактирования. 2. задача: - код генерации меандра 1 Гц для микроконтроллера attiny13 3. оценка результата: - предлагаю оценивать результат в баллах по формуле: (2048 + 64) / ((size + ram) * max(1, F)/min(1, F)), где: size - размер прошивки в байтах; ram - количество байт статически занятой памяти; F - частота генерируемого сигнала. max и min - это, соответственно, наибольшее и наименьшее из двух значений. это для того, чтобы оценить точность формирования меандра посоревнуемся? кто первый, у кого меньше? проверять можно в протеусе |
|
| Автор: | astrahard [ Пт мар 25, 2022 10:32:17 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
Здравая идея. Еще хочу хелловорд для ASIC. |
|
| Автор: | ARV [ Пт мар 25, 2022 10:36:46 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
astrahard писал(а): хочу хелловорд для ASIC если это то, о чем написано в вики, то это не для раздела AVR
|
|
| Автор: | veso74 [ Пт мар 25, 2022 10:45:39 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
Можно поставить и "весовой коэффициент" за: количество строк в программе (с указание того, что следует принимать за строку, или за все строки?). (часто для внутр. алгор. тестов мне важен не размер памяти, а "скорость" написания кода для тестового кода, потому что потом идет еще один тест, потом еще... до бесконечности |
|
| Автор: | ARV [ Пт мар 25, 2022 11:06:11 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
не, количество строк не показатель, сишную программу можно в одну строку записать, ничего, кроме невозможности разобраться в ней, это не даёт. цель конкретная - минимальный код, минимальный расход ОЗУ, максимальная точность генерации частоты. я тут прикинул - вроде, неплохо получилось... только протестировать смогу поздно вечером. |
|
| Автор: | veso74 [ Пт мар 25, 2022 11:14:05 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
Пазмышления в письменной форм: поэтому я и написал "можно ...". А значит ли или нет - от его "весового" коэффициента в формуле. Конечно, не показатель, но в повседневной практике и из-за самого теста с высокоресурсным MCU предпочитаю "короткий код" перед бесконечными строками (напр. asm). --- В порядке мыслей: в формуле увеличите "вес" оперативной памяти. В данном случае она ограничена и хорошо обем быть маленьким (оставить на другие функции в будущем). |
|
| Автор: | ARV [ Пт мар 25, 2022 11:26:07 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
лучше бы выложили свои достижения в этом соревновании |
|
| Автор: | pyzhman [ Пт мар 25, 2022 11:34:58 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
В сторону: -Сейчас полгода будут мурыжить условия... |
|
| Автор: | DX168B [ Пт мар 25, 2022 12:10:59 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
Здравая идея. Еще хочу хелловорд для ASIC. ASIC не только лишь все могут себе позволить. Мало кто может себе позволить. Давай хотя-бы ПЛИС. Код: module Generator(); input wire sig_in; output wire sig_out; assign sig_out = !sig_in; endmodule Пять строк верилога, две ноги ПЛИС, один логический элемент. Или даже ни одного, если блоки ввода/вывода уже содержат нужную функциональность. Так как у большинства ПЛИС нет встроенного генератора, нужен внешний. Подаем на вход меандр 1Гц, получаем на выходе меандр 1Гц (со сдвигом фазы) и вуаля! Кто может еще проще? |
|
| Автор: | ARV [ Пт мар 25, 2022 12:16:17 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
DX168B писал(а): Подаем на вход меандр 1Гц, получаем на выходе меандр 1Гц (со сдвигом фазы) и вуаля! Кто может еще проще? еще проще могу я: проводок от места, из которого подаем, до места, в котором смотрим. только раздел посвящен микроконтроллерам AVR, и было бы здорово придерживаться темы. |
|
| Автор: | veso74 [ Пт мар 25, 2022 12:17:26 ] | |||
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду | |||
Начнем с Blink. Attiny13, через Arduino IDE, Microcore для ATtiny13A. выход 4, pin 3, 1 Hz Код: // ATtiny13A // _____ // RST/5 -| ^ |- VCC // 3 -| |- 2 // 4 -| |- 1 // GND -|_____|- 0 void setup() { pinMode(4, OUTPUT); // ATtiny13a pin 3 } void loop() { digitalWrite(4, HIGH); delay(500); digitalWrite(4, LOW); delay(500); } Код: Скетч использует 90 байт (8%) памяти устройства. Всего доступно 1024 байт.
Глобальные переменные используют 0 байт (0%) динамической памяти, оставляя 64 байт для локальных переменных. Максимум: 64 байт.
|
||||
| Автор: | ARV [ Пт мар 25, 2022 12:22:11 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
отлично, первый пошёл! |
|
| Автор: | veso74 [ Пт мар 25, 2022 12:24:54 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
От симуляции смысла нет, даже "вживую" проверял (на бредборде) (точно понятия не имею, что имеете в виду под этим: "max и min - это, соответственно, наибольшее и наименьшее из двух значений. это для того, чтобы оценить точность формирования меандра") |
|
| Автор: | >TEHb< [ Пт мар 25, 2022 13:05:48 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
Ну блин, и машинные коды нельзя? Ладно, сейчас на С накропаю... |
|
| Автор: | GoldenAndy [ Пт мар 25, 2022 13:50:24 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
А как оценить max min в протеусе, если протеус "тактирует" МК по частоте согласно ДШ? Да и в железе если, то на одном экземпляре МК и тактовая будет одна. соответственно, и погрешность будет константная... |
|
| Автор: | ARV [ Пт мар 25, 2022 14:04:49 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
GoldenAndy писал(а): А как оценить max min в протеусе, если протеус "тактирует" МК по частоте согласно ДШ? протеус тактирует не по ДШ, а по той частоте, что вручную введена. так и тестировать: вводим в протеусе частоту из ДШ (или какая там выбрана фьюзами), и при помощи осциллографа или построения графиков определяем точное значение периода меандра, а уж частоту по периоду понятно как узнать.затем подставляем в формулу меньшее-большее значение и вычисляем. например, протеус показал, что меандр имеет частоту 1,015 Гц - значит, там где min ставим 1, а там где max ставим 1,015 veso74 писал(а): Оставляю другим вычислять. доберусь до протеуса, просимулирую ваш код, раз вам лень.надеюсь, там в архиве есть готовый hex? Добавлено after 1 minute 7 seconds: само собой, принимаем, что встроенный RC-генератор даёт строго частоту по даташиту |
|
| Автор: | astrahard [ Пт мар 25, 2022 14:15:01 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
А вот инженеры Apple посчитали, что исключения, множественное наследование, шаблоны, динамическая идентификация типа данных (typeid), виртуальное наследование и спецификатор класса хранения в стандартном C++ либо недостаточны, либо недостаточно эффективны для использования в высокопроизводительном многопоточном ядре. P.S. Бьёрн Страуструп сразу же стал кричать и топать ногами желая похоронить всех инженеров Apple. |
|
| Автор: | Martian [ Пт мар 25, 2022 14:26:47 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
Код: // ATtiny13A // _____ // RST/5 -| ^ |- VCC // 3 -| |- 2 // 4 -| |- 1 // GND -|_____|- 0 //void setup() { // pinMode(4, OUTPUT); // ATtiny13a pin 3 //} void loop() { pinMode(4, OUTPUT); // ATtiny13a pin 3 delay(500); pinMode(4, INPUT); // ATtiny13a pin 3 delay(500); } я не знаю AVR, но где-то так... выкинуть как минимум один вызов функции уже плюс |
|
| Автор: | astrahard [ Пт мар 25, 2022 14:31:35 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
Да да, как сказали некие инженеры "ручками, ручками, не надорветесь" |
|
| Автор: | ARV [ Пт мар 25, 2022 14:34:00 ] |
| Заголовок сообщения: | Re: Соревнование "свободных художников" по мини-хелловорду |
Martian писал(а): но где-то так вообще-то так не честно... я предлагаю каждому желающему выносить на обсуждение свой вариант с исходником, hex-ом, примечаниями и т.п., в том числе с расчетом баллов.а вот это вот "как-то так" - всего лишь догадки, и дают они что-то или нет - никто не знает. |
|
| Страница 1 из 4 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


