February 16, 2016 ЛАБОРАТОРИСКА ВЕЖБА 1 ЗАПОЗНАВАЊЕ СО COOCOX IDE
Лаб 1. Запознавање со CooCox развојна околина
CoIDE е бесплатна и висока интегрирана софтверска развојна околина за ARM
Cortex MCU базираните микроконтролери, која ги вклучува сите неопходни алатки за развој на високо квалитетни софтверски решенија на темелен и ефективен начин. Оваа развојна околина се состои од компонент базирана мрежна околина и Eclipse базирана развојна околина. Со компонент базираната мрежна околина лесно може да се обезбедат ресурси за да се изгради една апликација, споделат ресурси кои би му помогнале на останатите и разменат идеи. Eclipse базираната околина обезбедува многу можности за: едитирање на кодот, додавање на нов код, компајлирање, linking, дебагирање, менаџирање со проектот итн. Карактеристики:
Бесплатна за користење за сите
Развојна околина без ограничувања Компонент ориентирана развојна платформа Интернет базирана, ефикасна интеграција на мрежни ресурси Интегриран CoOS (оперативен систем во реално време) Периферни регистри
Во CooCox развојната околина секој код кој може повторно да се искористи
може да се нарече компонента вклучувајќи: оперативен систем, драјвери, примери, софтвер за комуникација помеѓу софтверските и хардверските компоненти итн. За секоја компонента се достапни: соодветниот фрагмент на код, начинот на користење, документацијата и коментарите на кодот. Кога компонентата е селектирана, CooCox развојната околина автоматски ги селектира компонентите кој ги користи селектираната компонента потребни за компајлирање и извршување на програмата. Фрагментите на кодот односно примерите за работа на некоја периферија и слично се проширување на компонентите. Ако компонентата е објектно-ориентирана примерите се апликациски ориентирани. Како на пример GPIO драјверот кој го нуди CooCox е компонента, а функцијата која го користи GPIO драјверот со цел трепкање на некоја лед диода е познат како пример на код. Примерите се обично доста кратки, но без рестрикција. Тие можат автоматски да се додадат во кодот. Во embedded развојот на апликации, ако не постојат соодветни библиотеки развојот на една апликација може да стане многу комплициран процес. Еднаш кога ги имаме соодветните библиотеки на располагање развојот станува значително полесен. CooCox мрежата со компоненти содржи голема количина на бесплатни компоненти, па корисникот може да избере соодветна компонента во зависност од неговите потреби дополнително со користењето на примерите развојот на една апликација може да стане многу побрз. Со голем број на компоненти и детална документација за нив програмирањето може да биде “eдноставно” како поврзување на блокови. Деталната документација (прикажана во help прозорецот) е достапна за секоја компонента правејќи ја компонентата екстремно лесна за користење. Документацијата вклучува: опис на компонентата, зависност на компонентата од други компоненти, изворните датотеки на компонентата, начин на користење на компонентата, коментари итн. CooCox развојната околина автоматски генерира документација за изворната датотека.
1 Лаб 1. Запознавање со CooCox развојна околина | Никола Јовановски
February 16, 2016 ЛАБОРАТОРИСКА ВЕЖБА 1 ЗАПОЗНАВАЊЕ СО COOCOX IDE
Креирање на нов проект
Селектираме New Project од Project опаѓачкото мени слика 1.
Слика 1. Project->New Project.
Слика 2. Име на проектот и патека.
2 Лаб 1. Запознавање со CooCox развојна околина | Никола Јовановски
February 16, 2016 ЛАБОРАТОРИСКА ВЕЖБА 1 ЗАПОЗНАВАЊЕ СО COOCOX IDE
Внесуваме име на проектот и патека каде сакаме да биде сместен проектот. Во
зададената патека CooCox развојната околина автоматски генерира датотека во која го внесува целиот проект. Слика 2.
Слика 3. Избор на чип или плоча.
Следно е избор на чип или плоча дадено на слика 3. Во нашиот случај избираме плоча со цел да ги имаме на располагање и драјверите за некои периферии сместени на плочата.
Слика 4. Избор на микроконтролер (плоча).
3 Лаб 1. Запознавање со CooCox развојна околина | Никола Јовановски February 16, 2016 ЛАБОРАТОРИСКА ВЕЖБА 1 ЗАПОЗНАВАЊЕ СО COOCOX IDE
Следно избираме плочка на која ќе работиме па селектираме stm32 ->
STM32F303DISCOVERY. Дадено на слика 4 и слика 5.
Слика 5. Избор на микроконтролер (плоча) (1).
Слика 6. Избор на компоненти кои ќе ги користиме во проектот.
4 Лаб 1. Запознавање со CooCox развојна околина | Никола Јовановски
February 16, 2016 ЛАБОРАТОРИСКА ВЕЖБА 1 ЗАПОЗНАВАЊЕ СО COOCOX IDE
Следно е изборот на компонентите кои ќе ги користиме во нашата апликација.
Компонентите зависат од перифериите кои сакаме да ги вклучиме. Изборот се прави со едноставно селектирање (штиклирање) на соодветната компонента. CooCox развојната околина автоматски ги селектира компонентите од кои селектираната компонента е зависна. M4 CMSIS CORE и cmsis_boot компонентите се потребни при развој на било каква апликација бидејќи CMSIS (Cortex Microcontroller Software Interface Standard) e апстракциски слој на хардверот за Cortex M серијата на процесори и нивните специфични дебагерски интерфејси независно од производителот на процесорот. CMSIS овозможува конзистентен и едноставен интерфејс на процесорот со перифериите, оперативниот систем во реално време и middlеware софтверот. CMSIS core for Cortex M4 компонентата го имплементира пристапот на јадрото кон периферијата. CMSIS_BOOT компонентата ги имплементира датотеките за покревање на проектот и системските дефиниции. Производството на софтвер е најскапиот процес во embedded индустријата. Со стандардизација на софтверските интерфејси за сите Cortex M производители на микроконтролери, особено при креирање на нови проекти или мигрирање на веќе постоечки софтвер на нов уред дава значително намалување во цената. Ако сакаме да работиме со пиновите за генерална намена потребно е да ја селектираме компонентата GPIO каде се дефинирани функции за работа со пиновите за генерална намена. Со селектирање на оваа компонента CooCox развојната околина автоматски ја селектира RCC (Reset and clock control) компонентата. Во оваа компонента се дефинирани функции за поставување на тактот на микроконтролерот, функции за вклучување и исклучување на тактот на различните периферии итн. Кај Cortex М4 серијата на микроконтролери со цел намалување на потрошувачката на енергија овозможено е вклучување и исклучување на тактот на различните периферии. Во овие компоненти се дефинирани готови функции со кој поедноставно може да се стават во работа различните периферии. Сепак ние ќе работиме со поставување на соодветни вредности во потребните регистри со цел подобро разбирање на соодветните периферии и нивната функција. На крајот ќе дадеме и примери со користење на готовите функции.
Делови на CooCox развојната околина
На слика 7 се прикажани деловите на CooCox развојната околина:
Component view ги прикажува сите компоненти кој се вклучени во тековниот
проект. Ако селектираме компонента во component view: o Help view ќе ги прикаже карактеристиките на селектираната компонента, како што се изворната датотека на компонентата, документација за компонентата, зависноста од останатите компоненти, начинот на користење и коментари. o Code Snippet View ги прикажува сите примери кој се достапни, а ја користат селектираната компонента o Project View ги означува изворните датотеки на компонентата Project View ги прикажува сите датотеки во директориумот на проектот. Вклучувајќи C изворни датотеки (*.c, *.h), асемблер изворни датотеки (*.s), конфигурациони датотеи на проектот (build.xml), linker script датотеки (*.d), библиотечни датотеки (*.a) итн.
5 Лаб 1. Запознавање со CooCox развојна околина | Никола Јовановски
February 16, 2016 ЛАБОРАТОРИСКА ВЕЖБА 1 ЗАПОЗНАВАЊЕ СО COOCOX IDE
Repository во овој поглед можеме да ги видиме компонентите на чипот и
менаџираме со локалните или мрежните компоненти. Edit View прикажување и едитирање на отворениот фајл од Project View-то
Слика 7. Погледи на CooCox развојната околина.
Дебагирање
Контролата на debug извршувањето може да се прави со breakpoints. Ако сакаме
да се движиме чекор по чекор во некоја функција тоа го правиме со ставање на breakpoint во функцијата на местото каде сакаме програмата да застане. Кога програмата ќе наиде на breakpoint застанува на соодветната линија и тука овозможени се различни начини на контрола на дебагирањето дадени во табела 1.
Табела 1. Опции за контрола на дебагирањето.
6 Лаб 1. Запознавање со CooCox развојна околина | Никола Јовановски
February 16, 2016 ЛАБОРАТОРИСКА ВЕЖБА 1 ЗАПОЗНАВАЊЕ СО COOCOX IDE
Breakpoint може да се постави на извршувачка линија на код од програмата. Ако
breakpoint-от е овозможен при дебагирање извршувањето ќе биде прекинато пред кодот од таа линија да биде извршен. Додавањето на точки на прекин се прави со двоен клик на маркираната вертикална линија најдесно во Edit View-то.
7 Лаб 1. Запознавање со CooCox развојна околина | Никола Јовановски