AVReAl update — 1.28r7
Вийшла нова версія програматора avreal – v1.28r7 (Sun 2011-02-27).
- Виправлено помилку обробки ключа -v+.
. .. ..o .oO .oO failed
Вийшла нова версія програматора avreal – v1.28r7 (Sun 2011-02-27).
В avreal версій з 1.28r2 по 1.28r6 є помилка в обробці ключа -v+, тобто ключа -v з модифікатором +.
Помилково виконується перевірка на чистоту всього обсягу пам’яті мікроконтролера, а не лише адрес, не зайнятих вмістом hex-файлу. В результаті після першої ж верифікації робота припиняється і подальші операції, наприклад, запис fuses, не виконуютьcя.
Ключ -v без модифікатора працює нормально, тому рекомендується використовувати його.
Помилка не критична, буде виправлена в черговій версії avreal.
Чесно кажучи, я вже і не пам’ятаю з яких міркувань в avreal було додано можливість перевірки на 0xFF не задіяних у вхідному HEX-файлі позицій. Чи хтось колись просив зробити, чи мені самому раптом захотілося. Зараз от думаю, що особливої потреби в цьому і нема — при записові після стирання вони і так мали б бути стерті, а якщо дуже хочеться, можна ключ -b додати. При дозаписові якихось таблиць без стирання нема сенсу перевіряти на чистоту, бо в незайнятих цим HEX-файлом позиціях розміщено основний код.
А місце для внесення помилок додалося. Кажуть же, що «простота — запорука здоров’я» ![]()
Може, пізніше я цей модифікатор приберу зовсім.
Вийшла нова версія програматора avreal – v1.28r6 (Sun 2011-01-09).
ATmega165A, ATmega645A, ATmega6450A
ATmega169A, ATmega329PA, ATmega649A, ATmega6490A
avreal нормально працював під 64-бітними версіями Windows і раніше. Хто знав, що і як треба робити — ставив собі потрібний драйвер і програмував AVR-ки. Я вже досить давно практично постійно працюю під лінуксом, тому мене ця тема мало цікавила. А час, то є річ ще дивніша, ніж мед у Вінні-Пуха. Як тільки він є — так його відразу нема.
Нарешті я знайшов час і місце2 для того, щоб власноруч перевірити встановлення та роботу звичного для Windows 2000 та Windows XP драйвера DLPortIO під 32-бітною Windows7 та замінника цього драйвера для WindowsXP/64 та Windows7/64. Без цього мені просто важко було б викладати щось у себе на сайті. Програма dd попрацювала як слід, відновлюючи розділи з образів для чергових перевірок встановлення на «чисту» систему тим чи іншим (в тому числі правильним чи неправильним) способом.
В результаті вчора я виклав на сторінці download архіви для двох методів інсталяції DLPortIO-32 (графічний інтерфейс та командний рядок) та архів з DLPortIO-64 (командний рядок). Вже можна викачувати, ставити і працювати.
А я найближчим часом напишу про все це трохи детальніше.
місце2 — це не зноска, це піднесення до другого степеня. Треба було знайти і місце в сенсі комп’ютера, над яким так позбиткуватися, і місце на його жорсткому диску.
Вийшла нова версія програматора avreal – v1.28r5 (Tue 2010-10-12).
Вийшла нова версія програматора avreal – v1.28r4 (Tue 2010-09-07).
На жаль, не знайшлося часу виправити помилку втрати синхронізації, це вже після відпустки робитиму.
Виявилася доволі дивна помилка в avreal 1.28r2 та 1.28r3. При співпадінні умов
для деяких мікроконтроллерів після першої операції верифікації робота обривається на помилці synchronosation lost.
Вийшла нова версія програматора avreal – v1.28r3 (Mon 2010-08-16).
Ще одна група запитань, що доволі часто зустрічаються в логах, це запитання про відмінності нових «А-версій» мікроконтроллерів AVR від їх попередників. Шукають «в чому різниця між atmega48p та atmega48pa», «різниця програмування atmega8a та atmega8», або взагалі «перехід з atmega16 на atmega16A».
Вираз «програмування мікроконтроллера» може мати різні значення і лише іноді запитання поставлено хай з використанням сленгу, але однозначно — «прошивка atmega32 та atmega32A».
Continue reading ‘Чим відрізняється ATtiny2313A від ATtiny2313?’ »
Під ОС Windows avreal іноді нестабільно працює з LPT. Програмування зрідка може пройти нормально, а може в будь який момент дати збій, наприклад, synchronisation lost.
Причиною таких збоїв може бути періодичне опитування підсистемою Plug-and-Play (PnP) операційної системи Windows порта LPT з метою виявлення підключених пристроїв. Таке опитування проводиться під час завантаження системи, що добре видно по перемигуванню світлодіодів на адаптері програмування, але воно може відбуватися і під час роботи ОС. Біда в тому, що драйвер DLportIO.sys не блокує доступ до LPT від інших програм під час роботи з портом клієнта цього драйвера і підсистема PnP щиро впевнена, що порт не зайнято, тому спокійно лізе перевіряти стан LPT і порушує роботу avreal.
В одному особливо «цікавому» випадку у мене програма стабільно встигала записатися в мікроконтроллер, видати привітання на рідкокристалічний індикатор на HD44780 і почати працювати, але далі в довільні моменти часу перезапускалася. Я пару годин шукав помилку у себе в програмі — непроініціалізований вказівник на функцію чи необроблене преривання, доки не помітив, що перезапуску програми передує перемигування світлодіода активності на адаптері Altera ByteBlaster. Windows при звертанні до порта видавала таку послідовність, яка активувала виходи адаптера, видавала імпульс RESET і знову вимикала адаптер. І в цьому випадку не допомогло б наіть блокування LPT драйвером на час роботи програми, адже avreal в цей час вже завершив роботу.
Щоб позбавитися спричинених PnP проблeм завантажте файл disable-lpt-poll.reg та запустіть його на виконання. Як видно з вмісту файлу, він прописує в реєстрі Windows ключ, який забороняє опитування (poll) під час роботи системи:
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parport\Parameters]
“DisableWarmPoll”=dword:00000001