14
Основы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers. Interrupts. CSCenter, 2017 Кирилл Кринкин

AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

  • Upload
    dokien

  • View
    286

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Основы программирования встраиваемых систем

AVR toolchain. AVR-Libc. Bootloader.Timers. Interrupts.

CSCenter, 2017

Кирилл Кринкин

Page 2: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Содержание

● Что скрывает Arduino IDE● Fuses● Bootloader● Timers● Interrupts

Page 3: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Что скрывает Arduino IDE (1)

● cat /usr/share/arduino/hardware/arduino/cores/arduino/main.cpp

Page 4: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Upload...

MySketch.inoMySketch.inoMySketch.ino

MySketch.inoMySketch.inoArduino.h

Arduino IDE,Preprocessor gcc avrdude

Sketch folder

core/arduino

Bootloader

Flash memory

US

B S

eria

l

Page 5: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Serial Downloading

Page 6: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Serial Peripheral Interface (SPI)

Page 7: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Fuse bytes (1)

Page 8: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Fuse bytes (2)

Page 9: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

In-System Programming (ISP)

● ISP – технология программирования и тестирования чипов, в “полевых” условиях (без демонтажа)

● JTAG – протокол (интерфейс) внутрисхемного программирования

● программатор – внешнее устройство реализующее протокол внутрисхемного программирования

● bootloader – программа, записанная в ПЗУ контроллера, выполняющая процесс обновления прошивки при определенных условиях

Page 10: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Внешние прерывания

Page 11: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Прерывания таймера

Page 12: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

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

Page 13: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Сборка и прошивка

Page 14: AVR toolchain. AVR-Libc. Bootloader. Timers. . · PDF fileОсновы программирования встраиваемых систем AVR toolchain. AVR-Libc. Bootloader. Timers

Источники

● 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-attiny85_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-attiny85_datasheet.pdf