Перейти к содержанию

    

AlexandrY

Модераторы
  • Публикаций

    6 456
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о AlexandrY

  • Звание
    Ally

Контакты

  • Сайт
    http://geektimes.com/users/indemsys/posts/
  • ICQ
    0

Посетители профиля

43 268 просмотров профиля
  1. Кто не знает, напомню, cmake - это мета-построитель. Кроме него нужно сразу указать непосредственно построитель или несколько построителей. Как вариант - make, autotools, Eclipse, VS и т.д. Так вот эти построители бывают медленные и быстрые. Ninja - самый быстрый. Кроме того нужно проверить есть ли у cmake необходимый для проекта какой-то особенный генератор (выполнить cmake --help ) Может оказаться что генератора то и нет. Скажем cmake мне совсем не поможет если надо собрать проект под IAR или Keil. Т.е. есть довольно жесткая сегрегация на коммерческие и опенсорсные инструменты.
  2. Если это некий прикол и блок действительно состоит из одного гасящего конденсатора, то все логично. Конденсатор нужно выбирать металлопленочный с установкой на радиатор.
  3. cmake + ninja Стоит посмотреть хотя потому что построение на порядок ускоряется. Т.е. можно ожидать, что ninja в 10 раз быстрее соберет чем скажет такая визуальная IDE как Visual Studio.
  4. Это типичный код в стиле C В стиле C++ будет так: // LED1 = P1.18 LED2 = P1.20 LED3 = P1.21 LED4 = P1.23 #define LED_MASK 0x00B40000 PortOut ledport(Port1, LED_MASK); int main(void) { while (1) { ledport = LED_MASK; wait(1); ledport = 0; wait(1); } } class PortOut { public: PortOut(PortName port, int mask = 0xFFFFFFFF) { core_util_critical_section_enter(); port_init(&_port, port, mask, PIN_OUTPUT); core_util_critical_section_exit(); } void write(int value) { port_write(&_port, value); } int read(void) { return port_read(&_port); } PortOut&operator=(int value) { write(value); return *this; } PortOut&operator=(PortOut& rhs) { write(rhs.read()); return *this; } operator int(void) { return read(); } private: port_t _port; }; И не забываем про критические секции. Не все в стиле суперлуп программируют.
  5. Размышления на тему TCP/IP.

    Логично подумайте. Как можно делать сеть не подразумевая протоколов, и как можно делать протоколы не подразумевая интерфейсы. Просто лениво перечислять. Тогда называем самый важный.
  6. Home assistant

    А что-то должны значить ваши восторги по поводу неизвестно чего? Могли бы и внятней свои мысли излагать. Приложение работающее в броузере не плюс, а минус. Такое приложение никто не проверяет на взлом, на спам, на рекламу, на кликинг и проч. нечисть. Да еще надо ждать пока сам броузер откроется, да еще следить за совместимостью с броузером. При этом на рынке куча нативных приложений из googleplay. Скажем Samsung SmartThings. Гораздо круче чем Home Assistant. Дает управлять не только со смартфонов, но и с часов. Имеет свои облака. И никаких малин не надо. Управляется голосом. Поддерживает море известных устройств, естественно все телики Samsung на нативном уровне. Home Assistant такой ассортимент и не снился. Имеет развитое API. Отличная документация. И ваш Ecobee, первое что сделал - это прилепился к SmartThings.
  7. Home assistant

    Мда, проект весь на Pythone , поддерживает тучу никому неизвестных дивайсов и имеет очень примитивный UI? От чего должно дух захватывать? Единственное что оттуда можно почерпнуть - это ссылку на репозитарий огромного числа иконок - https://materialdesignicons.com/ За это спасибо.
  8. Компилятор не размещает. Размещает линкер. Где будут, а где не будут работать атомарные операции даже в даташитах на микроконтроллеры не найдете. На самом деле я не собирался тут воевать со стандартом. Я его не читал и не планирую читать. И не стоит нагнетать вроде назовите "общие случаи когда нужно нарушать стандарт". Мысль была о нарушении неких правил безопасности. Тут даже доля метафоричности есть. Вы легко можете посмотреть в свой код и все это увидеть если вы пишете не под MISRA
  9. В стандарте много чего можно понаписать. А посмотрев поглубже обнаружишь необходимость ретаргетинга. Т.е. вы сами и должны реализовывать фишки этого стандарта. В курсе что атомарность в ARM-ах не на всех областях памяти работает? Впрочем это тут тоже обсуждалось.
  10. На марсоходе с VxWorks часто происходили зависоны. Оказалось не ставили мьютексы предполагая что запись в простую переменную атомарная. Я тож люблю полагаться на знание об атомарности или изолированности доступа к переменным. Поскольку синхронизация дорогой процесс. Первый раз слышу. В IAR не наблюдается зависимости времени компиляции от опции оптимизации.
  11. Размышления на тему TCP/IP.

    Только покажите здесь следы потока. Эт че, теперь любую функцию потоком называют?
  12. Размышления на тему TCP/IP.

    Не надо так старательно передергивать. TCP стек в Wiznet для вас закрыт и ничего отладить там не можете. W5500 не поддерживает 80 mbit. Повеселило их традиционное "Not support IP Fragmentation" Эт вам еще предстоит куда нибудь тыркнутся со свом Wiznet, а он там не будет работать ни в какую. Не думайте что вы здесь такой Колумб. Wiznet тут обсасывался еще 10 лет назад. Сам на нем обжегся.
  13. Размышления на тему TCP/IP.

    80 там поддерживает только 100 ногий жрущий монстр W5300. Но набор протоколов у него никакой. IPv6 даже нет. Идет с голым Socket API для bareboard. Делайте выводы. И еще. Единственная заявленная совместимость с известными проектами у Wiznet есть только с mbed. Но там mbed целиком располагается в их чипах W7500 с Cortex-M0. Т.е. по честному разгрузить сторонний TCP стек с помощью Wiznet так просто не выйдет. Это не считая невозможности отладки всего что ниже TCP. Короче как был этот Wiznet довольно нишевым продуктом таким и остался.
  14. Размышления на тему TCP/IP.

    Вот в том месте где Wiznet подключается к контроллеру и будет слабое звено.