SlideShare a Scribd company logo
Основы программирования встраиваемых систем
AVR toolchain. AVR-Libc. Bootloader.
Timers. Interrupts.
CSCenter, 2017
Кирилл Кринкин
Содержание
● Что скрывает Arduino IDE
● Fuses
● Bootloader
● Timers
● Interrupts
Что скрывает Arduino IDE (1)
● cat /usr/share/arduino/hardware/arduino/cores/arduino/main.cpp
Upload...
MySketch.inoMySketch.ino
MySketch.ino
MySketch.inoMySketch.ino
Arduino.h
Arduino IDE,
Preprocessor
gcc avrdude
Sketch folder
core/arduino
Bootloader
Flash memory
USBSerial
Serial Downloading
Serial Peripheral Interface (SPI)
Fuse bytes (1)
Fuse bytes (2)
In-System Programming (ISP)
● ISP – технология программирования и тестирования
чипов, в “полевых” условиях (без демонтажа)
● JTAG – протокол (интерфейс) внутрисхемного
программирования
● программатор – внешнее устройство реализующее
протокол внутрисхемного программирования
● bootloader – программа, записанная в ПЗУ
контроллера, выполняющая процесс обновления
прошивки при определенных условиях
●
Внешние прерывания
Прерывания таймера
Installation gcc-avr
● apt-get install
– gcc-avr - GNU C compiler (cross compiler for avr)
– avra - assembler for Atmel AVR microcontrollers
– gdb-avr - GNU Debugger for avr
– avrdude - software for programming Atmel AVR
– simulavr - Atmel AVR simulator
Сборка и прошивка
Источники
● http://www.nongnu.org/avr-libc
● S.Monk Programming Arduino. Next Steps
● https://www.arduino.cc/en/hacking/bootloader
● http://www.atmel.com/webdoc/avrlibcreferencemanual/
● http://www.atmel.com/images/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-a
ttiny85_datasheet.pdf
● https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader
● http://chipenable.ru/index.php/programming-avr/item/140-bootloader-avr-xmega.html
● http://www.atmel.com/images/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-a
ttiny85_datasheet.pdf

More Related Content

What's hot

NeoQUEST: небесполезный Pc speaker
NeoQUEST: небесполезный Pc speakerNeoQUEST: небесполезный Pc speaker
NeoQUEST: небесполезный Pc speaker
Neo_QUEST
 
Робототехника для прикладных программистов
Робототехника для прикладных программистовРобототехника для прикладных программистов
Робототехника для прикладных программистов
DotNetConf
 
Series a manual_rus
Series a manual_rusSeries a manual_rus
Series a manual_rusarpisz1
 
Expertise LoThings
Expertise LoThingsExpertise LoThings
Expertise LoThings
lothings
 
Средства защиты информации на базе технологии rfid
Средства защиты информации на базе технологии rfidСредства защиты информации на базе технологии rfid
Средства защиты информации на базе технологии rfid
Ancud Ltd.
 
Что нового в NOVA Microhypervisor
Что нового в NOVA MicrohypervisorЧто нового в NOVA Microhypervisor
Что нового в NOVA Microhypervisor
Yandex
 
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
Andrey Somsikov
 
Каталог регистраторов для видеонаблюдения Grizzly, сентябрь 2012
Каталог регистраторов для видеонаблюдения Grizzly, сентябрь 2012Каталог регистраторов для видеонаблюдения Grizzly, сентябрь 2012
Каталог регистраторов для видеонаблюдения Grizzly, сентябрь 2012
Natalia Po
 
Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?
Maxim Krentovskiy
 
Конференция «Бизнес-ориентированный центр обработки данных». 21 мая 2015 г. С...
Конференция «Бизнес-ориентированный центр обработки данных». 21 мая 2015 г. С...Конференция «Бизнес-ориентированный центр обработки данных». 21 мая 2015 г. С...
Конференция «Бизнес-ориентированный центр обработки данных». 21 мая 2015 г. С...
Fujitsu Russia
 
Ruby для встраиваемых устройств / Петр Зотов (Evil Martians)
Ruby для встраиваемых устройств / Петр Зотов (Evil Martians)Ruby для встраиваемых устройств / Петр Зотов (Evil Martians)
Ruby для встраиваемых устройств / Петр Зотов (Evil Martians)Ontico
 
Доверенные носители информации
Доверенные носители информацииДоверенные носители информации
Доверенные носители информации
Ancud Ltd.
 

What's hot (13)

экзамен технолаб
экзамен технолабэкзамен технолаб
экзамен технолаб
 
NeoQUEST: небесполезный Pc speaker
NeoQUEST: небесполезный Pc speakerNeoQUEST: небесполезный Pc speaker
NeoQUEST: небесполезный Pc speaker
 
