-
Постов
4 036 -
Зарегистрирован
-
Посещение
-
Победитель дней
3
AHTOXA стал победителем дня 18 января
AHTOXA имел наиболее популярный контент!
Репутация
15 ХорошийИнформация о AHTOXA
-
Звание
фанат дивана
- День рождения 04.09.1970
Информация
-
Город
Array
-
Плавный переход C -> C++ под МК
AHTOXA ответил Arlleex тема в Программирование
Нет, это их нестандартное языковое расширение. Чтобы с delphi-кодом взаимодействовать. Я в последнее время не люблю неявных вещей. Пишешь obj.length=0, вроде бы простое присвоение. А оказывается, что там под капотом куча побочных действий происходит. Лучше уж obj.setLength(0). Не особо длиннее, но зато явно видно вызов функции. -
Плавный переход C -> C++ под МК
AHTOXA ответил Arlleex тема в Программирование
А почему это должно стать очевидным? Для std::shared_ptr, например, тоже есть обширная документация, без чтения которой его сложно использовать правильно. И это нормально, на мой взгляд. -
Плавный переход C -> C++ под МК
AHTOXA ответил Arlleex тема в Программирование
Насколько я понял, это заголовочный файл от System.DynamicArray (из RAD Studio, который давным-давно был C++ Builder). Это очень навороченный тип, с подсчётом ссылок, итераторами, свойствами (нестандартное расширение языка, емнимс), и прочим подобным. Понятное дело, что выглядит мощно 🙂 Кучу конструкторов с разным числом параметров можно выкинуть, оставив только ветку для c++11. И так далее. -
Плавный переход C -> C++ под МК
AHTOXA ответил Arlleex тема в Программирование
Можно crc засунуть в Header, раз уж он у всех пакетов есть. Насколько я понимаю, и N будет там же, в Header. А в конце будет byte[maxLen]. Ну а почему бы и не написать, если небольшой? 🙂 -
Старший инженер-схемотехник
AHTOXA ответил Kukinaa тема в Предлагаю работу
Это по-каковски? Если с английского, то яндыкс-переводчик пишет agile[ˈæʤaɪl]прил -
О, оказывается всё ещё сложнее: отображение зависит от темы. В моей теме (Electronix Neoclassic (по умолчанию)) - сейчас не видно ни уровня, ни звания. А если я включаю тему "Electronix Classic 4.5.2", то видно уровень (над аватаркой), причём мой уровень по-прежнему "фанат дивана" 🙂 А отображение звания, как я понимаю, сейчас уже отключили.
-
Заработало частично. Поменял звание на "труженик села" - сбоку от моих сообщений поменялось, в профиле осталось старое. Очистил (ввёл пустую строку) - перестало отображаться "Звание: xxx" около сообщений. Остался я вообще без звания. Но, что интересно, в профиле осталось старое ("фанат дивана"). А при наведении на него мышкой всплывает подсказка "Гуру 6/6". В принципе, я доволен, мне главное хотелось убрать "фанат дивана" 🙂
-
А как поменять "звание"?
AHTOXA опубликовал тема в Замечания и предложения по новому форуму
Раньше как-то можно было, начиная с определённого уровня. Я поменял на "фанат дивана". Сейчас вот подумал, что я уже не такой фанат дивана, как раньше, хотел поменять на что-то более актуальное, и не нашёл где. Это я плохо искал, или убрали такую возможность? -
Портирование проекта (IAR-STM32IDE)
AHTOXA ответил addi II тема в Программирование
На VL (value line) отдельный RM, RM041. Это сильно урезанные контроллеры, без USB, и с частотой до 24МГц (пишу по памяти) Это STM32F10X_MD. -
Я судил по изменениям в inline-ассемблере IAR-а. Сейчас он выглядит вот так: __attribute__((__always_inline__)) inline void set_interrupt_state(status_reg_t status) { asm volatile ( "MSR PRIMASK, %0\n" : : "r"(status) :"memory" ); } Ну то есть один-в-один gcc. Этож-ж-ж неспроста? 🙂 Короче, мысль моя вот в чём: в 90% случаев должно хватить простого reg; или, для большей понятности (void)reg; Но на всякий случай лучше проверить дизассемблер.
-
Жуть какая! 🙂 Интересно, с 2010 года хоть какие-то из компиляторов, которые отбрасывают чтение volatile-переменной поменяли своё мнение? (Подозреваю, что IAR поменял, он же теперь вроде бы на LLVM сделан).
-
microSD, скорость чтения упала
AHTOXA ответил Freibier тема в В помощь начинающему
Я думаю, это изменение скорости (минус 100Кб/с). -
Плавный переход C -> C++ под МК
AHTOXA ответил Arlleex тема в Программирование
Это стили кодирования пишут для групп программистов. Когда в одном проекте несколько человек. Когда пишешь один - вообще пофиг как именуешь и форматируешь. Главное чтоб тебе самому было понятно. Но даже для себя одного полезно сформулировать эти правила, чтобы потом их придерживаться. Это поможет потом поддерживать проект, когда нужно будет вернуться к нему через год-другой. Из этого тоже можно извлечь пользу: сразу видно, что идёт вызов библиотечного кода 🙂 -
Плавный переход C -> C++ под МК
AHTOXA ответил Arlleex тема в Программирование
Ну да, блоком. Или вынести этот кусок в inline-функцию. -
Плавный переход C -> C++ под МК
AHTOXA ответил Arlleex тема в Программирование
А они редакторе подсвечиваются по-разному. (Я использую Eclipse для embedded-проектов, QtCreator для ПК-проектов). Префиксы мне не нравятся. Нет гарантий, что префикс соответствует реальному типу. Сменил тип - забыл про префикс. Гораздо надёжнее не полагаться на префиксы, а использовать возможности современных IDE. Навёл мышку на название типа - получил всплывающую подсказку с кусочком объявления. Если там doxigen- комментарий перед типом, то и он отобразится. Единственное место, где я оставил префиксы - это переменные-члены класса. Они у меня называются m_var; Если интересно, вот рекомендации по кодированию одного из моих старых проектов. Вот, кстати, идеальное место для применения RAII. Создаётся тип CriticalSection, в конструкторе вызываются cpu_alloc_critical_section_context(csc) и cpu_entry_critical_section(csc), а в деструкторе - cpu_leave_critical_section(csc). Тогда функция будет выглядеть так: inline void init() { CriticalSection cs(csc); SPI3->CR1 = SPI_CR1_PRESET_VAL; SPI3->CR2 = SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN; SPI3->SR = 0x0; SPI3->CRCPR = 0x0; SPI3->I2SCFGR = 0x0; SPI3->I2SPR = 0x0; __DSB(); } Это немного короче, но главное - нет шанса забыть освободить критическую секцию. Даже если где-то посреди функции сделать return;