Arlleex 173 6 августа, 2023 Опубликовано 6 августа, 2023 · Жалоба 7 минут назад, jcxz сказал: Расчёт выполняется на основе входных значений желаемой тактовой частоты и источника тактирования (CCLK_VAL, CCLK_SRC). Я тоже так делал, но для себя вынес, что лучше всякие пробы финальных частот тактирования (и не только их) осуществлять в runtime при инициализации драйвера соответствующей периферии. Кода с гулькин хвост, зато сразу чтением регистров тактирования понятно, достаточно ли удовлетворительны условия (например, для MAC-контроллера STM32F4 частота AHB должна быть минимум 25 МГц) для запуска. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 6 августа, 2023 Опубликовано 6 августа, 2023 · Жалоба 3 часа назад, Arlleex сказал: Я тоже так делал, но для себя вынес, что лучше всякие пробы финальных частот тактирования (и не только их) осуществлять в runtime при инициализации драйвера соответствующей периферии. У меня там не только делители и прочее считаются, но и проверка реализуемости делается. Скажем для модуля АЦП должна быть определённая частота, которая получается из какой-то из частот блока тактирования МК. И может оказаться, что при данной заданной частоте МК, желаемая частота АЦП нереализуема. Или не обязательно АЦП, а ещё какой-то периферии. Тогда у меня код просто не скомпилится - я сразу увижу, что задал недопустимую частоту. И увижу где именно конфликты. С runtime-вычислением это невозможно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 173 6 августа, 2023 Опубликовано 6 августа, 2023 · Жалоба 7 минут назад, jcxz сказал: С runtime-вычислением это невозможно. Ну почему... В runtime оно скомпилится, набор нужных условий провалится и вывалится warning (в отладочный интерфейс, например) или error, в зависимости от критичности Но я соглашусь, что бывает проще проверить на этапе сборки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 12 часов назад, Arlleex сказал: Подключения там делают только тех файлов, без которых исходный заголовочник не может быть обработан в месте, где его подключили. Вот это поворот!!! Вот это мастерское переобувание на 180°. Ровно об это я и говорил с самого начала. Даже ericN привёл пример, как должен выглядеть хидер в данном случае. 12 часов назад, Arlleex сказал: Вопрос заключался совсем в другом - работодатель хочет знать, насколько вы в курсе базовых особенностей низкоуровневых языков программирования работодатель хотел посмотреть как я решу поставленную задачу. я её решил. работодатель был удовлетворён. 12 часов назад, jcxz сказал: PS: Расстрелять? вполне годное решение. Может кто-нибудь написал бы лучше... но тем не менее - это ваш include.h. Вы в нем хозяин. Вы его написали и выдали в "общий проект". Если кто-то захочет использовать - он подключит ваш include.h в свой .с или даже в свой .h (ему нет необходимости его корректировать). Прогер этот ваш include.h может себе включить в любом порядке с другими заголовками. Очерёдность a.h, b.h или include.h ни как не повлияет на "соберётся или нет проект". Я же говорю о другом. Написал прогер myCalc.c и myCalc.h. Я взял его расчет и подключил в свой проект. подтянул myCalc.h. Запускаешь сборку - ошибка. Неизвестный тип T_type_some. Ищешь где этот тип описан. Нашел. Подключил myInclude.h в .с. Ошибка - не определёно 10 типов из myInclude.h. Ещё подключаешь 5 хидеров - ошибка, не определено 50 типов....... когда это всё собрал - получилось в .с 10 инклуде вместо одного. и далее.... по какой-нибудь причине поменял очерёдность - всё рухнуло. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 173 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 1 час назад, razrab83 сказал: Ровно об это я и говорил с самого начала. Даже ericN привёл пример, как должен выглядеть хидер в данном случае. Вы привели одну строчку с объявлением указателя на структуру, тип которой не известен. И сказали, что остальной хидер - большой, не приведен просто. Откуда мне знать, что в том хидере было еще? В общем случае, там вполне могли быть какие-то куски, которые делали бы явное подключение этого заголовка в другом не гибким. И я сказал, что не всегда можно написать не зависимые от порядка заголовки. Цитата работодатель хотел посмотреть как я решу поставленную задачу. я её решил. работодатель был удовлетворён. Ну тогда он итак знал, что возьмет вас на работу, ибо ответ в стиле Цитата Я не знаю правильный ответ, но это говнокод. Так писать нельзя и я так не пишу. бесспорно, мощный, но навыков не показывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 134 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 3 часа назад, Arlleex сказал: Ну тогда он итак знал, что возьмет вас на работу, ибо ответ в стиле Цитата Я не знаю правильный ответ, но это говнокод. Так писать нельзя и я так не пишу. бесспорно, мощный, но навыков не показывает. Однако показывает решимость получать при необходимости новые знания, а это гораздо ценнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 231 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 4 часа назад, Arlleex сказал: Цитата Я не знаю правильный ответ, но это говнокод. Так писать нельзя и я так не пишу. бесспорно, мощный, но навыков не показывает. Работодатель: "Уважаемый, почему от Вас чем-то эээээ.... пованивает?" Соискатель: "У меня имеется навык ковыряния в говнокоде." Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 173 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 1 час назад, Сергей Борщ сказал: Однако показывает решимость получать при необходимости новые знания, а это гораздо ценнее. Это ничего не показывает, когда приходишь устраиваться "программистом на Си". "Я не знаю, я разберусь по ходу работы" - вряд ли такой ответ хотят услышать от человека, в обязанности которого будет входить как написание своего, так и рефакторинг/сопровождение чужого кода. Но если устраиваешься так, что иногда (формально) нужно программировать - тогда такой ответ покатит. И хорошо, когда встроенная чуйка подсказывает, что в куске кода что-то не так. Но сколько в Си возможностей выстрелить в ногу, даже когда код выглядит более менее нормально? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ericN 3 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба В 07.08.2023 в 15:45, Arlleex сказал: В 07.08.2023 в 14:44, Сергей Борщ сказал: Однако показывает решимость получать при необходимости новые знания, а это гораздо ценнее. Это ничего не показывает, когда приходишь устраиваться "программистом на Си". "Я не знаю, я разберусь по ходу работы" - вряд ли такой ответ хотят услышать Показывает. Во первых - инженер не должен знать всё на память, но должен знать где взять информацию и как решить задачу. Во вторых подобные задачи на тестах задают часто и "подводный камень" этой задачи - не дать правильный ответ, а проверить - понимает ли соискатель, что знаковое и беззнаковое сравнение могут дать не ожидаемый результат. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 20 минут назад, Arlleex сказал: "Я не знаю, я разберусь по ходу работы" - вряд ли такой ответ хотят услышать поэтому я таково ответа не давал. не надо мне приписывать того, чего я не говорил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 173 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 2 часа назад, razrab83 сказал: поэтому я таково ответа не давал. не надо мне приписывать того, чего я не говорил. А как можно иначе трактовать вот это? В 04.08.2023 в 12:42, razrab83 сказал: Мне когда на собеседе дали такую задачу и спросили "-В иф зайдет?", я сказал, "-Я не знаю правильный ответ, но это говнокод. Так писать нельзя и я так не пишу. Если я встречу такой код, я открою справочник, посмотрю куда преобразует СИ и сделаю ЯВНОЕ приведени типа." 2 часа назад, ericN сказал: Во первых - инженер не должен знать всё на память, но должен знать где взять информацию и как решить задачу. Всего не запомнишь, согласен. Как тогда определить качество знаний будущего сотрудника, если он будет на любой провокационный вопрос по теме его проф. деятельности отвечать "ну я не знаю правильный ответ, но тут есть подвох, который можно будет решить, открыв учебник или какие-то другие ресурсы", заведомо ожидая ловушек в вопросах? Вот человек утверждал, что plain char в Си по-дефолту знаковый. Ну будет он листать чьи-то (или свои) исходники, просматривать их и в упор не видеть баг, с этим связанный. Как он приобретет знание об этой особенности? Только поковырявшись, разобравшись, набив шишек. А потом на собеседовании (вдруг) если задатут такой вопрос - он не будет говорить о том, что "я не знаю, я так не пишу". Он вполне однозначно ответит, потому что уже был опыт прокатиться на граблях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tonyk_av 41 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 3 hours ago, Arlleex said: Как тогда определить качество знаний будущего сотрудника Если собеседование проводит человек в теме, то у него есть вопросы, показывающие, насколько в теме его собеседник. Например, попробуйте потенциального "шкафника" спросить по каким параметрам он выбирает автоматические выключатели. Если уже после второго задумался, то можно прощаться, а если сходу перечисляет 6, а то и 7, то человек явно вдумчиво изучал каталоги и можно задавать более тонкие вопросы, показывающие, как человек подходит к решению задач и организации своей работы. И такие вопросы-маркеры есть у всех, кто сам в теме и имеет опыт поиска нужных людей. 3 hours ago, Arlleex said: Вот человек утверждал, что plain char в Си по-дефолту знаковый. Ну будет он листать чьи-то (или свои) исходники, просматривать их и в упор не видеть баг, с этим связанный. Как он приобретет знание об этой особенности? А для чего это знать? Такой вопрос интересно задавать, наверно, молодым инженерам. Тут интересно, как ответят. По-моему, вполне тянет на вопрос-маркер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 173 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 27 минут назад, tonyk_av сказал: А для чего это знать? Например, чтобы быстро приводить код в порядок, сходу видеть потенциально скользкие места и т.д. Для сокращения времени отладки/отлова багов. Это же само собой разумеющееся. Зачем шеф-повару знания о совместимости вкусов? Ведь можно прийти на кухню и по ходу дела, прямо на месте разбираться. Да? Способность учиться, разумеется, очень востребована. Но, ИМХО, на первом месте - уже накопленный бэкграунд. И если его нет - (по Вашей аналогии с "шкафником") - собеседование закончено. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 59 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба On 8/7/2023 at 8:43 PM, Arlleex said: Например, чтобы быстро приводить код в порядок, сходу видеть потенциально скользкие места и т.д. Ну, так какой же по умолчанию char в ANSI C ? Знаковый или беззнаковый ? Я серьезно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 173 7 августа, 2023 Опубликовано 7 августа, 2023 · Жалоба 4 минуты назад, dimka76 сказал: Ну, так какой же по умолчанию char в ANSI C ? Знаковый или беззнаковый ? В разных компиляторах по-разному, т.к. implementation defined. Конкретно "практикой" определить можно, получив значение CHAR_MIN. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться