Разработка на вградени приложения, част 3
Серия съдържание:
Това съдържание е част # от поредица # статии: Разработване на приложения за вградени устройства
Това съдържание е част от поредицата: Разработка на вградени приложения
Очаквайте нови статии от тази серия.
Първата част от тази серия от четири статии обсъждаше как да настроите популярната среда за разработка Eclipse за изграждане на AVR приложения. Във втората част разгледахме как тази задача може да бъде изпълнена с помощта на друга среда за разработка – Code::Blocks. Сега е време да се запознаете с настройката на Eclipse за разработване на приложения със SDCC компилатора.
SDCC (Small Device C Compiler) е безплатен преносим оптимизиращ ANSI C компилатор с отворен код за 8-битови микропроцесори, базирани на Intel MCS51 (8031, 8032, 8051, 8052 и т.н.), варианти на Dallas DS80C390, Zilog Z80, Freescale (преди Motorola) HC08, а също и частично Microchip PIC16 и P IC18. Разпространява се под GNU GPL.
В допълнение към компилатора, SDCC включва преносим ASXXXX и ASLINK асемблер и линкер, както и SDCDB дебъгер на ниво източник, използвайки симулатора s51.
Съвременните популярни дистрибуции на Linux съдържат пакета SDCC в своите хранилища, но ако е необходимо, можете да изтеглите подходящата опция за вашата платформа и да я инсталирате. Пакетът включва и обширна документация, включително ръководството за потребителя sdccman.pdf. Например във Fedora тази документация е инсталирана в директорията /usr/share/doc/sdcc-2.9.0/sdcc.
Можете да проверите дали вашата система има SDCC и дали работи с проста команда inтерминален прозорец:
ако пакетът е инсталиран на Fedora. Трябва да се появи отговор на компилатора с помощна информация.
EclipseSDCC плъгин
Целта на проекта eclipseSDCC е да поддържа напълно SDCC компилатора в среда на Eclipse с инсталиран CDT модул. Това прави възможно разработването на приложения, написани на C за 8051 и Z80 съвместими устройства, като се използва пълната среда за разработка Eclipse. EclipseSDCC поддържа автоматично генериране на makefiles от CDT модула. В същото време CDT управлява процеса на изграждане на проекта, като създава и конфигурира подходящите файлове за изграждане. CDT следи зависимостите на изходния файл и може автоматично да възстанови проекта, ако е необходимо.
Въпреки че модулът EclipseSDCC е разработен за Eclipse 3.1 и не е променян оттогава, той все още е функционален. Изтеглете eclipseSDCC-1.0.0, подходящ за вашата платформа (например net.sourceforge.eclipsesdcc-1.0.0-linux.gtk.x86.tar.gz) и извлечете получения файл в някоя директория; намерете директориите с добавки и функции в него. Копирайте тези директории във вашата домашна директория
Фигура 1. Местоположение на директориите с добавки и функции
Следващият път, когато стартирате Eclipse, той трябва да разпознае този плъгин. Можете да проверите това, като стартирате Eclipse и проверите менюто Помощ: Помощ->Помощно съдържание. При успешно инсталиране на модула EclipseSDCC можете да видите името „Eclipse SDCC Compiler Plugin“ в списъка с инсталирана документация:
Фигура 2. Документация на модула EclipseSDCC
Добавката EclipseSDCC изисква помощните програми make и rm да бъдат инсталирани в системата. Команди
уверете се, че тези помощни програми са инсталирани и ако не са налични, инсталирайте ги.
Така че, ако Eclipse с CDT, модулът EclipseSDCC и самият SDCC са инсталирани в системата, тогава можете да започнете да създавате и конфигурирате проекта.
Създайте и настройте проект
Изберете „Файл->Нов->Проект“ от менюто. В прозореца, който се отваря, изберете съветника за създаване на проект: „C->C Project“. Кликнете върху "Напред".
Фигура 3. Създаване на проект
В следващия прозорец изберете тип проект "MCS51 семейство (SDCC)", въведете име за проекта и щракнете върху бутона "Напред".
След това трябва да изберете необходимите конфигурации за изграждане - Release и Debug. В конфигурацията за отстраняване на грешки, полученият изходен файл ще съдържа информация за отстраняване на грешки (опцията --debug се добавя към командния ред на компилатора). В конфигурацията Release изходният файл няма да има нищо допълнително и ще бъде възможно да се зареди в паметта на микропроцесора. Щракнете върху бутона Готово. Ще се появи диалогов прозорец, който ви подканва да използвате общото оформление и изглед, специфичен за C проекта. Кликнете върху бутона "Да". Ако всичко е направено правилно, ще се отвори празен C проект.
Преди да продължим, нека прегледаме параметрите на проекта. За да направите това, изберете елемента "Project->Properties" в менюто, в прозореца със свойства на проекта, който се отваря, отворете секцията "C/C++ Build" в левия панел на прозореца и отидете на елемента "Settings". Параметрите на проекта се показват в основната част на прозореца със свойства на проекта.
Фигура 4. Параметри на проекта
В секцията „SDCC Compiler->Memory Options“ изберете модела памет, който да използвате (по подразбиране е „--model-small“). EclipseSDCC предоставя само две опции - "малък" и "голям". Ако се изисква модел със средна памет, въведете ръчно параметъра "--model-medium". Освен това тукса посочени параметрите на RAM и програмната памет, както и размера на стека. Правилните стойности за попълване на тези полета могат да бъдат намерени в документацията за използвания микропроцесор, както и в документацията за SDCC.
В раздела „SDCC компилатор“ трябва да се уверите, че се използва правилната команда за стартиране на компилатора. По подразбиране се използва командата "sdcc -c", но например във Fedora, поради редица причини, компилаторът се извиква с командата "sdcc-sdcc -c". Освен това, тъй като разделът с опции "SDCC Compiler->Processor" е празен, трябва сами да посочите типа процесор тук. По подразбиране е -mmcs51, което е за фамилията Intel MCS51. Необходимият параметър може да бъде намерен в ръководството за потребителя на SDCC.
Раздел „SDCC компилатор->Директории“. Тук трябва да посочите правилния път до заглавните файлове на SDCC, например /usr/share/sdcc/include/.
Раздел SDCC Linker. Тук също трябва да се уверите, че се използва правилната команда за извикване на линкера (по подразбиране е "sdcc"). В случая, например, на Fedora, това трябва да бъде "sdcc-sdcc". Освен това, ако се използва модел памет, различен от "малък", тогава трябва ръчно да въведете желания параметър тук, например "--модел-голям".
В раздела „SDCC Linker->Libraries“, в полето „Library search path (-L)“ трябва да укажете пътя до SDCC библиотеките, например /usr/share/sdcc/lib/.
Сега можете да добавите първия файл към проекта. За да направите това, изберете командата от менюто "Файл->Създаване->Изходен файл". В прозореца, който се отваря, в полето "Изходен файл:" въведете името на файла, например main.c. Уверете се, че в полето „Шаблон:“ е избрано „Шаблон на C източник по подразбиране“ и щракнете върху бутона „Край“.
Фигура 5. Създаване на нов изходен файл
Фигура 6Обща форма
Нека добавим текста на най-простата програма към файла:
Сега нека запазим файла (използвайки клавишната комбинация Ctrl+S) и, ако изграждането на проекта не е стартирало автоматично, стартирайте изграждането с командата от менюто „Проект->Изграждане на всички“ или чрез натискане на Ctrl+B. В резултат на това към структурата на проекта ще бъде добавена директория Release, съдържаща файла test.ihx, който може да бъде зареден в паметта на процесора с помощта на наличния програматор. В долната част, в панела за съобщения, в раздела "Конзола" ще се появи отчет за работата на компилатора, който изглежда така:
Фигура 7. Резултат от компилатора
Грешките при компилиране на SDCC се появяват на няколко места.
Грешките се виждат и в прозорците "Структура на проекта" и "Схема".
Тук трябва да се припомни, че ако елементът от менюто "Project->Auto-link" е маркиран, тогава след запазване на промените във файловете на проекта, Eclipse ще провери зависимостите между файловете и автоматично ще изгради проекта. Ако това е нежелателно по някаква причина (например, ако проектът е много голям), тогава тази опция трябва да бъде оставена деактивирана, но се препоръчва да активирате опцията „Автоматично запазване преди свързване“ в предпочитанията „Прозорец->Опции->Общи->Работно пространство“. След това, всеки път, когато стартирате компилация на проект, Eclipse първо ще запази всички файлове, които са били модифицирани.
Можете да научите повече за всички функции на работата с C-проекти в средата на Eclipse, като проучите документацията за платформата Eclipse и модула CDT.
Преместване на.
След като разберете за първи път създаването и настройването на AVR и SDCC проекти в средата на Eclipse/CDT, можете да използвате подобни подходи, когато разработвате вградени приложения за други платформи: ако има подходящplug-in, трябва да го използвате, за да улесните живота си, или да зададете настройките на проекта ръчно, като създадете празен GCC проект. Има и друг вариант - да създадете проект със собствен makefile, но това изисква допълнителни умения.
Например, за да разработите MSPGCC приложения за микроконтролери MSP-430 от Texas Instruments, можете да използвате доста стар плъгин за Eclipse. Подробно ръководство за инсталиране на всичко необходимо за този случай е на немски тук, но за Win32. Като алтернатива можете да зададете празните настройки на проекта ръчно, както е описано тук. Можете дори да използвате специално адаптиран Zylin Embedded CDT модул, можете да прочетете за него тук.
По подобен начин има модул GNU ARM Eclipse за разработка на Eclipse с GNUARM, но е напълно възможно да зададете настройките на проекта ръчно.
Заключение
В тази статия видяхте как можете бързо да създадете и настроите SDCC проект за разработка на Eclipse/CDT, както и първоначална идея къде да отидете, когато трябва да започнете разработка за друга платформа. Следващата статия ще говори за разработването на SDCC приложения с помощта на Code::Blocks.