Робототехника для прикладных программистов
Робототехника для прикладных программистовРобототехника для прикладных программистов
Робототехника для прикладных программистов
 
Series a manual_rus
Series a manual_rusSeries a manual_rus
Series a manual_rus
 
Expertise LoThings
Expertise LoThingsExpertise LoThings
Expertise LoThings
 
Средства защиты информации на базе технологии rfid
Средства защиты информации на базе технологии rfidСредства защиты информации на базе технологии rfid
Средства защиты информации на базе технологии rfid
 
Что нового в NOVA Microhypervisor
Что нового в NOVA MicrohypervisorЧто нового в NOVA Microhypervisor
Что нового в NOVA Microhypervisor
 
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
процессоры Intel® core™ 3 го поколения возможности для создания приложений в ...
 
Каталог регистраторов для видеонаблюдения Grizzly, сентябрь 2012
Каталог регистраторов для видеонаблюдения Grizzly, сентябрь 2012Каталог регистраторов для видеонаблюдения Grizzly, сентябрь 2012
Каталог регистраторов для видеонаблюдения Grizzly, сентябрь 2012
 
Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?Virt2real - есть ли жизнь в железе?
Virt2real - есть ли жизнь в железе?
 
Конференция «Бизнес-ориентированный центр обработки данных». 21 мая 2015 г. С...
Конференция «Бизнес-ориентированный центр обработки данных». 21 мая 2015 г. С...Конференция «Бизнес-ориентированный центр обработки данных». 21 мая 2015 г. С...
Конференция «Бизнес-ориентированный центр обработки данных». 21 мая 2015 г. С...
 
Ruby для встраиваемых устройств / Петр Зотов (Evil Martians)
Ruby для встраиваемых устройств / Петр Зотов (Evil Martians)Ruby для встраиваемых устройств / Петр Зотов (Evil Martians)
Ruby для встраиваемых устройств / Петр Зотов (Evil Martians)
 
Доверенные носители информации
Доверенные носители информацииДоверенные носители информации
Доверенные носители информации
 

Similar to 03 - Программирование микроконтроллеров. Загрузчик. Прерывания и таймеры

02 - Программирование микроконтроллеров. Arduino. Основные сведения
02 - Программирование микроконтроллеров. Arduino. Основные сведения02 - Программирование микроконтроллеров. Arduino. Основные сведения
02 - Программирование микроконтроллеров. Arduino. Основные сведения
Roman Brovko
 
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel EdisonInternet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
CodeFest
 
Bionic arduino class1_russian
Bionic arduino class1_russianBionic arduino class1_russian
Bionic arduino class1_russian
srgksch
 
Ardi
ArdiArdi
Опыт внедрения Docker .
 Опыт внедрения Docker .  Опыт внедрения Docker .
Опыт внедрения Docker .
phpfriendsclub
 
Российская операционная система реального времени для микроконтроллеров, с по...
Российская операционная система реального времени для микроконтроллеров, с по...Российская операционная система реального времени для микроконтроллеров, с по...
Российская операционная система реального времени для микроконтроллеров, с по...
CEE-SEC(R)
 
Максим Салов - Отладочный монитор
Максим Салов - Отладочный мониторМаксим Салов - Отладочный монитор
Максим Салов - Отладочный монитор
Minsk Linux User Group
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON
 
Автоматизация отладки в windbg
Автоматизация отладки в windbgАвтоматизация отладки в windbg
Автоматизация отладки в windbg
Positive Hack Days
 
Linux drivers
Linux driversLinux drivers
Linux drivers
Alexander Gerasiov
 
Галлямшин В. "Нестандартные решения при выполнении требований законодательств...
Галлямшин В. "Нестандартные решения при выполнении требований законодательств...Галлямшин В. "Нестандартные решения при выполнении требований законодательств...
Галлямшин В. "Нестандартные решения при выполнении требований законодательств...
Expolink
 
IntelliJ IDEA: architecture, performance, development process
IntelliJ IDEA: architecture, performance, development processIntelliJ IDEA: architecture, performance, development process
IntelliJ IDEA: architecture, performance, development processchashnikov
 
Лабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим ИпполитовЛабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим Ипполитов
DevDay
 
Программирование микроконтроллеров для управления роботами
Программирование микроконтроллеров для управления роботамиПрограммирование микроконтроллеров для управления роботами
Программирование микроконтроллеров для управления роботами
Anton Moiseev
 
14. SPI STM32
14. SPI  STM3214. SPI  STM32
14. SPI STM32
KamlachPV
 
Arduino и бионика (Bionic Arduino). Часть 1. Введение, цифровые входы, перекл...
Arduino и бионика (Bionic Arduino). Часть 1. Введение, цифровые входы, перекл...Arduino и бионика (Bionic Arduino). Часть 1. Введение, цифровые входы, перекл...
Arduino и бионика (Bionic Arduino). Часть 1. Введение, цифровые входы, перекл...
Tatiana Volkova
 
