Развој на софтвер Вклучување и работење на софтвер; Вградени алатки за развој; Електроникат

27 ноември 2012 година, во 10:14 часот | Јоаким Крол

Пред да заживее микроконтролерот, тој треба да се напојува со софтвер. Но, софтверот не само „работи“, тој треба да се развива. Ова бара софистицирани алатки. За среќа, „Инфинеон“ не е оставен на своите потреби. Постојат многу добавувачи кои ги снабдуваат развивачите на софтвер со „материјал“ за популарната архитектура.

Со цел да се програмира софтвер за микроконтролери, потребни се истите алатки за развој како и за софтверот за компјутер: уредник за изворниот код, како и компајлер и поврзувач за преведување на изворниот код во команди читливи од машината. Но, тука престануваат сличностите. Бидејќи компјутерскиот софтвер работи на истиот систем или барем истата архитектура на која е развиен (развој на самостојно домаќинство).

Ова не би било можно кај повеќето микроконтролери, било од едноставна причина што нема врски за тастатура и екран, или затоа што има премалку меморија и моќ за обработка за да се изврши процес на компајлирање во прифатливо време.

Затоа, софтверот за микроконтролер е развиен на компјутер и готовиот код се пренесува во архитектурата на трети лица на контролорот (вкрстен развој). Мора да работи таму и - по правило, не работи како кој било код што ќе се обидете да го добиете за прв пат на работа.

Тогаш се поставува прашањето: Како ги анализирате овие грешки и како пораките за грешки се враќаат во развојниот компјутер? Колку и да е едноставен овој проблем, тој покажува дека се потребни повеќе чекори за развој и повеќе алатки за вкрстено развивање отколку за развој на самиот домаќин.

За да бидат работите уште полоши, постои шарен „мултикултурализам“ во светот на микроконтролерите и не може да се зборува за стандардизација како кај процесорите x86. Со архитектурата на АРМ се појави одреден де факто стандард, но навистина да се зборува за стандард тука би било претерување, бидејќи прво има АРМ во различни генерации и основни варијанти (АРМ 7/9/11, Кортекс -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 што се вклопува во рамката на затемнувањето со CDT (C Development Tools). Алатките за задачи можат да работат заедно со DAvE и поддршка, на пример, проверка на кодот според стандардот MISRA-C, што е важно за автомобилски проекти.

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

Алатките од Keil исто така нудат голема поддршка за Infineon архитектурите - со исклучок на TriCore. Keil исто така има различни верзии на алатки за развој за 8, 16 и 32 бита. Како подружница на АРМ и германска подружница на АРМ, Кеил нуди голема поддршка за оваа архитектура.

вградени

Слика 1. Комплет за развој на микроконтролер (MDK) е достапен во различни верзии за различни архитектури. Верзијата на АРМ не само што содржи алатки за развој, туку и среден софтвер.

Со алатките Keil, интерфејсот со корисникот е средина за развој μVision со проект менаџер, уредник и дебагерот. Целиот ланец на алатки од Keil се нарекува MDK (комплет за развој на микроконтролер) и вклучува многу повеќе од развојната околина со компајлер, асемблер, поврзувач и дебагер (Слика 1).

MDK-ARM може да чита во проекти генерирани со DAvE3, но исто така содржи и екстензии што го олеснуваат инженерот од развој на недиференцирачки карактеристики на производот: датотечен систем, USB домаќин и оџак на уред, мрежа TCP/IP, CAN интерфејс Библиотеките за цртање кориснички интерфејси се вклучени во целосната верзија. Со RTX, постои дури и тенок оперативен систем во реално време кој обезбедува инфраструктура за софтвер за повеќе задачи и се испорачува во изворниот код.

Со 8- и 16-битна архитектура, пакетот алатки се нарекува PK51 или PK166 и околниот софтверски екосистем е малку послаб, но има RTX јадро дури и за 8051. Обезбедена е и размена на информации за дебагирање: Со ULINK2, Keil нуди адаптер за дебагирање кој е поврзан на USB-портата на развојниот компјутер и целниот систем преку JTAG или преку режимите на ARM Сериско отстранување грешки (SWD) ) или Прегледувач на сериски жици (SWD). Во исто време, флеш-меморијата на целниот систем е програмирана преку овој уред.

Адаптерот за дебагирање ULINKpro нуди дополнителни функции, кои исто така можат да снимаат трага од команда, да поставуваат точки на прекин и да ги читаат содржините на меморијата. Ова овозможува да се анализира целата низа на програмата.

IAR: универзална, но само за две Infineon архитектури

Друга многу универзална средина за развој е IAR Workbench, за која се вели дека е погодна за повеќето микроконтролери. Во случајот на Infineon, сепак, поддржани се само архитектурите ARM и XC800. Верзијата 8051 е достапна во различни фази на проширување, кои се разликуваат, на пример, во максимално дозволената големина на кодот, поддршка за оперативни системи во реално време и присуство на MISRA-C-Проверувач. Верзијата ARM има бројни врски со партнерски алатки, како што се хардверски дебагери или оперативни системи во реално време.

ИАР исто така нуди алатки за развој на хардвер, како што е JTAG дебагерот J-Link, кој се однесува на чип-внатрешните функции за дебагирање на компонентите XMC4000 или I-Jet, алатка за корелација на потрошувачката на код и енергија. Ова им овозможува на софтверот да биде оптимизиран на таков начин што контролорот троши што е можно помалку енергија или може да се идентификуваат оние точки што се одговорни за особено голема потрошувачка на енергија. Интеграцијата на IAR во затемнување е сè уште релативно нова. Досега има само една програма за преглед на технологија со која компајлерите, склопувачите, поврзувачите и дебагерите на C-Spy C/C ++ можат да бидат интегрирани во Eclipse и потоа да ги заменат соодветните алатки на GNU.

River Wind и HighTec: специјалитети за TriCore

Како единствена Infineon архитектура, TriCore е несомнено поегзотичен од XMC4000 со ARM Cortex-M4 јадро. Изборот на алатки е помал и за TriCore. Гореспоменатите задачи VX алатки (за Eclipse) или компајлерот Diab од реката Винд стапуваат во прашање тука. Диаб порано беше независна компанија што беше купена од реката Винд набргу по крајот на милениумот.

Дури и ако не слушнете ништо друго од Diab - алатките сè уште постојат и компајлерот Diab се карактеризира со особено оптимизираниот мемориски код што го произведува. Може да се интегрира во околината за развој на Workbench на Wind River. Покрај TriCore, компајлерот Diab ги поддржува скоро сите други модерни 32-битни архитектури.

Друга можност за генерирање код за TriCore е развојната платформа TriCore од Hightec EDV-Systeme. Хајтек ја користи рамката Eclipse и компајлерот C/C ++ заснован на GNU. По изборот на микроконтролер, развојната платформа самостојно генерира структура на основна шифра со потребните иницијализации и главна јамка за започнување на домашен развој или увоз на проект DAvE.

Слика 2. Компајлерот за висока технологија може да го инструментира кодот со цел да го прикаже покриеноста на кодот во графички преглед.

Компајлерот може да ги користи различните режими на адресирање на контролорот TriCore преку упатства за прагма, со кои може да се контролира оптималната дистрибуција на кодот и податоците во меморијата и оптимизацијата за време на траење. Компајлерот исто така може да се прилагоди на соживотот на оперативниот систем AUTOSAR од ЕТАС, Електробит или Вектор.