Archive for the ‘Помилки’ Category.
19 Травня 2013 23:13
Виявлено помилку, через яку не проходить процедура пересинхронізації додатковим імпульсом SCK у наступних умовах:
- програма у мікроконтролері виставляє на ніжці ніжку SCK високий рівень;
- використовується MPSSE-адаптер (FT2232, FT4232H, FT232H).
При роботі через LPT-адаптер синхронізація проходить нормально, після стирання через нього знову можна запрограмувати через USB-адаптер.
Схоже, помилка давня, але в більшості випадків до неї не доходило, бо синхронізація встановлювалася після обов’язкового початкового циклу RESET-синхронізації.
Наче хтось колись на щось подібне жалівся, але я не міг відтворити у себе і не знаходив нічого підозрілого в коді avreal. На цей раз мені знадобилося «підняти» одну стару плату з AT90S8515 і я таки отримав оте «Can’t resync» на USB-адаптері. Спробував за допомогою маленької тестової програми відтворити ситуацію на ATmega168 — все нормально працює і через MPSSE, синхронізується першою RESET-спробою, до SCK-імпульсів справа не доходить. А от AT90S8515 не програмується.
Все необхідне я зробив через ByteBlaster, помилку ловитиму за хвіст найближчим часом.
Помилку виправлено у версії 1.28r13.
15 Лютого 2011 12:44
В avreal версій з 1.28r2 по 1.28r6 є помилка в обробці ключа -v+, тобто ключа -v з модифікатором +.
Помилково виконується перевірка на чистоту всього обсягу пам’яті мікроконтролера, а не лише адрес, не зайнятих вмістом hex-файлу. В результаті після першої ж верифікації робота припиняється і подальші операції, наприклад, запис fuses, не виконуютьcя.
Ключ -v без модифікатора працює нормально, тому рекомендується використовувати його.
Помилка не критична, буде виправлена в черговій версії avreal.
Чесно кажучи, я вже і не пам’ятаю з яких міркувань в avreal було додано можливість перевірки на 0xFF
не задіяних у вхідному HEX-файлі позицій. Чи хтось колись просив зробити, чи мені самому раптом захотілося. Зараз от думаю, що особливої потреби в цьому і нема — при записові після стирання вони і так мали б бути стерті, а якщо дуже хочеться, можна ключ -b додати. При дозаписові якихось таблиць без стирання нема сенсу перевіряти на чистоту, бо в незайнятих цим HEX-файлом позиціях розміщено основний код.
А місце для внесення помилок додалося. Кажуть же, що «простота — запорука здоров’я» 🙂
Може, пізніше я цей модифікатор приберу зовсім.
Помилку виправлено у версії
1.28r7.
9 Грудня 2010 11:54
На початку грудня FTDI зробила нам невеличкий подаруночок — випустила версію 1.0.0 бібліотеки libftd2xx.so (попередня версія була 0.4.16). Щось там, мабуть, дуже сильно покращили, але 64-бітна версія avreal/linux перестала працювати. В чому причина, явні помилки десь, чи «просто неохайний» код, через який вилізли проблеми в avreal, доведеться ще розбиратися. Поки-що я на сторінці download виклав архіви попередньої версії libftd2xx, з якою avreal працює стабільно.
Більше про це тут:
«Подаруночок від FTDI»
29 Серпня 2010 16:04
Виявилася доволі дивна помилка в avreal 1.28r2 та 1.28r3. При співпадінні умов
- Використовується програматор на базі FT2232/FT4232
- Зайняті верхні два байти флеш-пам’яті (кодом або лічильником стирань)
- В одному виклику avreal виконується робота як з флеш пам’яттю, так і з ф’юзами
- Присутній ключ верифікації -v
для деяких мікроконтроллерів після першої операції верифікації робота обривається на помилці synchronosation lost.
Continue reading ‘Помилки в avreal 1.28r2 та 1.28r3’ »
1 Серпня 2010 17:11
avreal не обробляє fuse з Extended Fuse byte для мікроконтроллерів ATmega16M1, ATmega32M1, ATmega64M1, ATmega32C1, ATmega64C1. При зчитуванні показує для всіх нульові значення (начебто прошиті), запис не виконується.
Виправлено в
avreal 1.28rev3
4 Березня 2010 8:43
При використанні ключа -a без хоча б одного з ключів -p чи +chip програма “падає” (“виконала неприпустиму операцію …” і так далі).
Вважаю цю помилку не критичною, бо при правильному використанні в комбінаціях -a -p або -a +chip програма працює нормально, а при неправильному нічого не ламає ні в мікроконтроллері, ні в операційній системі. Нова версія програми для виправлення цієї помилки випускатися не буде, виправлення буде додано пізніше в чергову версію.
Виправлено в
avreal 1.28rev2
4 Лютого 2010 15:55
Для комбінації ключів -n -v не проводиться аналіз зайнятості двох верхніх байтів пам’яті коду заданого мікроконтроллера у вхідному HEX-файлі. В результаті не проводиться верифікація цих байтів, бо вважається, що вони є лічильником зтирань.
Feb 8, 2010
Ні, помилки немає, помилка була при перевірці 🙂
Є лише особливість функціонування.
avreal звіряє всі байти віхдного HEX з flash, просто мовчки ігнорує ключ -n.
14 Вересня 2009 22:14
“це, мабуть, на погоду крутить” – за кілька днів прийшло двоє повідомлень про помилки в avreal версії 1.27r2.
Старіша з них прорилася ще десь між версіями 1.22rev9 та 1.23rev4 – при використанні -o0 та запису без опитування готовності (-w а не -wp) не програмувалися flash та eeprom. Причина була в знятті тактування мікроконтроллера по XTAL1 при програмуванні flash/eeprom. Схоже, всіма користувачами програми -o0 використовувався лише для відновлення потрібних fuses або просто після відновлення окремим викликом avreal кристал вже тактувався від внутрішнього генератора і все було нормально, тому помилку досі не було виявлено.
Також знайдено помилку в описі fuses для at90usb82/at90usb162, при уважному перегляді знайдено схожі помилки для atmega16u2, atmega32u2, atmega328P.
Зараз я ще раз уважно передивляюся опис всіх кристалів і найближчим часом викладу виправлену версію.