Materinskaya plata ppt
Materinskaya plata pptMaterinskaya plata ppt
Materinskaya plata ppt
KozinskaIS
 
04.01 gpfix GeoTracker
04.01 gpfix GeoTracker04.01 gpfix GeoTracker
04.01 gpfix GeoTracker
Alexander Chemeris
 
Модуль доверенной загрузки "Соболь". Новая версия флагманского продукта
Модуль доверенной загрузки "Соболь".  Новая версия флагманского продукта  Модуль доверенной загрузки "Соболь".  Новая версия флагманского продукта
Модуль доверенной загрузки "Соболь". Новая версия флагманского продукта
Security Code Ltd.
 
Александр Бабаев — Работа с ускорением app code.
Александр Бабаев — Работа с ускорением app code. Александр Бабаев — Работа с ускорением app code.
Александр Бабаев — Работа с ускорением app code. Yandex
 

Similar to 03 - Программирование микроконтроллеров. Загрузчик. Прерывания и таймеры (20)

02 - Программирование микроконтроллеров. Arduino. Основные сведения
02 - Программирование микроконтроллеров. Arduino. Основные сведения02 - Программирование микроконтроллеров. Arduino. Основные сведения
02 - Программирование микроконтроллеров. Arduino. Основные сведения
 
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel EdisonInternet Of Things: возможности Intel Galileo gen 2 и Intel Edison
Internet Of Things: возможности Intel Galileo gen 2 и Intel Edison
 
Bionic arduino class1_russian
Bionic arduino class1_russianBionic arduino class1_russian
Bionic arduino class1_russian
 
Ardi
ArdiArdi
Ardi
 
Опыт внедрения Docker .
 Опыт внедрения Docker .  Опыт внедрения Docker .
Опыт внедрения Docker .
 
Российская операционная система реального времени для микроконтроллеров, с по...
Российская операционная система реального времени для микроконтроллеров, с по...Российская операционная система реального времени для микроконтроллеров, с по...
Российская операционная система реального времени для микроконтроллеров, с по...
 
Максим Салов - Отладочный монитор
Максим Салов - Отладочный мониторМаксим Салов - Отладочный монитор
Максим Салов - Отладочный монитор
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
 
Автоматизация отладки в windbg
Автоматизация отладки в windbgАвтоматизация отладки в windbg
Автоматизация отладки в windbg
 
Linux drivers
Linux driversLinux drivers
Linux drivers
 
Галлямшин В. "Нестандартные решения при выполнении требований законодательств...
Галлямшин В. "Нестандартные решения при выполнении требований законодательств...Галлямшин В. "Нестандартные решения при выполнении требований законодательств...
Галлямшин В. "Нестандартные решения при выполнении требований законодательств...
 
IntelliJ IDEA: architecture, performance, development process
IntelliJ IDEA: architecture, performance, development processIntelliJ IDEA: architecture, performance, development process
IntelliJ IDEA: architecture, performance, development process
 
Лабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим ИпполитовЛабиринт на Arduino, Вадим Ипполитов
Лабиринт на Arduino, Вадим Ипполитов
 
Программирование микроконтроллеров для управления роботами
Программирование микроконтроллеров для управления роботамиПрограммирование микроконтроллеров для управления роботами
Программирование микроконтроллеров для управления роботами
 
14. SPI STM32
14. SPI  STM3214. SPI  STM32
14. SPI STM32
 
Arduino и бионика (Bionic Arduino). Часть 1. Введение, цифровые входы, перекл...
Arduino и бионика (Bionic Arduino). Часть 1. Введение, цифровые входы, перекл...Arduino и бионика (Bionic Arduino). Часть 1. Введение, цифровые входы, перекл...
Arduino и бионика (Bionic Arduino). Часть 1. Введение, цифровые входы, перекл...
 
Materinskaya plata ppt
Materinskaya plata pptMaterinskaya plata ppt
Materinskaya plata ppt
 
04.01 gpfix GeoTracker
04.01 gpfix GeoTracker04.01 gpfix GeoTracker
04.01 gpfix GeoTracker
 
Модуль доверенной загрузки "Соболь". Новая версия флагманского продукта
Модуль доверенной загрузки "Соболь".  Новая версия флагманского продукта  Модуль доверенной загрузки "Соболь".  Новая версия флагманского продукта
Модуль доверенной загрузки "Соболь". Новая версия флагманского продукта
 
Александр Бабаев — Работа с ускорением app code.
Александр Бабаев — Работа с ускорением app code. Александр Бабаев — Работа с ускорением app code.
Александр Бабаев — Работа с ускорением app code.
 

More from Roman Brovko

Individual task Networking
Individual task NetworkingIndividual task Networking
Individual task Networking
Roman Brovko
 
