December 5th, 2011

Жалкий

Д.Медведев отметил, что "Единая Россия" партия по сути представляет 50% нашего населения. То, что она не получает конституционного большинства, он назвал результатом реальной демократии в действии. "Это еще один урок избирательного цикла. Нам еще рано подводить итоги но в любом случае я считаю что та динамика которую мы набрали должна быть сохранена".

А динамика такая, что ЕР набирает с каждым разом всё меньше голосов. Молодец, дурачок, сказал как отрезал.

Таинственное

Дано:
1) микроконтроллер AT90CAN128
2) компилятор AVR GCC какой-то там из свежих.
3) код, выглядящий примерно так:
for (pid = pid.first; !pid.last; pid = pid.next)
{
  variable = get_some_data_from_peripheral(&pid);
  console_report(variable);
}


Всё прекрасно работает, причём уже давно и в разных устройствах.
Настал момент, когда пришлось взять старый дивайс (даже два) и заставить их делать то, к чему они не предполагались. Но, в общем, всё то же самое по сути. Теперь код выглядит так:
for (pid = pid.first; !pid.last; pid = pid.next)
{
  variable = get_some_data_from_peripheral(&pid);
  console_report(variable);
  CAN_transmit(TAG, variable);
}


Так вот, из-за добавления вызова функции, передающей по CAN значение интересующей меня переменной, (внимание!) вызов variable = get_some_data_from_peripheral(&pid); перестаёт возвращать корректные величины и начинает возвращать ахинею. И это не какой-нибудь там срыв стека - памяти ещё навалом, почти полтора килобайта. Мало того, если я делаю костыль типа:
for (pid = pid.first, id=0; !pid.last; pid = pid.next)
{
  variable[id] = get_some_data_from_peripheral(&pid);
  console_report(variable[id]);
  last_id = ++id;
}
/* bla-bla-bla */
for (id = 0; id != last_id; id++)
{
  CAN_transmit(TAG, variable);
}

то всё работает (разумеется, из-за этого приходится создавать массив variable[] с размером, точно заранее неизвестным (но можно прикинуть максимальную величину).

Это вообще КАК?! Каким образом вызов, осуществляемый сильно после, может влиять на вызов задолго до? Я бы ещё понял, если бы какая-то многопоточность-параллельность была, но это же строго однопоточная программа без ничего!

(no subject)

посылаю луч сверхзвукового поноса тому, из-за кого у меня не работает тытруба
  • Current Music
    Front Line Assembly - Hostage

Front Line Assembly - Improvised Electronic Device

Альбом 2010 года - т.е. на текущий момент самый новый. FLA держит марку, вещь Hostage - если не лучший, то весьма достойный образец стиля, вполне в духе Liquid Separation. В целом звучание стало ещё жёстче, мрачнее и основательнее, словно удар кувалдой по пустой цистерне.

В работе принял участие Al Jourgenson из Ministry (его слышно на треке Stupidity).

FLA - Shifting Through the Lens


P.S. сегодня видел, как мне показалось, летящего жука. Декабрь наступает, зима неизбежна.