Разработка на софтуер Включване и изпълнение на софтуера; Вградени инструменти за разработка; 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 ) или Serial Wire Viewer (SWD). В същото време флаш паметта на целевата система се програмира чрез това устройство.
Адаптерът за отстраняване на грешки ULINKpro предлага допълнителни функции, които също могат да записват проследяване на команди, да задават точки на прекъсване и да четат съдържанието на паметта. Това позволява да се анализира цялата програмна последователност.
IAR: универсален, но само за две архитектури на Infineon
Друга много универсална среда за разработка е IAR Workbench, за която се твърди, че е подходяща за повечето микроконтролери. В случая с Infineon обаче се поддържат само архитектурите ARM и XC800. Версията 8051 се предлага на различни етапи на разширение, напр. разграничаване по максимално допустим размер на кода, поддръжка за операционни системи в реално време и наличието на MISRA-C-Checker Версията ARM има множество връзки с партньорски инструменти като хардуерни дебъгъри или операционни системи в реално време.
IAR предлага и инструменти за разработване на хардуер като дебъгерът JTAG J-Link, който адресира функциите за вътрешно отстраняване на грешки на компонентите XMC4000 или I-Jet, инструмент за корелация на кода и консумацията на енергия. Това означава, че софтуерът може да бъде оптимизиран по такъв начин, че контролерът да консумира възможно най-малко енергия или да се идентифицират точките, които са отговорни за особено високата консумация на енергия. Интеграцията на IAR в Eclipse все още е сравнително нова. Засега има само една програма за предварителен преглед на технологията, с която C/C ++ компилаторите, асемблерите, линкерите и C-Spy дебъгърите могат да бъдат интегрирани в Eclipse и след това да заменят съответните GNU инструменти.
Wind River и HighTec: специалитети за TriCore
Като уникална архитектура на Infineon, TriCore несъмнено е по-екзотична от XMC4000 със своето ядро ARM Cortex-M4. Изборът на инструменти също е по-малък за TriCore. Тук се поставят под въпрос гореспоменатите задачи за VX инструменти (за Eclipse) или компилаторът Diab от Wind River. Diab е бил независима компания, която е закупена от Wind River малко след началото на хилядолетието.
Дори и да не чувате нищо друго от Diab - инструментите все още съществуват и компилаторът Diab се характеризира с особено оптимизирания за памет код, който произвежда. Той може да бъде интегриран в средата за разработка на Workbench на Wind River. Освен TriCore, компилаторът Diab поддържа почти всички други съвременни 32-битови архитектури.
Друга възможност за генериране на код за TriCore е платформата за разработка TriCore от Hightec EDV-Systeme. Hightec използва рамката Eclipse и базиран на GNU C/C ++ компилатор. След избора на микроконтролер, платформата за разработка генерира самостоятелно основна кодова структура с необходимите инициализации и основен цикъл за стартиране на вътрешна разработка или импортиране на DAvE проект.
Фигура 2. Високотехнологичният компилатор може да инструментира кода, за да покаже покритието на кода в графичен преглед.
Компилаторът може да използва различните режими за адресиране на контролера TriCore чрез инструкции pragma, с които може да се контролира оптималното разпределение на кода и данните в паметта и оптимизацията на изпълнението. Компилаторът може също да се приспособи към съжителството на операционна система AUTOSAR от ETAS, Elektrobit или Vector.