ViKo 1 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба Вопрос или тема для обсуждения - нужно ли в 2020 году использовать битовые поля с непредсказ не сходу понятной позицией, не имеющие адреса? А нужно использовать жёстко заданные определения, как, например, делается в stm32f...h /*!< SWS configuration */ #define RCC_CFGR_SWS_Pos (2U) #define RCC_CFGR_SWS_Msk (0x3UL << RCC_CFGR_SWS_Pos) /*!< 0x0000000C */ #define RCC_CFGR_SWS RCC_CFGR_SWS_Msk /*!< SWS[1:0] bits (System Clock Switch Status) */ #define RCC_CFGR_SWS_0 (0x1UL << RCC_CFGR_SWS_Pos) /*!< 0x00000004 */ #define RCC_CFGR_SWS_1 (0x2UL << RCC_CFGR_SWS_Pos) /*!< 0x00000008 */ Логично? Принято единогласно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба Тогда уже так в 2020 году) "Ашники" можно получить автоматически из SVD-файлов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 7 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба Только что, ViKo сказал: Логично? Принято единогласно? в IAR для XMEGA было так _bp - Bit position _bm - Bitmask _bm = (1 << _bp) _gp - Bit group position _gm - Bit group mask _gm = (1 << _gp) _gc - Bit group configuration mask Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 18 февраля, 2020 Опубликовано 18 февраля, 2020 · Жалоба Ага, от #define тоже избавиться! Для того нам даны в С++ constexpr. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 19 февраля, 2020 Опубликовано 19 февраля, 2020 · Жалоба неправильно вопрос поставлен. Надо ли нам в 2020 использовать допотоный императивный небезопасный язык без автоматического управления памятью. А то к полям каким-то прикопались. А файлы *.h не смущают? Это дикость, древность и толком непонятно, зачем оно надо. C# с явой как-то без них прекрасно. А я так стал и вовсе весь почти код в самих h и писать, лень мне прототип-реализация дважы расписывать. Правильно оно или нет - не знаю, но мне удобнее и точка. Хотя иногда и приходится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 19 февраля, 2020 Опубликовано 19 февраля, 2020 · Жалоба 8 minutes ago, DASM said: Надо ли нам в 2020 использовать допотоный императивный небезопасный язык без автоматического управления памятью. Поскольку вопрос задан относительно микроконтроллеров, думаю, что Си# точно не место. А что можно сказать об атвтоматическом управлении памятью в какой-нибудь крохе типа STM32F030? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 19 февраля, 2020 Опубликовано 19 февраля, 2020 · Жалоба Ну ладно с памятью. Хидеры то зачем? Раньше они были нужны, чтобы проект повторно быстро собирался. Сейчас и программно компиляторы умнее, и машины мощнее. Я один считаю - что это странно, в хидере фцию или метод обзови, а в срр определяй ее. Зачем плодить сущности? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 19 февраля, 2020 Опубликовано 19 февраля, 2020 · Жалоба 8 minutes ago, DASM said: Зачем плодить сущности? Не так уж и быстро всё компилируется. У меня проект для микроконтроллера полностью компилируется примерно минуту. А если писать код в хидерах, то как компилировать только один файл? Он же за собой остальные заголовончики (компилируемые) потянет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 19 февраля, 2020 Опубликовано 19 февраля, 2020 · Жалоба 8 minutes ago, haker_fox said: Не так уж и быстро всё компилируется. У меня проект для микроконтроллера полностью компилируется примерно минуту. А если писать код в хидерах, то как компилировать только один файл? Он же за собой остальные заголовончики (компилируемые) потянет. В реализации языка нынешней да, потянет. На с 32 потоками это быстро, линковка да - параллелится никак, но ей и хидеры не в помощь. И главное, проекты на шарпе собираются куда быстрее.. загадка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 19 февраля, 2020 Опубликовано 19 февраля, 2020 · Жалоба 9 minutes ago, DASM said: На с 32 потоками это быстро, Богато живёте) У меня вот четыре ядра, следовательно иар компилит одновременно четыре исходника. А всего их около 50...((( 9 minutes ago, DASM said: И главное, проекты на шарпе собираются куда быстрее.. Про это ничего не знаю, но полагаю, либо там особо копилятор не изощряется, либо очень много сделано в виртуалке, на которой код исполняется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 19 февраля, 2020 Опубликовано 19 февраля, 2020 · Жалоба В Си-диез, типа, байт-код на выходе. Его Нет.фреймворк интерпретирует при исполнении. По поводу заголовков, согласен, выглядит странным запихивание определений функций, шаблонов в hpp. Ничего, потерпите, скоро модули придумают, и вся мировая общественность аж содрогнется от умиления... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 19 февраля, 2020 Опубликовано 19 февраля, 2020 · Жалоба 6 minutes ago, ViKo said: аж содрогнется от умиления... так же как и от языка "D" и от ИИ вместо программеров, от полетов на Марс, термоядерного пром. реактора, доступных Amoled мониторов , лекарства от всего, .... короче я слишком стар верить в эти сказки )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 19 февраля, 2020 Опубликовано 19 февраля, 2020 · Жалоба 1 час назад, haker_fox сказал: Не так уж и быстро всё компилируется. У меня проект для микроконтроллера полностью компилируется примерно минуту. А если писать код в хидерах, то как компилировать только один файл? Он же за собой остальные заголовончики (компилируемые) потянет. Так не надо все .h включать во всё сразу. И не будет "тянуть". По уму .h-файлы нужно включать только туда, куда нужно. И минута - это как-то сильно много? Вы или линух каждый раз перекомпилируете или у вас комп 20-летней несвежести. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 19 февраля, 2020 Опубликовано 19 февраля, 2020 · Жалоба 2 minutes ago, jcxz said: у вас комп 20-летней несвежести. Да, несвежий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 19 февраля, 2020 Опубликовано 19 февраля, 2020 · Жалоба 12 минут назад, haker_fox сказал: Да, несвежий. Тогда Вы какие-то сказки рассказываете. Только что для теста перекомпилил свой проект: 186 файлов (только файлы .c/.asm/.h) объёмом 3 МБ время компиляции =31 сек. На стареньком i3-3220. Это при полной перекомпиляции всех файлов всего проекта. IAR 7.80.4 PS: Хех! - заметил, что в настройках IAR стояло "использовать 2 ядра из доступных 4-х". Исправил на "использовать все 4" - время уменьшилось до 25 сек. PPS: Подозреваю, что если отключить генерацию листингов (которая у меня всегда вкл.) да перенести проект на виртуальный диск, да поставить IAR на SSD, то время ещё уменьшится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться