Розробка програмного забезпечення Отримання програмного забезпечення для роботи; Вбудовані засоби розробки; Electronicsnet

27 листопада 2012 р., 10:14 | Йоахім Кролл

Перш ніж мікроконтролер оживе, його потрібно забезпечити програмним забезпеченням. Але програмне забезпечення не просто «запускається», воно має розроблятися. Для цього потрібні складні інструменти. На щастя, Infineon не залишається на власний розсуд. Є багато постачальників, які постачають розробників програмного забезпечення "матеріалом" для популярної архітектури.

Для програмування програмного забезпечення для мікроконтролерів потрібні ті ж засоби розробки, що і для програмного забезпечення для ПК: редактор вихідного коду, а також компілятор і компонувальник для перекладу вихідного коду в машиночитані команди. Але на цьому подібність припиняється. Оскільки програмне забезпечення для ПК працює на тій самій системі або принаймні на тій самій архітектурі, на якій воно розроблене (самостійно розроблена розробка).

Це було б неможливо на більшості мікроконтролерів, просто з тієї причини, що немає підключень для клавіатури та екрану, або тому, що недостатньо пам'яті та обчислювальних потужностей, щоб виконати процес компіляції у прийнятний час.

Тому на ПК розробляється програмне забезпечення мікроконтролера, а готовий код передається сторонній архітектурі контролера (перехресний розвиток). Він повинен працювати там, і - як правило, він не працює як будь-який код, який ви намагаєтесь запустити на роботу вперше.

Тоді виникає запитання: Як ви аналізуєте ці помилки і як повідомлення про помилки повертаються на ПК розробника? Наскільки проста ця проблема, вона показує, що для перехресного розвитку потрібно більше кроків розробки та більше інструментів, ніж для самостійної розробки.

Що ще гірше, у світі мікроконтролерів існує барвиста «мультикультура», і про стандартизацію не може бути й мови, як у процесорів x86. З архітектурою ARM з’явився певний де-факто стандарт, але говорити про стандарт тут було б перебільшенням, оскільки, по-перше, існують ARM різних поколінь та основних варіантів (ARM 7/9/11, Cortex -A, -R, -M) і, по-друге, суть мікроконтролера полягає в тому, що периферія інтегрована на мікросхемі.

І тому жоден із десятків тисяч мікроконтролерів на ринку не є однаковим. Тут доречніше говорити про більш розповсюджені та менш розповсюджені архітектури - адже все в мікроконтролерах насправді є власністю.

Всебічне завдання

Мережа інструментів, яка, проте, підтримує всі архітектури Infineon, - це Tasking/Altium. Будь то серія XC800 із своїм ядром 8051, 16-розрядна родина XC2000/C166, ARM або Tricore - Altium пропонує відповідну версію для всіх них. Tasking має своє власне середовище розробки для 8 і 16 біт, тобто XC800 та XC2000/166, яке поєднує всі підінструменти (компілятор, асемблер, компонувальник, крос-налагоджувач) під однією поверхнею.

Під назвою "VX-Tools" існує версія для XC2000/166, ARM та TriCore, яка вписується в рамки Eclipse разом із CDT (C Development Tools). Інструменти завдання можуть працювати разом з DAvE, а також підтримувати, наприклад, перевірку коду відповідно до стандарту MISRA-C, що важливо для автомобільних проектів.

Клин: ціла екосистема

Інструменти від Keil також пропонують широку підтримку архітектур Infineon - за винятком TriCore. Keil також має різні версії засобів розробки для 8, 16 та 32 біт. Як філія ARM та німецька філія ARM, Keil пропонує широку підтримку цієї архітектури.

програмного

Рисунок 1. Комплект розробки мікроконтролера (MDK) доступний у різних версіях для різних архітектур. Версія ARM містить не лише засоби розробки, але й проміжне програмне забезпечення.

За допомогою інструментів Keil інтерфейсом для користувача є середовище розробки µVision з менеджером проектів, редактором та налагоджувачем. Весь ланцюжок інструментів від Keil називається MDK (Microcontroller Development Kit) і включає набагато більше, ніж середовище розробки, включаючи компілятор, асемблер, компонувальник та налагоджувач (Зображення 1).

MDK-ARM може читати в проектах, згенерованих за допомогою DAvE3, але він також містить розширення, які полегшують інженеру розробку недиференційованих функцій продукту: файлова система, стек хостів та пристроїв USB, мережа TCP/IP, інтерфейс CAN та Бібліотеки для малювання користувацьких інтерфейсів включені в повну версію. З RTX існує навіть тонка операційна система в режимі реального часу, яка забезпечує інфраструктуру для багатозадачного програмного забезпечення та постачається у вихідному коді.

З 8- та 16-розрядною архітектурою набір інструментів називається PK51 або PK166, а навколишня програмна екосистема трохи витонченіша, але навіть для 8051 існує ядро ​​RTX. Також забезпечується обмін інформацією про налагодження: за допомогою ULINK2 Keil пропонує адаптер для налагодження, який підключений до USB-порту ПК для розробки та цільової системи через JTAG або через ARM-режими Serial Wire Debug (SWD) ) або послідовний переглядач проводів (SWD). У той же час через цей пристрій програмується флеш-пам'ять цільової системи.

Адаптер налагодження ULINKpro пропонує додаткові функції, які також можуть записувати трасування команд, встановлювати точки зупинки та зчитувати вміст пам'яті. Це дозволяє аналізувати всю послідовність програм.

IAR: універсальний, але лише для двох архітектур Infineon

Іншим дуже універсальним середовищем розробки є IAR Workbench, який, як кажуть, підходить для більшості мікроконтролерів. Однак у випадку з Infineon підтримуються лише архітектури ARM та XC800. Версія 8051 доступна на різних етапах розширення, які відрізняються, наприклад, максимально допустимим розміром коду, підтримкою операційних систем у режимі реального часу та наявністю MISRA-C-Checker. Версія ARM має численні зв’язки з інструментами-партнерами, такими як апаратні налагоджувачі або операційними системами в режимі реального часу.

IAR також пропонує засоби розробки апаратного забезпечення, такі як налагоджувач JTAG J-Link, який стосується функцій внутрішньої налагодження мікросхем компонентів XMC4000, або I-Jet, інструмент для кореляції коду та енергоспоживання. Це дозволяє оптимізувати програмне забезпечення таким чином, щоб контролер споживав якомога менше енергії або можна було визначити точки, які відповідають за особливо велике споживання енергії. Інтеграція EAR Eclipse досі є відносно новою. Поки що існує лише одна програма попереднього перегляду технологій, за допомогою якої компілятори C/C ++, асемблери, лінкери та налагоджувачі C-Spy можуть бути інтегровані в Eclipse, а потім замінити відповідні інструменти GNU.

Wind River та HighTec: фірмові страви для TriCore

Як унікальна архітектура Infineon, TriCore, безсумнівно, є більш екзотичною, ніж XMC4000, із своїм ядром ARM Cortex-M4. Вибір інструментів також менший для TriCore. Згадані вище інструменти VX (для Eclipse) або компілятор Diab від Wind River опиняються тут під питанням. Діаб раніше був незалежною компанією, яку Вінд-Рівер придбав незабаром після рубежу тисячоліть.

Навіть якщо ви більше нічого не чуєте від Diab - інструменти все ще існують, і компілятор Diab характеризується особливо оптимізованим для пам'яті кодом, який він створює. Його можна інтегрувати у середовище розробки Workbench від Wind River. Окрім TriCore, компілятор Diab підтримує майже всі інші сучасні 32-розрядні архітектури.

Ще однією можливістю генерації коду для TriCore є платформа розробки TriCore від Hightec EDV-Systeme. Hightec використовує фреймворк Eclipse та компілятор C/C ++ на основі GNU. Після вибору мікроконтролера платформа розробки самостійно генерує базову структуру коду з необхідними ініціалізаціями та основним циклом для запуску власної розробки або імпортує проект DAvE.

Рисунок 2. Високотехнологічний компілятор може інструментувати код, щоб відобразити охоплення коду в графічному огляді.

Компілятор може використовувати різні режими адресації контролера TriCore за допомогою інструкцій pragma, за допомогою яких можна контролювати оптимальний розподіл коду та даних в пам'яті та оптимізацію виконання. Компілятор також може налаштуватися на співіснування операційної системи AUTOSAR від ETAS, Elektrobit або Vector.