May 16

Официално: Arduino/Genuino MKR1000 вече е на пазара!

Почти половин година, след официалното му обявяване, Arduino/Genuino MKR1000 вече се продава официално. Очаквам този продукт да се появи скоро и в България.

Continue reading

May 14

Комбиниране на Struct и Volatile в C/C++

Покрай един проект с Ардуино възникнаха няколко въпроса:

  1. Volatile ли са елементите на дадена структура, ако самата тя е декларирана като Volatile?
  2. Може ли в структура да има както обикновени елементи, така и Volatile елементи?
  3. Как се дефинира указател към Volatile структура, която не е маркирана като Volatile в нейната дефиниция?

Continue reading

May 14

Служебната дума Volatile в C/C++

Компилаторите имат редица опции, влияещи върху оптимизацията на кода. Включвайки една или повече от тях, Вие разрешавате на Компилатора да прави “подобрения” на вашата програма, при превеждането й на Асемблер/машинен код. Обикновено оптимизациите не са проблем, но започват да създават главоболия при многонишковите приложения (Multithreading), Interrupt Service Routines (ISR), работа на ниско ниво с регистри на крайни устройства  и т.н.

Главният симптом е: програмата Ви работи добре, докато не включите оптимизациите. След това започват да се случват “странни неща”.

Continue reading

May 05

EventID 4199: The system detected an address conflict for IP address 0.0.0.0

Имате следната ситуация:

  1. VMWare ESX/ESXi;
  2. Виртуални машини с ОС Windows Server 2008/2012/2012R2;
  3. Операционните системи са конфигурирани със статични IP адреси;
  4. Cisco маршрутизатори;
  5. През “произволен” интервал от време губите връзка с някои от сървърите;
  6. В System лога присъства съобщение 4199 с текст “The system detected an address conflict for IP address 0.0.0.0”
  7. В изхода от ipconfig виждате:
    1. Статичния IP адрес е маркиран като Duplicate
    2. ОС автоматично е добавила втори IP адрес 169.x.y.z (APIPA), който е обозначен като Preferred.

Continue reading