А я стек в жижку. И снова не могу заниматься. Мне нужен универсальный утешитель-пинкораздаватель с функцией своевременного направления в нужную сторону. Желательно в виде хуман интерфейса. Хотя казалось бы. Я ж сам во всем этом заинтересован.
Мне нравится и не нравится читать вакансии. С одной стороны, инфа для изучения, с другой - осознание глубины текущего положения. Вот, например, читаешь описание вакансии: "Нам нужен C-шник. Если вы понимаете, что такое pointer и чем отличается (char*)pointer+1 от (int*)pointer+1, то вам к нам." О, думаешь, понимаю. "Если вы можете писать на языках высокого уровня (любых), но вам это не нравится и вы раз за разом возвращаетесь к тому, что некоторые называют основами, то вам тоже к нам. " О, думаешь, как бы могу писать и очень не нравится (поэтому и как бы). А далее идут требования: - Отличное знание C; - Понимание построения компиляторов и VM (P-code, bytecode, JIT); - Кристальное понимание, как работают sockets (с select/poll/epoll/kqueue); - Знание UNIX подсистем, в особенности SysV IPC; - Знание хотя бы одного из языков высокого уровня: Python, Perl, Javasсript, PHP. - Знание и опыт с OpenGL; - Win32 API; - functional programming;
И настроение падает. Я вообще хз, самоучке тяжело ориентироваться в технологиях, но ведь Win32 API и UNIX вообще из разных опер, нет? OpenGL и компиляторы на каком расстоянии друг от друга? Может мне кто объяснить (вопли в пустоту)?
Ну вот я снова весь день потратил на одну задачу и не сделал ее. Суть такова: Есть программный интерфейс для работы с двоичным деревом. В узле - две строки. Дерево отбрасывает дубликаты при совпадении обеих строк. Остальные раскидываются по ветвям в алфавитном порядке. Надо переписать реализацию таким образом, чтобы дубликаты по первой строке собирались в список в одном узле. Задача ясна до предела, но пока ни одна попытка не дала стабильного результата. Мб если бы писал с нуля, мб было бы проще. Но тут надо модифицировать код. А еще у меня вопрос, каким образом строка = строка в С не работает, а структура = структура вполне себе можно. Или я что-то не понимаю. _ Из кафе проснулись, надо им прошивку исправленную переслать. И еще какую-то хреновинку поправить. _ UPD. Таки приблизился к решению. Во всяком случае, пока все введенные данные нормально заполняют дерево и нормально выводятся на экран.
Сегодня была истерика. Возможно, я и правда пытаюсь откусить больше, чем поместится во рту. Возможно, мне надо меньше держать в себе. Когда я смотрю на мир, мне кажется, я справлюсь. Когда я смотрю на себя, мне кажется, я не вылезу из этого колодца. На трудную дорогу мне пришлось вступить. Никто не оценит.
Занялся VSCode, и в целом все нормально, но build. Как-то тема make прошла мимо меня. И с одной стороны, хорошо бы это изучить (со всякими cmake, qbs), а с другой хочется попроще. Чтоб на кнопочку, и в бой. Сейчас просматриваю makefile, сгенерированный cubemx, и он очень сложен.
Приделал SPL к SES. Не очень аккуратно, ибо проект использует startup.s от SES, а не от официальной поставки к контроллеру. Но работает. svd между запусками программы слетел. Как заключение, работоспособность есть, редактор кода неудобный, настройка с прописыванием путей куда надо. Визуально не так громоздко, как sw4stm32. Я бы назвал SES копией Keil, ощущения примерно такие же.
Заметил такую странность, но компьютеры очень плохо работают без электричества. Прямо таки совсем не работают. Семь часов без света - планы кодить всю субботу вылетели в трубу.
Мда, приклеенная резина к пластику не дала нужного результата. Правда, я даже не верил. Проблемы две - нет динамики и резкое снижение чувствительности вдоль радиуса. Короч, мне нужны 3d принтер, москитная сетка и двусторонний скотч.
SES задебажил. Нужно было переключиться на debug internal, и настроить еще разок. Регистры периферии добавляются с svd файлом. Потом прикручу spl, увы, не сегодня.
Две недели как не читаю мангу вечером. И заодно ложусь спать до одиннадцати. Не то, чтобы стал читать взамен что-то полезное. Так, статьи по настройке того-сего. Но шаг к преодолению сделан. Четыре года зависимости. А сегодня я нарушу обещание. Ибо смерть как хочется перечитать Дорохедоро и ознакомиться с новым проектом автора. Думаю, теперь смогу перевести тупой запой чтения всего подряд на онгоинги оставшегося интересного. Не так много там, раз в полгода вспомнить Атаку титанов или Made in Abyss.
Итак, Segger Embedded Studio. 1) Создание абсолютно пустого проекта. Это если ткнуть не туда, а выбор большой с сомнительным по качеству описанием. 2) Неудобное отображение ошибок. И не информативное. Проект не билдится? В окошке только "Build failed" без подробностей. 3) Автодополнение есть, но не отрабатывает по привычному ctrl+space. Скобочки автоматом не подставляет. Подсветка символов есть, но именно символов и сочетаний их. Если есть переменная a - подсветится любое появление символа a. Бьет по глазам. Мб надо настроить. 4) Wiki не совпадает с менюшками в IDE. 5) Своих тулчейнов не скачивает. SW4STM32 себе сам прикрутил не самый свежий arm-none-eabi-gcc. 6) В дебаг зашел, но до breakpoint не доходит. Регистры периферии не вижу. 7) По графическому виду - аскетично, но при этом не очевидно. В SW4STM32 прям в глаза долбились привычные по Keil вкладки. Только их там еще больше было. Намного больше. О, как много здесь вкладок. 8) Даже при настройках дебагера от проекта SW4STM32 не работает.
Хз, радоваться или нет, но вчерашняя функция после еще одного дня заработала. Вопрос становится так потому, что это костылестроение и полное противоречие даташиту.
Уже понял, что openOCD и GDB входят в состав практически любой отладки на linux. Так что для меня главное, чтобы настройка до работоспособного состояния не занимала недели и в среде разработки имелся графический интерфейс для отладки, ибо ковырять терминал мне неудобно. Следующая цель - Segger Embedded Studio (в ней недавно добавили поддержку 3party дебагеров), затем VSCode в связке с плагинами Native debug или Cortex debug.
Выбор приоритетной задачи при большом потоке заданий? Сваливаюсь в прокрастинацию. С чем связана проблема? По одну руку, изделие, которое я должен делать и которое не хочет работать. Куча попыток испробована, идей нет -> фрустрация. Выход из ситуации - смена деятельности. Мои варианты: самообразование. Дочитать Прата (больше года -_-), начать новую книгу по алгоритмам, почитать статьи по RTOS. Однако предыдущая задача не отпускает, мысли возвращаются к ней, а также мешает совесть заниматься не работой на работе. Мозг буксует и отказывается делать выбор. Я сижу и предаюсь праздным размышлениям.
Одна из моих проблем - не умение эффективно решать задачи. Поэтому сегодня большую часть дня писал одну функцию, да и она не работает. Вот как можно составить план и выполнить его, если не можешь оценить затраты на элементарное задание?
Бесполезный день. Единственно хорошее - посетил концерт народной оркестровой музыки. Позже, если найду, приложу пример исполнения особенно понравившегося произведения.