maeglor: (Default)
[personal profile] maeglor
... точнее непроинициализировал переменную. Два дня работы на находнение источника "плавающей" ошибки. Можно сказать коту под хвост.

Date: 2009-08-31 08:40 pm (UTC)
From: [identity profile] corviniol.livejournal.com
Это бывает... Сплошь и рядом.
А я очень долго втыкал в строчку кода вида:

pAT91SAM->pUSART->CNR;

Date: 2009-09-01 08:18 am (UTC)
From: [identity profile] trollenok.livejournal.com
Это же классика, не?

Date: 2009-09-01 10:41 am (UTC)
From: [identity profile] subbotenok.livejournal.com
Ну не совсем... Дело в том, что в большинстве случаев программа в таком варианте работает нормально.

Просто дальше программа при появлении ошибки подлежащей обработке уничтожает эту переменную если ее адрес не NULL. И таки уничтожает ее, поскольку там какойто старый програмный мусор. Т.е. затирает случайный участок оперативной памяти. Даже после этого как правило ничего не происходит. Но иногда начинаются совершенно фантастические вещи...

Date: 2009-09-01 10:43 am (UTC)
From: [identity profile] subbotenok.livejournal.com
А что в ней такого? Ктото извращенно вызывает метод Read() параметра CNR. Зачемто...

Date: 2009-09-01 11:28 am (UTC)
From: [identity profile] corviniol.livejournal.com
Это был язык С. А не С++.
Но вообщем ты угадал - эта операция сбрасывала регистр процессора, который считал переданные по интерфейсу USART байты. Или что-то такое...

March 2017

S M T W T F S
   1234
5678 91011
12131415161718
19202122232425
262728293031 

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 27th, 2026 12:31 am
Powered by Dreamwidth Studios