Networking essentials lect3
Networking essentials lect3Networking essentials lect3
Networking essentials lect3
Roman Brovko
 
Gl embedded starterkit_ethernet
Gl embedded starterkit_ethernetGl embedded starterkit_ethernet
Gl embedded starterkit_ethernet
Roman Brovko
 
Networking essentials lect2
Networking essentials lect2Networking essentials lect2
Networking essentials lect2
Roman Brovko
 
Networking essentials lect1
Networking essentials lect1Networking essentials lect1
Networking essentials lect1
Roman Brovko
 
Bare metal training_07_spi_flash
Bare metal training_07_spi_flashBare metal training_07_spi_flash
Bare metal training_07_spi_flash
Roman Brovko
 
Bare metal training_06_I2C
Bare metal training_06_I2CBare metal training_06_I2C
Bare metal training_06_I2C
Roman Brovko
 
Glesk worshop
Glesk worshopGlesk worshop
Glesk worshop
Roman Brovko
 
Bare metal training_05_uart
Bare metal training_05_uartBare metal training_05_uart
Bare metal training_05_uart
Roman Brovko
 
Bare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensorBare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensor
Roman Brovko
 
Bare metal training_03_timers_pwm
Bare metal training_03_timers_pwmBare metal training_03_timers_pwm
Bare metal training_03_timers_pwm
Roman Brovko
 
Bare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttonsBare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttons
Roman Brovko
 
Bare metal training_01_hello_world
Bare metal training_01_hello_worldBare metal training_01_hello_world
Bare metal training_01_hello_world
Roman Brovko
 
Bare metal training_00_prerequisites
Bare metal training_00_prerequisitesBare metal training_00_prerequisites
Bare metal training_00_prerequisites
Roman Brovko
 
C language lect_23_advanced
C language lect_23_advancedC language lect_23_advanced
C language lect_23_advanced
Roman Brovko
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advanced
Roman Brovko
 
C language lect_21_advanced
C language lect_21_advancedC language lect_21_advanced
C language lect_21_advanced
Roman Brovko
 
подготовка рабочего окружения
подготовка рабочего окруженияподготовка рабочего окружения
подготовка рабочего окружения
Roman Brovko
 
C language lect_20_advanced
C language lect_20_advancedC language lect_20_advanced
C language lect_20_advanced
Roman Brovko
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basics
Roman Brovko
 

More from Roman Brovko (20)

Individual task Networking
Individual task NetworkingIndividual task Networking
Individual task Networking
 
Networking essentials lect3
Networking essentials lect3Networking essentials lect3
Networking essentials lect3
 
Gl embedded starterkit_ethernet
Gl embedded starterkit_ethernetGl embedded starterkit_ethernet
Gl embedded starterkit_ethernet
 
Networking essentials lect2
Networking essentials lect2Networking essentials lect2
Networking essentials lect2
 
Networking essentials lect1
Networking essentials lect1Networking essentials lect1
Networking essentials lect1
 
Bare metal training_07_spi_flash
Bare metal training_07_spi_flashBare metal training_07_spi_flash
Bare metal training_07_spi_flash
 
Bare metal training_06_I2C
Bare metal training_06_I2CBare metal training_06_I2C
Bare metal training_06_I2C
 
Glesk worshop
Glesk worshopGlesk worshop
Glesk worshop
 
Bare metal training_05_uart
Bare metal training_05_uartBare metal training_05_uart
Bare metal training_05_uart
 
Bare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensorBare metal training_04_adc_temp_sensor
Bare metal training_04_adc_temp_sensor
 
Bare metal training_03_timers_pwm
Bare metal training_03_timers_pwmBare metal training_03_timers_pwm
Bare metal training_03_timers_pwm
 
Bare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttonsBare metal training_02_le_ds_and_buttons
Bare metal training_02_le_ds_and_buttons
 
Bare metal training_01_hello_world
Bare metal training_01_hello_worldBare metal training_01_hello_world
Bare metal training_01_hello_world
 
Bare metal training_00_prerequisites
Bare metal training_00_prerequisitesBare metal training_00_prerequisites
Bare metal training_00_prerequisites
 
C language lect_23_advanced
C language lect_23_advancedC language lect_23_advanced
C language lect_23_advanced
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advanced
 
C language lect_21_advanced
C language lect_21_advancedC language lect_21_advanced
C language lect_21_advanced
 
подготовка рабочего окружения
подготовка рабочего окруженияподготовка рабочего окружения
подготовка рабочего окружения
 
C language lect_20_advanced
C language lect_20_advancedC language lect_20_advanced
C language lect_20_advanced
 
C language lect_19_basics
C language lect_19_basicsC language lect_19_basics
C language lect_19_basics
 

03 - Программирование микроконтроллеров. Загрузчик. Прерывания и таймеры