Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Програмування мікроконтролерів. Лекція 1. Базові поняття програмування мікроконтролерів. Бібліотеки CMSIS і SPL

Содержание

Лекція 1Організація курсуВНС: пароль - Ghiraldi Лабораторних — 8 , у сумі — 40 балівІспит — 60 балів, три рівні1 — тести:вибрати правильну відповідь із запропонованих варіантів абовписати слово (ним може бути і ім'я бібліотечного файлу,
Лекція 1Програмування мікроконтролерівЛЕКЦІЯ 1Базові поняття програмування мікроконтролерів. Бібліотеки CMSIS і SPL Лекція 1Організація курсуВНС: пароль - Ghiraldi Лабораторних — 8 , у сумі Лекція 1Dinamica Generale S.p.A (1) Лекція 1Dinamica Generale S.p.A (2) Лекція 1Dinamica Generale S.p.A (3)https://youtu.be/3VZ0OxEiQD0 Лекція 1Dinamica Generale S.p.A (4) Лекція 1Dinamica Generale S.p.A (3) Лекція 1Segger Emwin Лекція 1Області застосування мікроконтролерів (1)1. Побутова техніка з автоматичним керуванням, телекомунікаційні пристрої, Лекція 1Області застосування мікроконтролерів (2)2. Спеціалізована техніка в ряді галузей медичні прилади Лекція 1Характеристики вбудованих системКонкретне призначення, на противагу до універсальності  Апаратні обмеження: Лекція 1Мікроконтролери та мікропроцесориМікропроцесор –Процесор “в мініатюрі”, основна діяльність – читання/запис даних Лекція 1Мікропрограмне забезпеченняМікропрограма  – (“прошивка”,   мікропрограмне забезпечення, firmware)Вміст пам’яті Лекція 1МікроконтролерКласична аналогія: мікроконтролер – “мозок” пристрою, firmware – його “свідомість”. В Лекція 1ПЗП МКЄ масив комірок пам’яті. Кожна комірка має свою адресу. У Лекція 1Будова мікроконтролераТиповий контролер містить такий мінімум елементів:CPU (Арифметико-логічний пристрій (АЛП, ALU), Лекція 1АЛПАЛП виконує послідовність команд почергово. Команди зчитуються з ПЗП. Кожна зчитана Лекція 1Цикл виконання команд Лекція 1Лічильник командДля того, щоб “витягти” наступну команду в послідовності, застосовується лічильник Лекція 1Розрядність АЛПРозрядність АЛП –визначає, якими числами оперує АЛП. Розрядність 16 означає, Лекція 1РегістриРегістри –Комірки оперативної пам’яті, до яких МК звертається більш короткими і Лекція 1Порти вводу/виводуПорт вводу/виводу МК –іменована сукупність N виводів (синоніми виводу — Лекція 1Таймери/лічильникиТаймер –пристрій для формування часових інтервалів; цифровий лічильник, який рахує імпульси Лекція 1Додаткові функціональні блоки МКАналоговий компаратор –пристрій для контролю напруги. Порівнює виміряну Лекція 1Шини мікроконтролера (1)Функціональні блоки мікроконтролера обмінюються даними через шини. Зокрема, дані Лекція 1Шини мікроконтролера (2)Функціональні блоки МК обмінюються даними через шини. Зокрема, дані Лекція 1Архітектури мікроконтролера (1)Є сотні мікроконтролерів, але всі їх можна поділити на Лекція 1Архітектури мікроконтролера (2) Лекція 1Організація пам’яті (1)2 архітектури:  1. прінстонська архітектура (архітектура фон Неймана) Лекція 1Організація пам’яті (2)Переваги гарвардської архітектури:  1. швидкий пошук операндів (даних). Лекція 1Система команд МК (1)RISC & CISC:  1. CISC-архітектура (Complicated Instruction Лекція 1Система команд МК (2)RISC: 1. однаковий час виконання команд (вибірка і 03.09.15 10:44Лекція 1Кроки створення мікропрограми1. Написання програми однією з мов  2. Лекція 1Програматори Лекція 1Тактова частота мікроконтролераРобота блоків залежить від того, чи вони отримують тактові Архітектура ARMПродукт Acorn Computers, перший випуск — у 1982 р.Інтерпретація: Acorn RISC Лекція 1CMSISCMSIS –Бібліотека, стандартна для всіх МК з ядром ARM Cortex. Стандартизується Лекція 1Структура CMSIS (концепція) Лекція 1Функціональні рівні CMSIS3 Рівні:  1. Core Peripheral Access Layer (CPAL) Лекція 1Файли у складі CMSIS2 частини:  1. спільна для всіх МК Лекція 1Файли у складі CMSIS (2)system_.h + system_.с конфігурація System Clock + Лекція 1StartupМістить:  первинну ініціалізацію МК налаштування стека занулення секції BSS виклик функції main Лекція 1Оформлення коду у CMSISCMSIS дотримується Doxygen. Doxygen – система документування коду, Лекція 1CMSIS: stm32fxxx.h Вміст файлу: структури з описом периферійних модулів + макроси Лекція 1Standard Peripherals Library (SPL)SPL –Бібліотека, створена STMicroelectronics для полегшення доступу до Лекція 1Архітектура SPL Лекція 1Структура бібліотеки SPLБібліотека SPL постачається у zip-архіві   підкаталоги: CMSIS STM32Fxxx_StdPeriph_Driver Лекція 1SPL: STM32Fxxx_StdPeriph_Driverпідкаталоги: inc – заголовні файли драйверів src – с-файли драйверів Лекція 1Конфігурація/ініціалізація периферії (1)Вся периферія описана структурами. Потрібні кроки:  1. Підключити Лекція 1Конфігурація/ініціалізація периферії (2)Щоб знати, яку з 3 функцій для тактування слід Лекція 1Конфігурація/ініціалізація периферії (3)4. Задати значення полям екземпляра структури  5. Викликати Лекція 1Приклад конфігурації GPIO (1)1. Функції і дані для роботи з портами Лекція 1Приклад конфігурації GPIO (2)3. Після увімкнення тактування однією з функцій RCC_APB2PeriphClockCmd, Лекція 1Ввімкнення периферійного модуляПісля конфігурації та ініціалізації для ряду пристроїв викликають
Слайды презентации

Слайд 2 Лекція 1

Організація курсу
ВНС: пароль - Ghiraldi

Лабораторних —

Лекція 1Організація курсуВНС: пароль - Ghiraldi Лабораторних — 8 , у

8 , у сумі — 40 балів
Іспит — 60

балів, три рівні

1 — тести:
вибрати правильну відповідь із запропонованих варіантів або
вписати слово (ним може бути і ім'я бібліотечного файлу, структури, функції тощо), словосполучення, числове значення
15 питань

2 — написати два-три речення відповіді (лише конкретика) на задане питання, наприклад, дати визначення або ж пояснити різницю між якимиcь двома поняттями

3 — розгорнута відповідь, наприклад, пояснити принцип роботи того чи іншого інтерфейсу, порівняти два інтерфейси, написати фрагмент коду для реалізації взаємодії мікроконтролера з якоюсь периферією тощо

Слайд 3 Лекція 1

Dinamica Generale S.p.A (1)

Лекція 1Dinamica Generale S.p.A (1)

Слайд 4 Лекція 1

Dinamica Generale S.p.A (2)

Лекція 1Dinamica Generale S.p.A (2)

Слайд 5 Лекція 1

Dinamica Generale S.p.A (3)
https://youtu.be/3VZ0OxEiQD0

Лекція 1Dinamica Generale S.p.A (3)https://youtu.be/3VZ0OxEiQD0

Слайд 6 Лекція 1

Dinamica Generale S.p.A (4)

Лекція 1Dinamica Generale S.p.A (4)

Слайд 7 Лекція 1
Dinamica Generale S.p.A (3)

Лекція 1Dinamica Generale S.p.A (3)

Слайд 8 Лекція 1
Segger Emwin

Лекція 1Segger Emwin

Слайд 9 Лекція 1
Області застосування мікроконтролерів (1)
1. Побутова техніка з

Лекція 1Області застосування мікроконтролерів (1)1. Побутова техніка з автоматичним керуванням, телекомунікаційні

автоматичним керуванням, телекомунікаційні пристрої, офісна техніка:
мобільні телефони фотоапарати

телевізори GPS-навігатори мікрокалькулятор

пральні машини мікрохвильові печі домофони іграшки “розумний будинок”


Слайд 10 Лекція 1
Області застосування мікроконтролерів (2)
2. Спеціалізована техніка в

Лекція 1Області застосування мікроконтролерів (2)2. Спеціалізована техніка в ряді галузей медичні

ряді галузей
медичні прилади (електрокардіографи, тонометри, електронні

мікроскопи,…) aвіоніка сільське господарство автомобілебудування банкомати, платіжні термінали, “чіпові” кредитні картки рОботи у різних областях застосування …

Слайд 11 Лекція 1
Характеристики вбудованих систем

Конкретне призначення, на противагу до

Лекція 1Характеристики вбудованих системКонкретне призначення, на противагу до універсальності Апаратні обмеження:

універсальності Апаратні обмеження: обмежені обчислювальні можливості, енергоспоживання, обсяг пам’яті Програмні обмеження:

менші обсяги коду, відсутність ОС або «урізані» ОС Підвищені вимоги до якості і надійності (MISRA!)

Відмінності є умовними, межі між вбудованими системами і комп’ютерами з часом стираються


Слайд 12 Лекція 1
Мікроконтролери та мікропроцесори

Мікропроцесор –
Процесор “в мініатюрі”, основна

Лекція 1Мікроконтролери та мікропроцесориМікропроцесор –Процесор “в мініатюрі”, основна діяльність – читання/запис

діяльність – читання/запис даних з/у регістри та виконання арифметичних

і логічних дій над цими даними

Мікроконтролер –

Мікропроцесор + інтерфейсні схеми для взаємодії з пристроями вводу/виводу; “однокристальний комп’ютер”; “незалежний” чіп, підключаючи периферійні пристрої до якого і завантажуючи мікропрограму, можемо одержати логічно завершений пристрій

Пам’ять? Пристрої вводу/виводу?

Основна задача мікроконтролера, як і випливає з його назви, - управляти різноманітними електронними пристроями


Слайд 13 Лекція 1
Мікропрограмне забезпечення

Мікропрограма – (“прошивка”, мікропрограмне

Лекція 1Мікропрограмне забезпеченняМікропрограма – (“прошивка”,  мікропрограмне забезпечення, firmware)Вміст пам’яті програм

забезпечення, firmware)
Вміст пам’яті програм мікроконтролера, його програмне забезпечення. “Прошивкою” називають також: процес

запису firmware у пам’ять програм мікроконтролера; файл з програмою, готовий для запису у пам’ять мікроконтролера

Bootloader –

“Перепрошити” контролер можна різними способами, як замінивши контролер фізично, так і переписавши його пам’ять (за допомогою програматора або спеціальної програми – bootloader’а)

Логічно завершена мікропрограма, яка міститься у пам’яті програм мікроконтролера і слугує для завантаження його “прошивки” в інші ділянки пам’яті програм (типово для поновлення версії прошивки у “польових умовах”). “Прошивка” типово переписується із зовнішньої пам’яті, зокрема, USB флеш-пам’яті


Слайд 14 Лекція 1
Мікроконтролер

Класична аналогія: мікроконтролер – “мозок” пристрою, firmware

Лекція 1МікроконтролерКласична аналогія: мікроконтролер – “мозок” пристрою, firmware – його “свідомість”.

– його “свідомість”.
В залежності від задач до контролера

під’єднують ті чи інші периферійні пристрої.

Слайд 15 Лекція 1
ПЗП МК
Є масив комірок пам’яті. Кожна комірка

Лекція 1ПЗП МКЄ масив комірок пам’яті. Кожна комірка має свою адресу.

має свою адресу. У цих комірках “живуть” числа, що

є кодами команд, які здатний виконувати даний МК. Усе, що напише програміст мовою С (чи ще якоюсь мовою), перетворюється у послідовність кодів команд МК. Ця послідовність, власне, і міститься у firmware.

Кожній команді МК відповідає своє число.

МК при подачі на нього живлення послідовно зчитує коди команд, дешифрує їх (дізнається, яка команда ховається за цим кодом) і виконує команди почергово

В кожного МК – свій набір команд!

Слайд 16 Лекція 1
Будова мікроконтролера

Типовий контролер містить такий мінімум елементів:
CPU

Лекція 1Будова мікроконтролераТиповий контролер містить такий мінімум елементів:CPU (Арифметико-логічний пристрій (АЛП,

(Арифметико-логічний пристрій (АЛП, ALU), акумулятор, дешифратор команд);
ОЗП (оперативна

пам'ять);
ПЗП (постійна пам'ять);
Генератор тактової частоти;
Порти вводу/виводу;
Шини;
Таймери;
АЦП, ЦАП, аналоговий компаратор


Слайд 17 Лекція 1
АЛП

АЛП виконує послідовність команд почергово.
Команди зчитуються

Лекція 1АЛПАЛП виконує послідовність команд почергово. Команди зчитуються з ПЗП. Кожна

з ПЗП.
Кожна зчитана команда розміщується в регістрі команд.
АЛП

постійно перевіряє регістр команд. Коли цей регістр непустий, АЛП одразу починає виконувати команду.
Вміст ПЗП – послідовність команд – це мікропрограма, записана туди програмістом.

Арифметико-логічний пристрій (АЛП) –

“центральний пристрій” будь-якого мікроконтролера, здійснює арифметичні (додавання, віднімання, порівняння...) та логічні (“І”, “АБО”, “НЕ”, “виключне АБО”, зсув вправо, зсув вліво,...) операції над бінарними даними.


Слайд 18 Лекція 1
Цикл виконання команд

Лекція 1Цикл виконання команд

Слайд 19 Лекція 1
Лічильник команд

Для того, щоб “витягти” наступну команду

Лекція 1Лічильник командДля того, щоб “витягти” наступну команду в послідовності, застосовується

в послідовності, застосовується лічильник команд.
Лічильник команд –
регістр спеціального призначення,

що містить адресу наступної команди для виконання. Лічильник команд може читати чи записувати лише сам МК, не програміст.

Команда переходу? Переривання? Виклик функції?



Адреса наступної команди поміщається у стек Після обробки переривання чи виходу з функції ця адреса читається зі стека і основна програма продовжується

Якщо програма виконується лінійно, лічильник вказуватиме на кожну наступну команду.


Слайд 20 Лекція 1
Розрядність АЛП

Розрядність АЛП –
визначає, якими числами оперує

Лекція 1Розрядність АЛПРозрядність АЛП –визначає, якими числами оперує АЛП. Розрядність 16

АЛП. Розрядність 16 означає, що АЛП бере два 16-розрядні

операнди і повертає 16-розрядний результат. І операнди, і результат обчислення АЛП розміщуються у регістрі загального призначення

Регістр загального призначення –

оперативна (тимчасова) пам'ять, у якій АЛП зберігає те, з чим працює зараз, усі інші дані запам'ятовуються в ОЗП.

І операнди, і результат обчислення АЛП розміщуються у регістрі загального призначення.

Пам'ять поділена на комірки. Розмір комірки відповідає розрядності. Якщо розрядність 16, розмір комірки — 16 біт (2 байти). Кожна комірка має адресу.


Слайд 21 Лекція 1
Регістри

Регістри –
Комірки оперативної пам’яті, до яких МК

Лекція 1РегістриРегістри –Комірки оперативної пам’яті, до яких МК звертається більш короткими

звертається більш короткими і швидкими командами. В усьому іншому

регістри аналогічні іншим коміркам оперативної пам’яті

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

Банки регістрів – група регістрів, з якими можна працювати одночасно.
Можна “перемикатися” між банками, за допомогою регістра PSW (Program Status Word)


Слайд 22 Лекція 1
Порти вводу/виводу
Порт вводу/виводу МК –
іменована сукупність N

Лекція 1Порти вводу/виводуПорт вводу/виводу МК –іменована сукупність N виводів (синоніми виводу

виводів (синоніми виводу — пін, pin, “ніжка”), через кожен

з яких мікроконтролер може приймати або передавати сигнали. Число N може бути різним, наприклад, 8 чи 16. Імена портів — великі латинські літери — А, B, C, D, E.

Звернення до портів вводу/виводу завжди робиться через регістри портів вводу/виводу.

Виводи можуть бути налаштовані як на вихід, так і на вхід. Якщо потрібно зчитати дані (наприклад, від кнопок), порт конфігурують на вхід, якщо передати дані периферійним пристроям — на вихід.
Одні виводи одного і того ж порту можуть бути налаштовані на вихід, інші — на вхід.


Слайд 23 Лекція 1
Таймери/лічильники

Таймер –
пристрій для формування часових інтервалів; цифровий

Лекція 1Таймери/лічильникиТаймер –пристрій для формування часових інтервалів; цифровий лічильник, який рахує

лічильник, який рахує імпульси від внутрішнього генератора частоти або

від зовнішнього джерела сигналу.

Watchdog –

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


Слайд 24 Лекція 1
Додаткові функціональні блоки МК

Аналоговий компаратор –
пристрій для

Лекція 1Додаткові функціональні блоки МКАналоговий компаратор –пристрій для контролю напруги. Порівнює

контролю напруги. Порівнює виміряну напругу з опорною і: формує логічну

1, якщо виміряне значення більше за опорне; формує логічний 0 у протилежному випадку. Приклад застосування контроль часу завершення зарядки акумулятора

АЦП –

Аналого-цифровий перетворювач, пристрій для перетворення аналогового сигналу у цифрову форму

ЦАП –

Цифро-аналоговий перетворювач, пристрій для перетворення цифрового сигналу у аналогову форму


Слайд 25 Лекція 1
Шини мікроконтролера (1)
Функціональні блоки мікроконтролера обмінюються даними

Лекція 1Шини мікроконтролера (1)Функціональні блоки мікроконтролера обмінюються даними через шини. Зокрема,

через шини. Зокрема, дані з пам’яті в АЛП передаються через

шину.

Шина –

сукупність провідників, по яким передаються цифрові сигнали, середовище обміну даними між різними частинами МК

Розрядність шини –

кількість бітів, яку можна передати по шині одночасно

Мікроконтролер має: шину даних шину адреси шину управління


Слайд 26 Лекція 1
Шини мікроконтролера (2)
Функціональні блоки МК обмінюються даними

Лекція 1Шини мікроконтролера (2)Функціональні блоки МК обмінюються даними через шини. Зокрема,

через шини. Зокрема, дані з пам’яті в АЛП передаються через

шину.

Шина даних –

шина, призначена для передачі даних у двох напрямках. Мінімальна розрядність шини даних – 8.

Шина адреси –

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

Шина управління –

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

Що?

Звідки/куди?

Як?


Слайд 27 Лекція 1
Архітектури мікроконтролера (1)

Є сотні мікроконтролерів, але всі

Лекція 1Архітектури мікроконтролера (1)Є сотні мікроконтролерів, але всі їх можна поділити

їх можна поділити на групи. Мікроконтролери відрізняються за архітектурою. Архітектуру визначає

набір команд, які здатний виконувати мікроконтролер. Два мікроконтролери є однакової архітектури, якщо вони здатні виконувати один і той самий набір команд

Слайд 28 Лекція 1
Архітектури мікроконтролера (2)


Лекція 1Архітектури мікроконтролера (2)

Слайд 29 Лекція 1
Організація пам’яті (1)
2 архітектури: 1. прінстонська архітектура (архітектура

Лекція 1Організація пам’яті (1)2 архітектури: 1. прінстонська архітектура (архітектура фон Неймана)

фон Неймана) застосовує одну спільну шину для доступу

до програм і даних (доступ почерговий!) 2. гарвардська архітектура програми та дані розділені, шини різні (доступ може бути одночасний)

Причина застосовності гарвардської архітектури у МК – це те, що дані не вимагають стільки пам’яті, скільки програми.


Слайд 30 Лекція 1
Організація пам’яті (2)
Переваги гарвардської архітектури: 1. швидкий пошук

Лекція 1Організація пам’яті (2)Переваги гарвардської архітектури: 1. швидкий пошук операндів (даних).

операндів (даних). Оскільки дані є в окремому просторі пам’яті,

а не “змішані” з програмою, до них простіше звернутися. 2. менша довжина команди. Команди і дані “змішані”? => розмір команд зростає за рахунок збільшення розрядів для адресації операндів. Розділення команд і даних => зменшення довжини команд. 3. більша швидкість. Вибір наступної команди є одночасним з виконанням поточної команди.

Слайд 31 Лекція 1
Система команд МК (1)
RISC & CISC: 1. CISC-архітектура

Лекція 1Система команд МК (1)RISC & CISC: 1. CISC-архітектура (Complicated Instruction

(Complicated Instruction Set Computer) — архітектура зі складною системою

команд. СISC-архітектура заснована IBM, відомі приклади її застосування — X86 і Pentium (продукти Intel). 2. RISC-архітектура (Reduced Instruction Set Computer) — архітектура з обмеженим набором команд. Аналіз програм для МК => Принцип Парето (80% програм використовували 20% команд) => ідея RISC-архітектури Перший RISC-процесор був створений в університеті Берклі, він містив 31 команду.

Слайд 32 Лекція 1
Система команд МК (2)
RISC: 1. однаковий час виконання команд

Лекція 1Система команд МК (2)RISC: 1. однаковий час виконання команд (вибірка

(вибірка і виконання за один такт) 2. типово кожна команда

займає 1 комірку пам’яті 3. набір команд зведений до мінімуму, тож складну команду виконуємо декількома простими.

СISC: 1. різні команди мають різний час виконання (1..12 тактів) 2. в різних команд різний розмір, 1, 2, 3, рідше 4 байти 3. набір команд розвинений


Слайд 33 03.09.15 10:44
Лекція 1
Кроки створення мікропрограми
1. Написання програми однією

03.09.15 10:44Лекція 1Кроки створення мікропрограми1. Написання програми однією з мов 2.

з мов 2. Компіляція (може бути у декілька етапів) 3. Збірка

(linking)


(машинний код)
HEX, AXF для Keil


4. Запис машинного коду у ПЗП мікроконтролера

Програма специфічна для
мікроконтролера певного типу!

Кожен мікроконтролер “розуміє”
певний набір команд


Слайд 34 Лекція 1
Програматори

Лекція 1Програматори

Слайд 35 Лекція 1
Тактова частота мікроконтролера

Робота блоків залежить від того,

Лекція 1Тактова частота мікроконтролераРобота блоків залежить від того, чи вони отримують

чи вони отримують тактові сигнали. Нема тактування – нема

роботи.

Важливий параметр, для систем реального часу – критичний. Впливає на: швидкість роботи МК (кожна команда виконується певну кількість тактів, швидший такт – швидше виконається) роботу з периферією (USART, SPI,…), критично для USB


Слайд 36 Архітектура ARM



Продукт Acorn Computers, перший випуск — у

Архітектура ARMПродукт Acorn Computers, перший випуск — у 1982 р.Інтерпретація: Acorn

1982 р.

Інтерпретація: Acorn RISC Machine, Advanced RISC Machine

Мета та

ідея створення:
низьке енергоспоживання,
простота, мінімалізм

Базується на RISC

Компанія ARM Limited займається розробленням архітектур ARM та ліцензуванням, вироблення чіпів і масове виробництво — справа ліцензіатів



Слайд 37 Лекція 1
CMSIS
CMSIS –
Бібліотека, стандартна для всіх МК з

Лекція 1CMSISCMSIS –Бібліотека, стандартна для всіх МК з ядром ARM Cortex.

ядром ARM Cortex. Стандартизується ARM Limited. Різні виробники МК з

цим ядром доповнюють CMSIS файлами з описом периферійних модулів, специфічних для МК, які вони випускають Бібліотека надає доступ до периферійних модулів за допомогою елементів структур мовою С

Передумови виникнення CMSIS: Багато спільних апаратних ресурсів => різні реалізації взаємодії з ними, що роблять те саме, але по-різному, через відсутність стандартів => значні кошти на розробку firmware, бо потрібно організовувати зв’язок з hardware => компанія ARM зрозуміла, що пора виробити стандарт!


Слайд 38 Лекція 1
Структура CMSIS (концепція)

Лекція 1Структура CMSIS (концепція)

Слайд 39 Лекція 1
Функціональні рівні CMSIS
3 Рівні: 1. Core Peripheral Access

Лекція 1Функціональні рівні CMSIS3 Рівні: 1. Core Peripheral Access Layer (CPAL)

Layer (CPAL) – адреси і методи доступу до компонентів

для всіх МК на основі Cortex-M (регістри, NVIC,…) 2. Middleware Access Layer (MWAL) – API для периферії, специфічний для виробників 3. Device Peripheral Access Layer (DPAL)

Слайд 40 Лекція 1
Файли у складі CMSIS
2 частини: 1. спільна для

Лекція 1Файли у складі CMSIS2 частини: 1. спільна для всіх МК

всіх МК з однаковим ядром (Cortex): core_cm3.c + core_cm3.h,

містить глобальні оголошення та визначення 2. специфічна для виробника: system_<конкретний_МК>.с – визначення (definitions) + system_<конкретний_МК>.h – оголошення (declarations) + <конкретний_МК>.h – цей файл підключають у проект, він, у свою чергу, включає core_cm3.h і system_<конкретний_МК>.h , досить одного заголовного файлу верхнього рівня, решта “підтягуються”

для stm: system_stm32fxxx.c + system_stm32fxxx.h + stm32fxxx.h


Слайд 41 Лекція 1
Файли у складі CMSIS (2)
system_.h + system_.с

Лекція 1Файли у складі CMSIS (2)system_.h + system_.с конфігурація System Clock

конфігурація System Clock + настройки Flash + функція SystemInit,

яка викликається одразу після старту/перезапуску перед початком основної програми, виклик є у startup_stm32f2xx.s startup_stm32f2xx.s містить весь код, необхідний для запуску Cortex-M3 + вектори переривань

Слайд 42 Лекція 1
Startup
Містить: первинну ініціалізацію МК налаштування стека занулення секції BSS виклик функції

Лекція 1StartupМістить: первинну ініціалізацію МК налаштування стека занулення секції BSS виклик функції main

main


Слайд 43 Лекція 1
Оформлення коду у CMSIS
CMSIS дотримується Doxygen. Doxygen –

Лекція 1Оформлення коду у CMSISCMSIS дотримується Doxygen. Doxygen – система документування

система документування коду, написаного на С. Зокрема, для функцій: @brief –

стислий опис функції @param – детальний опис параметрів @return – детальний опис результатів, які повертає функція, після чого – детальний опис функції

Слайд 44 Лекція 1
CMSIS: stm32fxxx.h
Вміст файлу: структури з описом

Лекція 1CMSIS: stm32fxxx.h Вміст файлу: структури з описом периферійних модулів + макроси

периферійних модулів + макроси


Слайд 45 Лекція 1
Standard Peripherals Library (SPL)
SPL –
Бібліотека, створена STMicroelectronics

Лекція 1Standard Peripherals Library (SPL)SPL –Бібліотека, створена STMicroelectronics для полегшення доступу

для полегшення доступу до периферії МК stmXX.
Містить: 1. засоби звертання

до всіх регістрів, разом з їхніми виводами, мовою С 2. драйвери, написані у відповідності до MISRA C 2004 на Strict ANSI C (для забезпечення незалежності від засобів розробки), повністю документовані, кожен драйвер = (структури + набір функцій, створені строго за визначеними правилами) Крім того, STMicroelectronics пропонує ряд навчальний проектів, що показують застосування бібліотеки для вирішення типових задач

Слайд 46 Лекція 1
Архітектура SPL

Лекція 1Архітектура SPL

Слайд 47 Лекція 1
Структура бібліотеки SPL
Бібліотека SPL постачається у zip-архіві підкаталоги: CMSIS STM32Fxxx_StdPeriph_Driver

Лекція 1Структура бібліотеки SPLБібліотека SPL постачається у zip-архіві  підкаталоги: CMSIS STM32Fxxx_StdPeriph_Driver

Слайд 48 Лекція 1
SPL: STM32Fxxx_StdPeriph_Driver
підкаталоги: inc – заголовні файли драйверів src –

Лекція 1SPL: STM32Fxxx_StdPeriph_Driverпідкаталоги: inc – заголовні файли драйверів src – с-файли

с-файли драйверів Для будь-якого периферійного модуля є пара файлів (.h

у inc + .c у src), ім’я цих файлів складається з префіксу stm32fxxx, знаку “_” та імені периферії, наприклад: stm32fxxx_gpio.h, stm32fxxx_gpio.c – для роботи з портами вводу/виводу

Слайд 49 Лекція 1
Конфігурація/ініціалізація периферії (1)
Вся периферія описана структурами. Потрібні

Лекція 1Конфігурація/ініціалізація периферії (1)Вся периферія описана структурами. Потрібні кроки: 1. Підключити

кроки: 1. Підключити потрібний .h-файл 2. Створити екземпляр структури вигляду PPP_InitTypeDef (PPP

заміняє ім’я периферійного модуля): PPP-InitTypeDef PPPInitStructure; 3. Увімкнути тактування! Нема тактування – нема роботи. Усі модулі спочатку неактивні, енергії не споживають Тактування периферійного модуля вмикається однією з цих функцій: RCC_AHBPeriphClockCmd(RCC_AHBPeriph_PPPx, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_PPPx, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_PPPx, ENABLE);

Слайд 50 Лекція 1
Конфігурація/ініціалізація периферії (2)
Щоб знати, яку з 3

Лекція 1Конфігурація/ініціалізація периферії (2)Щоб знати, яку з 3 функцій для тактування

функцій для тактування слід викликати, потрібно знати, до якої

шини підключений периферійний модуль (інф-ія з документації або з файлу stm32f10x_rcc.с/h) із документації на функцію у стилі Doxygen видно, що може бути її параметром В ARM Cortex-M3 3 шини, шини даних і управління об’єднані у AHB (ARM Hi-Speed Bus). Пристрої вводу/виводу з’єднуються з AHB через проміжні шини (ARM Peripheral Bus) APB1 (швидкість нижча) и APB2 (швидкість вища). Типово пристрої, що працюють на меншій швидкості, під’єднані до APB1

Слайд 51 Лекція 1
Конфігурація/ініціалізація периферії (3)
4. Задати значення полям екземпляра

Лекція 1Конфігурація/ініціалізація периферії (3)4. Задати значення полям екземпляра структури 5. Викликати

структури 5. Викликати функцію PPP_Init(PPP, &PPP_InitStructure); На цьому ініціалізація завершена!

Для зміни конфігурації слід переприсвоїти значення полям екземпляра структури та повторно викликати функцію PPP_Init

Слайд 52 Лекція 1
Приклад конфігурації GPIO (1)

1. Функції і дані

Лекція 1Приклад конфігурації GPIO (1)1. Функції і дані для роботи з

для роботи з портами вводу/виводу загального призначення описані у

stm32fxxx_gpio.h/c, структура GPIO_InitTypedef міститься у stm32fxxx_gpio.h

2. Створення екземпляра структури:
GPIO_InitTypeDef GPIO_InitStructure


Слайд 53 Лекція 1
Приклад конфігурації GPIO (2)

3. Після увімкнення тактування

Лекція 1Приклад конфігурації GPIO (2)3. Після увімкнення тактування однією з функцій

однією з функцій RCC_APB2PeriphClockCmd, RCC_APB1PeriphClockCmd, RCC_APHPeriphClockCmd слід 4. задати значення

екземпляру структури, наприклад: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 5. і викликати GPIO_Init( GPIOC, &GPIO_InitStructure); Одним викликом RCC_APB2PeriphClockCmd можна ввімкнути тактування декількох модулів (звісно, підключених до тієї ж шини), через “або”: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC, ENABLE);

  • Имя файла: programuvannya-mіkrokontrolerіv-lektsіya-1-bazovі-ponyattya-programuvannya-mіkrokontrolerіv-bіblіoteki-cmsis-і-spl.pptx
  • Количество просмотров: 119
  • Количество скачиваний: 0