Безкоштовна технічна бібліотека ЕНЦИКЛОПЕДІЯ РАДІОЕЛЕКТРОНІКИ ТА ЕЛЕКТРОТЕХНІКИ Як перевірити НЕХ-файл. Енциклопедія радіоелектроніки та електротехніки Енциклопедія радіоелектроніки та електротехніки / Мікроконтролери Багато радіоаматорів, намагаючись з журнальної публікації повторити той чи інший пристрій на мікроконтролері, нерідко стикаються з незрозумілими на перший погляд труднощами. Здавалося б, і справність мікроконтролера сумнівів не викликає, і програматор у повному порядку, і пристрій зібрано точно за схемою, але працювати, як слід, відмовляється. У такій ситуації нерідкі нарікання на адресу автора розробки – представив, мовляв, непрацездатну програму! Насправді в переважній більшості випадків все інакше. Винні помилки, допущені під час ручного введення в комп'ютер НЕХ-файлу програми з його "роздруківки" на сторінках друкованого видання. Значно рідше бувають збої під час копіювання файлів з дискет або "завантаження" їх з Інтернету. Як перевірити НЕХ-файл? Відповідь на це питання - у статті, що публікується. Будь-яка, найнешкідливіша, на перший погляд, друкарська помилка в НЕХ-файлі веде до виконання мікроконтролером (МК) неправильної команди, нерідко повністю спотворює заданий алгоритм його роботи і здатна привести до абсолютно непередбачуваної поведінки виготовленого пристрою. Жоден кваліфікований фахівець у цій ситуації не зможе за зовнішніми ознаками точно вказати місце помилки. Залишається дуже ретельно і багаторазово звіряти НЕХ-файл із оригіналом. Особливість нашої психіки в тому, що, перевіривши будь-що, ми підсвідомо переконані у своїй непогрішності і при повторних перевірках нерідко пропускаємо те, чого не помітили вперше. Тому корисно мати помічника, який навіть не вникаючи в суть роботи, здійснить "незалежний контроль". У жодному разі не слід залишати без перевірки тексти програм, лічені сканером з подальшим розпізнаванням за допомогою програми FineReader та подібних до неї. Практика показує, що помилки розпізнавання символів неминучі навіть за дуже високої якості друкованого тексту. При введенні НЕХ-файлів вручну (з клавіатури) або їх електронних версій, отриманих скануванням, найчастіше трапляється таке:
Найнешкідливіший із цих дефектів - останній. На відміну від інших, він не позначається на працездатності програми. Те саме в більшості випадків можна сказати і про порушення порядку прямування рядків. Однак програматори, в яких передбачений строгий контроль правильності даних, що вводяться, можуть файл з такими помилками все-таки забракувати. Потрібно сказати, що контроль правильності структури HEX-файлу в процесі його читання з диска виконує програмне забезпечення багатьох програматорів. Певні можливості для цього закладені в самій структурі такого файлу, про яку можна прочитати, наприклад, у статті автора "Розробка та налагодження пристроїв на МК" ("Радіо", 2001 № 5, с. 19). Погано те, що програматор часто повідомляє лише факт виявлення помилки без будь-яких подробиць, надаючи користувачеві розбиратися самому. При цьому дефектний файл нерідко виявляється повністю або частково завантаженим у програматор і якщо необережно подати команду "Програмування", помилкові дані будуть перенесені в пам'ять МК. Після цього буде успішно виконана верифікація (звіряння вмісту пам'яті МК та програматора) і у користувача створиться враження, що все гаразд. У цьому відношенні дуже небезпечно поводиться програма РоnуРrоg (версії 2.05 і раніше). Крім HEX, тут передбачено кілька інших форматів вхідних файлів, і під час завантаження вона намагається самостійно вибрати потрібний. Не розпізнавши правильно формат файлу з помилками, вона таки вводить його як двійковий. На рис. 1 показаний вигляд вікна програматора РоnуРrоg після такого введення. У пам'яті знаходяться не машинні коди команд, а ASCI-коди букв та цифр, з яких складається текстовий НЕХ-файл. Природно, за такою "програмою" МК не працюватиме. Вигляд того ж таки вікна після введення ідентичного першому безпомилкового файлу представлений на рис. 2. Зауважимо, що жодних повідомлень про помилки або про автоматично визначений формат файлу програматор в обох випадках не давав. Допомогти знайти та виправити помилки в НЕХ-файлі до введення його в програматор зможе програма CheckHEX. З її допомогою можна створити новий НЕХ-файл, набравши його вміст на клавіатурі комп'ютера. В останньому випадку перевірка відбувається одночасно із введенням даних. Вікно даних програми CheckHEX після введення файлу НЕХ, що містить кілька помилок, зображено на рис. 3. У верхній частині ліворуч виведено поточні координати курсору, що показує, куди буде введено символ при натисканні клавіші. Справа є віконце, клацнувши по якому "мишею", можна будь-якої миті скасувати або знову дозволити перевірку помилок. Заблокувати контроль буває корисно на час ручного введення даних, інакше кожен незавершений рядок супроводжує безліч повідомлень, що тільки відволікають. Вікно попереджень та повідомлень про помилки (рис. 4) знаходиться нижче за основне. Повідомлення, що починаються словом "Інформація", лише свідчать про особливий статус тих чи інших рядків НЕХ-файлу. У цьому випадку таких рядків два. Перша з них необов'язкова, так як і за її відсутності відлік адрес почнеться з нуля. Подібні рядки (їх може бути кілька у різних місцях файлу) дозволяють адресувати більше 64 Кбайт (32 Кслов) пам'яті. Саме їхня присутність відрізняє НЕХ-файли формату INX32 від аналогічних формату INX8M. Рядок 25 є ознакою кінця НЕХ-файлу. Якщо якісь дані перебувають після неї (рядок 26), вони сприймуть програматором. Цим можна скористатися, наприклад, щоб помістити текстовий коментар у НЕХ-файл. У прикладі сюди був просто переміщений рядок 20 вихідного файлу, що залишився порожнім. В принципі, наявність порожніх рядків у НЕХ-фаїлі припустима, але деякі програматори все-таки можуть вважати їх помилками. Програма CheckHEX, про всяк випадок, попереджає про це. Зверніть увагу на повідомлення про помилку контрольної суми у рядку 3. Вона може бути результатом неправильного введення будь-якого (крім двокрапки) символу рядка, який слід перевірити особливо уважно. Наведена в дужках "правильна" контрольна сума корисна, якщо один або кілька символів рядка змінені навмисно (наприклад, щоб виправити помилку в програмі, що дійсно мала місце). У цьому випадку помилка - результат введення цифри 8 замість літери У. Характер помилки, допущеної п'ятому символі четвертого рядка, зрозумілий. Зауважимо лише, що для полегшення візуального пошуку помилок шрифт тексту в основному вікні не містить символів кирилиці, їхнє місце займають символи, які не мають нічого спільного з правильними. Однак у повідомленнях про помилки російські букви представлені. Праворуч від вікна даних розташоване вікно, що відображає картину заповнення пам'яті МК кодами аналізованого файлу. Фрагмент цього вікна – на рис. 5. Білий колір відповідає вільним осередкам, синій чи червоний – зайнятим. Існуючі на малюнку пояснювальні написи (у цьому вікні їх немає) ставляться до типовому для РИС-контролеров розподілу пам'яті, іншим МК і РПЗУ може бути зовсім іншим. Переміщуючи курсор "миші" всередині вікна, можна визначити адресу будь-якого з відображених там осередків. В даному випадку курсор (перехрестя у правій верхній частині вікна) вказує на байт за адресою ООСОН – молодший у двобайтному слові за адресою 0060Н. Звичайно, користувач, який не розробляв програму, що завантажується, і уважно не аналізував її, як правило, не знає, які осередки повинні бути зайняті, а які - ні. Проте є сенс звернути увагу на розриви в суцільній послідовності зайнятих осередків і вкотре переконатися, що вони з'явилися не внаслідок помилок, як у цьому випадку. Відрізок червоного кольору говорить про те, що коди, що заносяться на ці адреси, зустрілися у файлі неодноразово. У прикладі (див. рис. 3) ідентичні сьомий і восьмий рядки. Якщо рядок, що дублює, - результат неуважності при ручному введенні даних, її можна видалити. Але найчастіше винна помилка, допущена в адресній частині рядка (символи з четвертого до сьомого). У такому разі не тільки коди за помилковими адресами будуть спотворені, але й залишиться невизначеною область пам'яті, до якої цей рядок ставився початково. Все це потрібно ще й ще раз перевірити. На закінчення відзначимо, що у вікні програми CheckHEX є три кнопки, що управляють: - Створити новий НЕХ-фаїл; - відкрити та перевірити існуючий; - Зберегти створений або відредагований файл. При спробі завантажити або створити інший файл, попередньо не зберігши змінений варіант старого, програма завжди нагадує необхідність це зробити. Те саме відбувається перед завершенням роботи програми. Автор: А.Довгий, м.Москва Дивіться інші статті розділу Мікроконтролери. Читайте та пишіть корисні коментарі до цієї статті. Останні новини науки та техніки, новинки електроніки: Запрацювала найвища у світі астрономічна обсерваторія
04.05.2024 Управління об'єктами за допомогою повітряних потоків
04.05.2024 Породисті собаки хворіють не частіше, ніж безпородні
03.05.2024
Інші цікаві новини: ▪ Одержання діамантів з арахісової олії ▪ На орбіту запустять супутник-ремонтник ▪ Високовольтний генератор у космосі ▪ Одноплатний ПК Inforce 6309L ▪ Літаюче крило для зйомки Марса Стрічка новин науки та техніки, новинок електроніки
Цікаві матеріали Безкоштовної технічної бібліотеки: ▪ розділ сайту Шпигунські штучки. Добірка статей ▪ стаття Апарат для асів (пілотаж stedicam) Мистецтво відео ▪ стаття Дробильник. Типова інструкція з охорони праці ▪ стаття Вороніння заліза та сталі. Прості рецепти та поради
Залишіть свій коментар до цієї статті: All languages of this page Головна сторінка | Бібліотека | Статті | Карта сайту | Відгуки про сайт www.diagram.com.ua |