Сейчас для программирования контроллеров и AVR Форт тоже применяется в разных его реализациях (например популярный amForth, FlashForth ...) но это ж надо его изучить и понять как даже полнофункциональное ядро языка умещается в ~8Кб оставляя для программы в 32Кб стандартного Ардуино немеренное количество места для программного кода сложной логики. Ну и понять как на Форт программировать задачи. :)
очевидно, что эта "экономия каждого байта" все не позволит вам впихнуть 48К кода в 32. Так что вы помаетесь еще с месяц или полгода - а потом все равно возьмете Мегу :)
Проблема в том, что вы же уже привыкнете так писать - отвыкать будет сложно
Мега не влезет чисто физически. А насчет привычки, вот пример, на чуть более простом вызове этой функции. По "правилам" мне следует писать как-то так:
for (byte i = 0; i < N; i++)
setCol(BC[3 - i], true, 10, 3 * i + 2, 3, 1, 1, ROL8(RZ, 4 * i) , 0, (i == 0) && MS, FL & 1 << (2 - i) ? 51 : 255, 255);
На выходе имеем одно и тоже, как по размеру, так и по функционалу. При этом я вызываю эту функцию с различным сочетанием переменных много раз. Какой же мне способ предпочесть, так чтоб сам код был более читаемый?
Нет. Ты вапще ничо не понял. На компилятор пенять - последнее дело, линкер сам выкинет все неиспользуемые переменные и функции, в том числе и библиотечные. И если встал вопрос уменьшения размера кода, тут уж приходится оптимизировать свой код, лагаритм и архитектуру всего приложения. Тот кусок, что ты привёл можно переписать так
Но, на самом деле, надо стараться делать код как можно более повторно используемым и избегать функций с более чем тремя параметрами, накладные расходы на их вызов растут многократно. Кстати, локальные переменные, те, что используются внутри функций, на размер результирующего кода влияют весьма незначительно, не жалей локальных переменных, код будет куда более читабельным. Иначе, захочешь чонить поправить в коде через полгода, а там чёрт ногу сломит, посмотришь-посмотришь - да и наступит пичалька. :)
Запомни, код должен быть самодокументированным, все переменные названы сообразно их смысловой нагрузке, тогда это будет выглядеть красиво и генерировать оптимальный код, ибо ты сам увидишь свои логаритмические ошибки. Например, этот код я писал три года назад, спицально залез посмотрел - через 15 мин я уже разобрался что к чему и могу без труда его поправить
void StateChanged(const TAppState ANewState) {
switch (ANewState)
{
case asNormal: // норм состояние. Ждем сигнала с даччика уровня
ledNormal.On();
Timers.Reset(hNormLed);
WaterGate.Off();
ledError.Off();
if (Counter != NULL) {
delete(Counter);
Counter = NULL;
}
break;
case asWait: // задержка перед наполнением ёмкости
if (Counter == NULL) {
Counter = new TCounterDown(FILL_WAIT_MIN);
if (Counter == NULL) Application.SetAppState(as_Error);
}
break;
case asFilling: // наполнение. открываем клапан, ждём сигнал с даччика уровня
RunCommand(cmd_Beep, ON);
WaterGate.On();
if (Counter != NULL) {
delete Counter;
Counter = NULL;
}
break;
case as_Error: // ошибка, делаем аборт
WaterGate.Off();
Timers.Stop();
ledNormal.Off();
ledError.On();
abort();
break;
default:
break;
}
Screen.clear();
Display();
}
и оно прямо в ходе выполнения будет подгружать новые исполняемые модули? - очень сильно осмневаюсь
покажите пример
чувак просто не понимает, что команда записи во флэш - привилегированная, и нигде, кроме области загрущика, исполняться не будет. А так бы мы себе уже стока оверлеев наделали бы. :)
А, да, в AVR такое можно только из секции памяти NRWW, это как раз область расположения загрузчиков (я попутал с STM8) но это ерунда, сбросить то программно можно и выставить пин с конденсатором на 1мСек чтоб бутлоадер подхватил при опросе пина с конденсатором и взял из EEPROM метку о том что загрузить, выставленные в основной программе и загрузил нужный кусок.
хм.... каждый раз. когда новички на этом форуме упоминали Архата - этим новичком оказывался сам Архат. Возможно, потому что реально никому, кроме себя, он не нужен. Вы случаем его по утрам в зеркале не видите?
Ты пади пишком патсталом хадил в то время, кагда эти двери уже были аткрыты)))))))
Чуваг, яниспорю, концепция эта имеет место быть и даже работает во многих коммерческих проектах преимущественно у товарищей из Польши и у лабусов. Но тама есть несколько ограничений по коду. И Reset проца там делается не через ноги и конденсаторы а гораздо "красивее" , где-то тут я это уже объяснял. Это для AVR.
В ARM архитектуре ваАаще практически все коммерческие девайсы работают по принципу - выбрал то шо надо, оно загрузило прошивку из стороннего флеша и работает.
Так-шо пабутЪ пака швейцаром у двери и следи шоп ана низакрыласЪ.
Тогда встречный вопрос: ты всерьёз думаешь, что ты умнее нескольких десятков бородатых дядек, которые годами работают над оптимизатором, и если вдруг ты решишь сэкономить строчки кода, не писав if/else, а конкретно упоровшись в психоделику многоэтажной тернарщины - то оптимизатор ВНЕЗАПНО решит испугаться, и начнёт делать код в два раза компактнее?
Ты осознаёшь, что это, по меньшей мере, самонадеянно? Лет пятнадцать так назад - да, это ещё имело смысл (и то - далеко не всегда). Сейчас - почти не имеет, уж лучше тогда сразу избавиться от посредников (вспоминаем анекдот про пиво) - и кодить прямо на АСМе. Всё остальное - дрочь вприсядку.
хм.... каждый раз. когда новички на этом форуме упоминали Архата - этим новичком оказывался сам Архат. Возможно, потому что реально никому, кроме себя, он не нужен. Вы случаем его по утрам в зеркале не видите?
А я думал, что это уже давно не загадка. По тону изложения, по пафосу, по недержанию упоминания себя, любимого - тут и без увеличительного стекла всё как на ладони, пмсм. Просто он теперь старается (херово, конечно, но старается, этого не отнять) напрямую себя не упоминать. А то боится, что я ему напомню, как тоскливо мне вечерами - уже второй год сидеть на крыльце и ждать, когда же приедет ко мне этот диванный боец, ломать мои ни в чём не повинные ноги (странно: пишу-то я руками. Может, это его проекция вовне, тогда это многое объясняет - сразу становится понятно, чем написан его великий код :))).
ты умнее нескольких десятков бородатых дядек, которые годами работают над оптимизатором, и если вдруг ты решишь сэкономить
Бородатые дяденьки тоже склонны ошибаться, даже несмотря на наличие многолетней бороды. И да, у меня уже есть опыт как исправления библиотек (там есть ошибки, представьте себе!), так и уменьшения кода этих самых библиотек, за счет выкидывания лишнего для меня функционала. Сейчас я просто хочу несколько облегчить сию задачу, только и всего.
И хватит уже придираться к виду моего кода. Мне сейчас так УДОБНО, я самоизолировался с ноутом с крошечным экраном, чем более компактно выглядит код, тем мне проще, я даже переменным короткие имена даю. Показывать кому либо еще я не собирался, и лишь привел небольшой пример, чтоб показать, почему его бесполезно показывать.
Бородатые дяденьки тоже склонны ошибаться, даже несмотря на наличие многолетней бороды. И да, у меня уже есть опыт как исправления библиотек (там есть ошибки, представьте себе!), так и уменьшения кода этих самых библиотек, за счет выкидывания лишнего для меня функционала. Сейчас я просто хочу несколько облегчить сию задачу, только и всего.
Слушай, я не пойму - ты хочешь помощи, или нет? Не один я тебе сказал, что то, чем ты пытаешься заниматься при текущем раскладе - дрочь. Ты же вместо того, чтобы посмотреть на вопрос чуть со стороны и суметь принять очевидное - считаешь, что придираются к твоему коду. То есть - ты внутренне не готов принять любое мнение, отличное от твоего, и всегда будешь находить отговорки (я тебе про оптимизатор, написанный профессионалами, ты мне - про кривые библиотеки, написанные недоучками, вот тебе наглядный пример контрпродуктивного подхода с твоей стороны).
Интереса что-либо обсуждать при таких вводных - ну как-то не очень. Пожалуй, я больше не буду продолжать.
Я еще в самом первом сообщении сказал чего именно хочу - увидеть код, который получается после сборки в кучу всех подключенных библиотек и очистки мусора, ЕСЛИ это возможно. Нет так, нет. С оптимизаций кода, как своего, так и чужого я помощи не просил, я сам хочу в этом ковыряться в силу своих возможностей.
Но, как, видимо, принято на этом форуме, вместо ответа получил какое-то мракобесие, вплоть до попадающего под статью 110.1 УК РФ. Может в ответах и были крупицы полезной информации, но их теперь выковыривать надо... проще было не спрашивать, только время потерял.
P.S. Сообщение из соседней темы (не мое, но согласен)
"Никакого ответа по теме.
я всего лишь спросил чем считывания с аналогового порта может мешать выполнению фукции.
И привел фукнцию в коде и как я считывал.
Ни ответа, ни предположения.
Да код дерьмо, но я бы не писал сюда, если бы он был идеален.
Я новичок в этом деле, и обратился сюда, как к более опытным."
Я еще в самом первом сообщении сказал чего именно хочу - увидеть код, который получается после сборки в кучу всех подключенных библиотек и очистки мусора, ЕСЛИ это возможно. Нет так, нет.
Так тебе была дана помощь. Ты про опцию -E компилятора почитал? Увидел, что она делает? Могу подсказать, что есть ответы и в гугле, по фразе "gcc preprocessor output".
Вместо того, чтобы читать не по диагонали, ты предпочитаешь видеть "мракобесие". О чём тебе, собственно, и говорят - ты видишь ровно то, чего хочешь видеть.
Всё, от меня больше помощи нет, её всё равно не видят.
Ошибкой вопрошающих и тут и в соседней теме является абсолютная уверенность в том, что они обратились в место, где им обязаны дать ответ быстрый, полный, точный и полностью соответствующий их внутреннему мировоззрению и уровню знаний.
Т.е. ведут себя как начальники, воображающие, что платят своим работникам зарплату.
Я еще в самом первом сообщении сказал чего именно хочу - увидеть код, который получается после сборки в кучу всех подключенных библиотек и очистки мусора
А в самом втором (в #1) Вам ответили, что Вы этого не увидите, т.к. такой код нигде и никогда (ни на каком этапе) не появляется.
Зачем было продолжать тему?
Так что не надо брехать про то, что
RxMaxx пишет:
Никакого ответа по теме.
То, что ответ Вам не понравился ещё не значит, что он не был дан.
А в самом втором (в #1) Вам ответили, что Вы этого не увидите, т.к. такой код нигде и никогда (ни на каком этапе) не появляется.
От чего ж не появляется? Очень даже появляется, подсказка с ключом -E для GCC оказалась вполне толковой, кое-что она мне дала, спасибо хоть на этом. Но вот развитие событий, показало, что дальнейшее обсуждение будет весьма трудозатратным и малоперспективным занятием.
sadman41 пишет:
Ошибкой вопрошающих и тут и в соседней теме является абсолютная уверенность в том, что они обратились в место, где им обязаны дать ответ быстрый, полный, точный и полностью соответствующий их внутреннему мировоззрению и уровню знаний. Т.е. ведут себя как начальники, воображающие, что платят своим работникам зарплату.
Вы, извините, сам форум то читали? Он на 90% состоит из поливания не самой приятной субстанцией любого вопрошающего по любому вопросу. От вас ждут, если не быстрого ответа, то хотя бы не хамства. Вместо этого в первых же сообщения прилетает "сама дурак, признай это". При этом еще сами старожилы умудряются между собой перессорится, часто на совершенно отвлеченные темы. Самое удивительное, что даже в теме "Ищу исполнителя" умудряетесь сразу же посылать почти любого заказчика. При этом деретесь даже за копеечные заказы между собой. Вас после этого не удивляет что, сюда приходят только малограмотные и маловоспитанные студенты, с пустяковыми вопросами? Любой более-менее уважающий себя заказчик, почитав что тут творится (а серьезные заказчики обязательно сперва прочтут старые сообщения), вовсе предпочитают не связываться с местными "бизнесменами", вот и приходят только суда от безыскодности. Не понимаете, что нахамив сегодня одному, потеряете хороший заказ завтра от другого? Ну, не знаете что, или не хотите ничего сказать по теме - будьте добры - пройдите мино, а коль знаете и хотите помочь - не хамите, даже если человек спрашивает, с вашей точки зрения полную чушь и элементращину.
А в самом втором (в #1) Вам ответили, что Вы этого не увидите, т.к. такой код нигде и никогда (ни на каком этапе) не появляется.
От чего ж не появляется? Очень даже появляется, подсказка с ключом -E для GCC оказалась вполне толковой, кое-что она мне дала, спасибо хоть на этом.
Он Вам дала не то, чего Вы просили (Вы уж определите что Вам нужно!). Никакого "выброса мусора" там нет, весь мусор ещё на месте до последней строчки. Если Вам этого (выброса) и не нужно было, так чего мозг пудрили? Какой вопрос Вы задали, на такой Вам и ответили. А виноваты все вокруг, кроме Вас.
Он Вам дала не то, чего Вы просили (Вы уж определите что Вам нужно!). Никакого "выброса мусора" там нет, весь мусор ещё на месте до последней строчки.
Оно мне дало половину из того, что я хотел, это лучше чем ничего.
ЕвгенийП пишет:
А виноваты все вокруг, кроме Вас.
Про "вину" я ничего не говорил, я говорю о банальной взаимовежливости, которая практически полностью отсутствует на форуме, из-за чего крайне трудной построить хоть сколь-нибудь конструктивный диалог и достичь взаимопонимания.
Да всё уже, неужели непонятно? Нас тут уже заранее записали в хамы и вообще. Зачем тогда, собственно, приходил? Объяснение только одно - мсье мазохист, и любит унижения, да пожёстче чтоб. А вопрос - ну это так, должна же быть хотя бы видимость повода. Собственно, ТС последними несколькими постами прямо и откровенно в этом и расписывается.
На этом предлагаю и закончить, а чтобы окончательно довести ТС до катарсиса - уже не мелочиться, а полностью, так сказать, соответствовать, просто посылая нахер, прямым текстом. Что мы - изверги какие, что ли, что не можем дать человеку то, чего он так просит и ради чего тут забрызгивает наши мониторы коричневым?
Зачем я приходил - это мое дело, сугубо индивидуальное. Знать Вам это не обязательно. Посылать кого-угодно куда угодно, Ваше право, но только не удивляетесь потом, что такая бизнес-модель плохо работает.
чувак просто не понимает, что команда записи во флэш - привилегированная, и нигде, кроме области загрущика, исполняться не будет. А так бы мы себе уже стока оверлеев наделали бы. :)
Никто не запрещает выставить фьюзы так, что бы весь флэш был RWW. И делай себе оверлеи наздоровье. Только, ведь, рессурса его не надолго хватит. Да и медленно это.
"Серьезные заказчики" в России работают с прикормленными конторами, которые могут откаты дать. А здесь, за редким исключением, ищут негра халявщики.
Ну, вот такая узость мышления от Вас и "средний" сегмент отпугнет. Кем себя считаете, за того Вас и принимают. Если проблема с взаимоуважением, хоть с самоуважения начните (только с ЧСВ не путайте, это разные вещи).
RxMaxx - вы не сумели доказать, что достойны того уважения, на которое претендуете. Вы пришли сюда за помощью в оптимизации кода - но не были готовы взглянуть в глаза реальности и признать, что корень ваших проблем в вашем стиле программирования. Вы убедили себя, что ваш код разросся из-за чужих библиотек и обижаетесь, когда вам говорят иное.
Проблема в том, что уважение других надо заслужить. Человек, который совершает ошибки, но хочет их исправить - достоин уважения, а тот, кто все время оправдывается или пытается делать вид, что это не ошибки, а стиль - никакого уважения не вызывает.
Проблема в том, что уважение других надо заслужить.
Т.е. чтоб человеку банально не хамили на входе - это нужно заслужить? Я думал в цивилизованном обществе эта опция включена по умолчания. И да - это я не про себя говорю, а про общее отношение на форуме к кому-бы то ни было, вы тут даже друг другу хамите по поводу и без. Судя по дизлайкам это то как раз многие понимают, но бояться признаться.
Про обиды слышать (точнее читать) вообще странно, то что у меня код "плохой" - я это и без чьих либо подсказок знаю, я ж не настоящий "сталевар", но я никогда никого и не просил ковыряться в моем коде, мой код - мои проблемы.
На входе вам никто не хамил, перечитайте начало ветки. Страсти разгорелись к середине дискуссии, по мере того как вы упорно продолжали утверждать, что ваш код не нуждается в пересмотре, а виноваты во всем библиотеки.
То что вы получили - считаю вы вполне заслужили, заход на программисткий форум с подобным кодом и "невинной" просьбой помочь сократить вклад библиотек можно считать изощренным тролингом.
А что вам наш форум не понравился - так это взаимно. Найдите себе площадку, где вам будут хлопать в ладоши и улыбаться. Только вряд ли вы там хоть чему-то научитесь
На входе вам никто не хамил, перечитайте начало ветки.
Хамство оно не всегда выражается в виде обсценной лексики, кою сейчас наглядно продемонстрировал господин выше, но, например и в призывах предусмотренных статьей 110.1 УК РФ. На самом деле это все полная ерунда, на нее можно было бы не обращать внимание, если бы не ПОВСЕМЕСТНАЯ практика на форуме, практически любого ТС считать умственно отсталым в особо запущенной форме, да и вообще нехорошим человеком. Задавая ЛЮБОЙ вопрос, каждый раз приходится выслушивать обвинения в стиле "самдуркачегоприерсянемешайплатиденьги". Если сей форум это такое особое место для особо одаренных, то на кой тут открытая регистрация, что сюда может любой зайти со своим говнокодом и испортить одним его видом настроение местных обитателей? Закройте тогда регистрацию и варитесь в своей тусовке, никто мешать не будет, ну или хотя бы тест на входе сделайте, как на некоторых технических форумах, чтоб можно было не пускать совсем уж молодых и неопытных.
Но, повторюсь еще раз - такое поведение в первую очередь бьет по репутации самого форума, чем дольше будете продолжать в такой духе, тем меньше "нормальных" людей сюда будет заходить (в том числе и с заказами).
Но, повторюсь еще раз - такое поведение в первую очередь бьет по репутации самого форума, чем дольше будете продолжать в такой духе, тем меньше "нормальных" людей сюда будет заходить (в том числе и с заказами).
Позвольте нам самим решать, какая репутация нам нужна. Наша репутация позволяет нам отсеивать на входе бездарей и халявшиков, а также дает от ворот поворот самовлюбленным посредственностям, уверенным, что все вокруг их не понимают, не оказывают должного уважения и слишком невежливо тыкают носом в ошибки.
Если эта репутация спасет нас от таких "нормальных людей", как пресловутый архат или вы - форум только выиграет. А для тех, кому вежливое лицемерное сюсюканеье или "дружелюбность" к тупым новичкам важнее профессионального уровня - есть другие форумы, например сообщество Гайвера
чуваГ, ну_кагтаг, пирименные: sis, pis, dos, dis, dris, thin, fuck, off и далее. ну_чо_за_кот???
Не, не пиши мне на почту, я тебе с таким кодом не помогу.
В аппаратуре Nasa и железе зонда миссии к кометe Чурюмова-Герасименко, летали Форт процессоры (RTX2010)
Чужие: странная архитектура инопланетных компьютеров
https://www.ferra.ru/review/techlife/philae-computer.htm
Сейчас для программирования контроллеров и AVR Форт тоже применяется в разных его реализациях (например популярный amForth, FlashForth ...) но это ж надо его изучить и понять как даже полнофункциональное ядро языка умещается в ~8Кб оставляя для программы в 32Кб стандартного Ардуино немеренное количество места для программного кода сложной логики. Ну и понять как на Форт программировать задачи. :)
Ну, хоть один адекватный попался. Прямым текстом же пишу, что не нужно смотреть мой код, не для чужих он глаз.
Не про код вопрос был, а про компилятор...
очевидно, что эта "экономия каждого байта" все не позволит вам впихнуть 48К кода в 32. Так что вы помаетесь еще с месяц или полгода - а потом все равно возьмете Мегу :)
Проблема в том, что вы же уже привыкнете так писать - отвыкать будет сложно
Но вместо этого я пишу так:
На выходе имеем одно и тоже, как по размеру, так и по функционалу. При этом я вызываю эту функцию с различным сочетанием переменных много раз. Какой же мне способ предпочесть, так чтоб сам код был более читаемый?
Нет. Ты вапще ничо не понял. На компилятор пенять - последнее дело, линкер сам выкинет все неиспользуемые переменные и функции, в том числе и библиотечные. И если встал вопрос уменьшения размера кода, тут уж приходится оптимизировать свой код, лагаритм и архитектуру всего приложения. Тот кусок, что ты привёл можно переписать так
но это чисто "орфографическая" оптимизация.
Но, на самом деле, надо стараться делать код как можно более повторно используемым и избегать функций с более чем тремя параметрами, накладные расходы на их вызов растут многократно. Кстати, локальные переменные, те, что используются внутри функций, на размер результирующего кода влияют весьма незначительно, не жалей локальных переменных, код будет куда более читабельным. Иначе, захочешь чонить поправить в коде через полгода, а там чёрт ногу сломит, посмотришь-посмотришь - да и наступит пичалька. :)
Запомни, код должен быть самодокументированным, все переменные названы сообразно их смысловой нагрузке, тогда это будет выглядеть красиво и генерировать оптимальный код, ибо ты сам увидишь свои логаритмические ошибки. Например, этот код я писал три года назад, спицально залез посмотрел - через 15 мин я уже разобрался что к чему и могу без труда его поправить
Ну, хоть один адекватный попался. Прямым текстом же пишу, что не нужно смотреть мой код, не для чужих он глаз.
Не про код вопрос был, а про компилятор...
чем быстрее до вас дойдет, что проблема именно в вашем коде, а не в компиляторах или чужих библиотеках - то больше шансов что вы чему-то научитесь.
хотя вряд ли уже сможете, случай явно очень запущенный. Синтаксис, насколько можно судить, вы знаете отлично - а программировать не умеете совсем.
Не пишите программ, не ваше это.
есть дешевый вариант поставить SPI flash на 8mb и подгружать по необходимости данные или модули программные.
есть дешевый вариант поставить SPI flash на 8mb и подгружать по необходимости данные или модули программные.
данные еще куда ни шло, а подгрузка кусков кода с внешнего носителя, насколько мне изветсно, в АВР не предусмотрена
а как по-твоему в ардуино код загружается из ардуино IDE без каких-либо программаторов ? ))
а как по-твоему в ардуино код загружается из ардуино IDE без каких-либо программаторов ? ))
Думаешь, ТС осилит написание своего загрущика, с оверлеями и социально безотвецтвенными дамами?
Хотя, я бы даже посмотрел на код загрущика в исполнении ТС, он же прирождённый обфускатор.
можно даже без загрузчика, просто в программу добавить кусок кода работы с SD картой или SPI флешками. и вообще, бутлоадеры такие есть готовые.
можно даже без загрузчика, просто в программу добавить кусок кода работы с SD картой или SPI флешками. и вообще, бутлоадеры такие есть готовые.
и оно прямо в ходе выполнения будет подгружать новые исполняемые модули? - очень сильно осмневаюсь
покажите пример
и оно прямо в ходе выполнения будет подгружать новые исполняемые модули? - очень сильно осмневаюсь
покажите пример
чувак просто не понимает, что команда записи во флэш - привилегированная, и нигде, кроме области загрущика, исполняться не будет. А так бы мы себе уже стока оверлеев наделали бы. :)
Надо перекачать код - обращаешься к загрузчику, он грузит и запускает ...
Думаю возможно сделать, но нужно ли ? И это явно не для ТС задача ...
А, да, в AVR такое можно только из секции памяти NRWW, это как раз область расположения загрузчиков (я попутал с STM8) но это ерунда, сбросить то программно можно и выставить пин с конденсатором на 1мСек чтоб бутлоадер подхватил при опросе пина с конденсатором и взял из EEPROM метку о том что загрузить, выставленные в основной программе и загрузил нужный кусок.
Все, делайте оверлеи, я открыл вам дверь.Остальное здесь: http://microsin.net/programming/AVR/avr109-self-programming.html
а вот готовый - по i2C https://github.com/mihaigalos/miniboot
Делайте свои оверлеи )) Пачками.Да и вот что еще, добавьте меню на экран 2004 ну чтоб можно было в ручную выбрать новую прошивку.
b про оптимизацию кода... Обратитесь к Архату он знает в этом толк :)
Обратитесь к Архату он знает в этом толк :)
хм.... каждый раз. когда новички на этом форуме упоминали Архата - этим новичком оказывался сам Архат. Возможно, потому что реально никому, кроме себя, он не нужен. Вы случаем его по утрам в зеркале не видите?
вот еще интересный boot с SD карты. Делайте свои оверлеи.... https://github.com/zevero/avr_boot А про Арахата это я с юмором написал.
Assembler должен помочь с оптимизацией.
Кому это он так задолжал?
Все, делайте оверлеи, я открыл вам дверь.
Ты пади пишком патсталом хадил в то время, кагда эти двери уже были аткрыты)))))))
Чуваг, яниспорю, концепция эта имеет место быть и даже работает во многих коммерческих проектах преимущественно у товарищей из Польши и у лабусов. Но тама есть несколько ограничений по коду. И Reset проца там делается не через ноги и конденсаторы а гораздо "красивее" , где-то тут я это уже объяснял. Это для AVR.
В ARM архитектуре ваАаще практически все коммерческие девайсы работают по принципу - выбрал то шо надо, оно загрузило прошивку из стороннего флеша и работает.
Так-шо пабутЪ пака швейцаром у двери и следи шоп ана низакрыласЪ.
я тож стабой ниспорю чуваг
Не про код вопрос был, а про компилятор...
Тогда встречный вопрос: ты всерьёз думаешь, что ты умнее нескольких десятков бородатых дядек, которые годами работают над оптимизатором, и если вдруг ты решишь сэкономить строчки кода, не писав if/else, а конкретно упоровшись в психоделику многоэтажной тернарщины - то оптимизатор ВНЕЗАПНО решит испугаться, и начнёт делать код в два раза компактнее?
Ты осознаёшь, что это, по меньшей мере, самонадеянно? Лет пятнадцать так назад - да, это ещё имело смысл (и то - далеко не всегда). Сейчас - почти не имеет, уж лучше тогда сразу избавиться от посредников (вспоминаем анекдот про пиво) - и кодить прямо на АСМе. Всё остальное - дрочь вприсядку.
хм.... каждый раз. когда новички на этом форуме упоминали Архата - этим новичком оказывался сам Архат. Возможно, потому что реально никому, кроме себя, он не нужен. Вы случаем его по утрам в зеркале не видите?
А я думал, что это уже давно не загадка. По тону изложения, по пафосу, по недержанию упоминания себя, любимого - тут и без увеличительного стекла всё как на ладони, пмсм. Просто он теперь старается (херово, конечно, но старается, этого не отнять) напрямую себя не упоминать. А то боится, что я ему напомню, как тоскливо мне вечерами - уже второй год сидеть на крыльце и ждать, когда же приедет ко мне этот диванный боец, ломать мои ни в чём не повинные ноги (странно: пишу-то я руками. Может, это его проекция вовне, тогда это многое объясняет - сразу становится понятно, чем написан его великий код :))).
Бородатые дяденьки тоже склонны ошибаться, даже несмотря на наличие многолетней бороды. И да, у меня уже есть опыт как исправления библиотек (там есть ошибки, представьте себе!), так и уменьшения кода этих самых библиотек, за счет выкидывания лишнего для меня функционала. Сейчас я просто хочу несколько облегчить сию задачу, только и всего.
И хватит уже придираться к виду моего кода. Мне сейчас так УДОБНО, я самоизолировался с ноутом с крошечным экраном, чем более компактно выглядит код, тем мне проще, я даже переменным короткие имена даю. Показывать кому либо еще я не собирался, и лишь привел небольшой пример, чтоб показать, почему его бесполезно показывать.
Бородатые дяденьки тоже склонны ошибаться, даже несмотря на наличие многолетней бороды. И да, у меня уже есть опыт как исправления библиотек (там есть ошибки, представьте себе!), так и уменьшения кода этих самых библиотек, за счет выкидывания лишнего для меня функционала. Сейчас я просто хочу несколько облегчить сию задачу, только и всего.
Слушай, я не пойму - ты хочешь помощи, или нет? Не один я тебе сказал, что то, чем ты пытаешься заниматься при текущем раскладе - дрочь. Ты же вместо того, чтобы посмотреть на вопрос чуть со стороны и суметь принять очевидное - считаешь, что придираются к твоему коду. То есть - ты внутренне не готов принять любое мнение, отличное от твоего, и всегда будешь находить отговорки (я тебе про оптимизатор, написанный профессионалами, ты мне - про кривые библиотеки, написанные недоучками, вот тебе наглядный пример контрпродуктивного подхода с твоей стороны).
Интереса что-либо обсуждать при таких вводных - ну как-то не очень. Пожалуй, я больше не буду продолжать.
"хоть кол на голове теши"
по другому тут не скажешь
в теме про millis()%... было абсолютно аналогично
Я еще в самом первом сообщении сказал чего именно хочу - увидеть код, который получается после сборки в кучу всех подключенных библиотек и очистки мусора, ЕСЛИ это возможно. Нет так, нет. С оптимизаций кода, как своего, так и чужого я помощи не просил, я сам хочу в этом ковыряться в силу своих возможностей.
Но, как, видимо, принято на этом форуме, вместо ответа получил какое-то мракобесие, вплоть до попадающего под статью 110.1 УК РФ. Может в ответах и были крупицы полезной информации, но их теперь выковыривать надо... проще было не спрашивать, только время потерял.
P.S. Сообщение из соседней темы (не мое, но согласен)
Да код дерьмо, но я бы не писал сюда, если бы он был идеален.
Я новичок в этом деле, и обратился сюда, как к более опытным."
Я еще в самом первом сообщении сказал чего именно хочу - увидеть код, который получается после сборки в кучу всех подключенных библиотек и очистки мусора, ЕСЛИ это возможно. Нет так, нет.
Так тебе была дана помощь. Ты про опцию -E компилятора почитал? Увидел, что она делает? Могу подсказать, что есть ответы и в гугле, по фразе "gcc preprocessor output".
Вместо того, чтобы читать не по диагонали, ты предпочитаешь видеть "мракобесие". О чём тебе, собственно, и говорят - ты видишь ровно то, чего хочешь видеть.
Всё, от меня больше помощи нет, её всё равно не видят.
Ошибкой вопрошающих и тут и в соседней теме является абсолютная уверенность в том, что они обратились в место, где им обязаны дать ответ быстрый, полный, точный и полностью соответствующий их внутреннему мировоззрению и уровню знаний.
Т.е. ведут себя как начальники, воображающие, что платят своим работникам зарплату.
Я еще в самом первом сообщении сказал чего именно хочу - увидеть код, который получается после сборки в кучу всех подключенных библиотек и очистки мусора
А в самом втором (в #1) Вам ответили, что Вы этого не увидите, т.к. такой код нигде и никогда (ни на каком этапе) не появляется.
Зачем было продолжать тему?
Так что не надо брехать про то, что
То, что ответ Вам не понравился ещё не значит, что он не был дан.
От чего ж не появляется? Очень даже появляется, подсказка с ключом -E для GCC оказалась вполне толковой, кое-что она мне дала, спасибо хоть на этом. Но вот развитие событий, показало, что дальнейшее обсуждение будет весьма трудозатратным и малоперспективным занятием.
Вы, извините, сам форум то читали? Он на 90% состоит из поливания не самой приятной субстанцией любого вопрошающего по любому вопросу. От вас ждут, если не быстрого ответа, то хотя бы не хамства. Вместо этого в первых же сообщения прилетает "сама дурак, признай это". При этом еще сами старожилы умудряются между собой перессорится, часто на совершенно отвлеченные темы. Самое удивительное, что даже в теме "Ищу исполнителя" умудряетесь сразу же посылать почти любого заказчика. При этом деретесь даже за копеечные заказы между собой. Вас после этого не удивляет что, сюда приходят только малограмотные и маловоспитанные студенты, с пустяковыми вопросами? Любой более-менее уважающий себя заказчик, почитав что тут творится (а серьезные заказчики обязательно сперва прочтут старые сообщения), вовсе предпочитают не связываться с местными "бизнесменами", вот и приходят только суда от безыскодности. Не понимаете, что нахамив сегодня одному, потеряете хороший заказ завтра от другого? Ну, не знаете что, или не хотите ничего сказать по теме - будьте добры - пройдите мино, а коль знаете и хотите помочь - не хамите, даже если человек спрашивает, с вашей точки зрения полную чушь и элементращину.
От чего ж не появляется? Очень даже появляется, подсказка с ключом -E для GCC оказалась вполне толковой, кое-что она мне дала, спасибо хоть на этом.
Он Вам дала не то, чего Вы просили (Вы уж определите что Вам нужно!). Никакого "выброса мусора" там нет, весь мусор ещё на месте до последней строчки. Если Вам этого (выброса) и не нужно было, так чего мозг пудрили? Какой вопрос Вы задали, на такой Вам и ответили. А виноваты все вокруг, кроме Вас.
Про "вину" я ничего не говорил, я говорю о банальной взаимовежливости, которая практически полностью отсутствует на форуме, из-за чего крайне трудной построить хоть сколь-нибудь конструктивный диалог и достичь взаимопонимания.
Да всё уже, неужели непонятно? Нас тут уже заранее записали в хамы и вообще. Зачем тогда, собственно, приходил? Объяснение только одно - мсье мазохист, и любит унижения, да пожёстче чтоб. А вопрос - ну это так, должна же быть хотя бы видимость повода. Собственно, ТС последними несколькими постами прямо и откровенно в этом и расписывается.
На этом предлагаю и закончить, а чтобы окончательно довести ТС до катарсиса - уже не мелочиться, а полностью, так сказать, соответствовать, просто посылая нахер, прямым текстом. Что мы - изверги какие, что ли, что не можем дать человеку то, чего он так просит и ради чего тут забрызгивает наши мониторы коричневым?
"Серьезные заказчики" в России работают с прикормленными конторами, которые могут откаты дать. А здесь, за редким исключением, ищут негра халявщики.
чувак просто не понимает, что команда записи во флэш - привилегированная, и нигде, кроме области загрущика, исполняться не будет. А так бы мы себе уже стока оверлеев наделали бы. :)
Никто не запрещает выставить фьюзы так, что бы весь флэш был RWW. И делай себе оверлеи наздоровье. Только, ведь, рессурса его не надолго хватит. Да и медленно это.
Ну, вот такая узость мышления от Вас и "средний" сегмент отпугнет. Кем себя считаете, за того Вас и принимают. Если проблема с взаимоуважением, хоть с самоуважения начните (только с ЧСВ не путайте, это разные вещи).
RxMaxx - вы не сумели доказать, что достойны того уважения, на которое претендуете. Вы пришли сюда за помощью в оптимизации кода - но не были готовы взглянуть в глаза реальности и признать, что корень ваших проблем в вашем стиле программирования. Вы убедили себя, что ваш код разросся из-за чужих библиотек и обижаетесь, когда вам говорят иное.
Проблема в том, что уважение других надо заслужить. Человек, который совершает ошибки, но хочет их исправить - достоин уважения, а тот, кто все время оправдывается или пытается делать вид, что это не ошибки, а стиль - никакого уважения не вызывает.
Никто не запрещает выставить фьюзы так, что бы весь флэш был RWW. И делай себе оверлеи наздоровье.
Есть пример???
Т.е. чтоб человеку банально не хамили на входе - это нужно заслужить? Я думал в цивилизованном обществе эта опция включена по умолчания. И да - это я не про себя говорю, а про общее отношение на форуме к кому-бы то ни было, вы тут даже друг другу хамите по поводу и без. Судя по дизлайкам это то как раз многие понимают, но бояться признаться.
Про обиды слышать (точнее читать) вообще странно, то что у меня код "плохой" - я это и без чьих либо подсказок знаю, я ж не настоящий "сталевар", но я никогда никого и не просил ковыряться в моем коде, мой код - мои проблемы.
но я никогда никого и не просил ковыряться в моем коде, мой код - мои проблемы.
тагды какога хyйа ты здесь трёсси?????????
На входе вам никто не хамил, перечитайте начало ветки. Страсти разгорелись к середине дискуссии, по мере того как вы упорно продолжали утверждать, что ваш код не нуждается в пересмотре, а виноваты во всем библиотеки.
То что вы получили - считаю вы вполне заслужили, заход на программисткий форум с подобным кодом и "невинной" просьбой помочь сократить вклад библиотек можно считать изощренным тролингом.
А что вам наш форум не понравился - так это взаимно. Найдите себе площадку, где вам будут хлопать в ладоши и улыбаться. Только вряд ли вы там хоть чему-то научитесь
Хамство оно не всегда выражается в виде обсценной лексики, кою сейчас наглядно продемонстрировал господин выше, но, например и в призывах предусмотренных статьей 110.1 УК РФ. На самом деле это все полная ерунда, на нее можно было бы не обращать внимание, если бы не ПОВСЕМЕСТНАЯ практика на форуме, практически любого ТС считать умственно отсталым в особо запущенной форме, да и вообще нехорошим человеком. Задавая ЛЮБОЙ вопрос, каждый раз приходится выслушивать обвинения в стиле "самдуркачегоприерсянемешайплатиденьги". Если сей форум это такое особое место для особо одаренных, то на кой тут открытая регистрация, что сюда может любой зайти со своим говнокодом и испортить одним его видом настроение местных обитателей? Закройте тогда регистрацию и варитесь в своей тусовке, никто мешать не будет, ну или хотя бы тест на входе сделайте, как на некоторых технических форумах, чтоб можно было не пускать совсем уж молодых и неопытных.
Но, повторюсь еще раз - такое поведение в первую очередь бьет по репутации самого форума, чем дольше будете продолжать в такой духе, тем меньше "нормальных" людей сюда будет заходить (в том числе и с заказами).
Все виноваты. Один ТС весь в белом, только стоит на асфальте, на ногах лыжи с ботинками в два раза меньшего размера и плачет что лыжи не едут ...
Но, повторюсь еще раз - такое поведение в первую очередь бьет по репутации самого форума, чем дольше будете продолжать в такой духе, тем меньше "нормальных" людей сюда будет заходить (в том числе и с заказами).
Позвольте нам самим решать, какая репутация нам нужна. Наша репутация позволяет нам отсеивать на входе бездарей и халявшиков, а также дает от ворот поворот самовлюбленным посредственностям, уверенным, что все вокруг их не понимают, не оказывают должного уважения и слишком невежливо тыкают носом в ошибки.
Если эта репутация спасет нас от таких "нормальных людей", как пресловутый архат или вы - форум только выиграет. А для тех, кому вежливое лицемерное сюсюканеье или "дружелюбность" к тупым новичкам важнее профессионального уровня - есть другие форумы, например сообщество Гайвера
Админы, предлагаю закрыть ветку.
А лучше сразу весь форум, тогда ни один бездарь или халявщик сюда не проберется.