Эмулятор микроконтроллера ATtiny13A — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Строка 49: Строка 49:
 
* '''+2 балла'''. Реализована функциональность порта SPI. Взаимодействие с виртуальным портом осуществляется с использованием любого механизма межпроцессного взаимодействия Linux.
 
* '''+2 балла'''. Реализована функциональность порта SPI. Взаимодействие с виртуальным портом осуществляется с использованием любого механизма межпроцессного взаимодействия Linux.
  
=== Методические указания и полезные ссылки ===
+
== Методические указания и полезные ссылки ==
 
Для создания простых тестовых программ лучше использовать ассемблер, а не Си-компилятор.  
 
Для создания простых тестовых программ лучше использовать ассемблер, а не Си-компилятор.  
  
 
Руководство по ассемблеру AVR на русском языке: [http://radio-vtc.inf.ua/mps/Labs/comands_AVR.pdf здесь]
 
Руководство по ассемблеру AVR на русском языке: [http://radio-vtc.inf.ua/mps/Labs/comands_AVR.pdf здесь]
  
Компилятор AVRA доступен: [http://avra.sourceforge.net здесь]
+
Компилятор AVRA доступен [http://avra.sourceforge.net здесь], либо пакет avra в некоторых дистрибутивах Linux.
 +
 
 +
Результат работы компилятора AVRA -- это '''текстовый''' файл, который содержит HEX-коды для записи
 +
в Flash-память программатором. Формат этого файла описан [https://en.wikipedia.org/wiki/Intel_HEX здесь].

Версия 18:41, 16 октября 2015

Метаданные

ID проекта: attiny

Презентация проекта: http://1drv.ms/1VmeBQ0

Что это за проект

Введение

Микроконтроллеры - это системы на кристалле, которые содержат центральный процессор, оперативную память, Flash-память и набор перифирейных интерфейсов. Микроконтроллеры используются в различных бытовых и промышленных устройствах, - там, где не требуется высокая производительность процессора, но при этом нужно обеспечить низкую стоимость устройства и/или низкое энергопотребление.

Микроконтроллеры семейства AVR - одни из наиболее популярных (во многом, благодаря проекту Arduino). Они обладают восьмибитной архитектурой, работают на частоте от 1 до 16Мгц, а характерный объем оперативной памяти - от 64 байт до нескольких килобайт, в зависимости от серии и модели.

Что требуется

Реализовать эмулятор микроконтроллера ATtiny13A (это один из самых простых AVR-микроконтроллеров).

Подробное описание набора инструкций здесь.

Эмулятор должен уметь выполнять программы, подготовленные ассемблером avra, или компилятором GCC.

Чему вы научитесь (помимо разработки эмуляторов)

1. Уметь программировать на ассемблере и понимать его

2. Навыки кросс-компиляции

3. Понимание архитектуры "железа" вычислительных систем

Начальные требования

1. Владение техническим английским языком. Все спецификации доступны только на английском языке

2. Умение разрабатывать программы на Cи или C++

Критерии оценивания

Требования на зачет в конце 1-го модуля

Необходимо иметь работающий эмулятор, выполняющий простейшие команды, а также иметь возможность наблюдать (например, в виде отладочной информации) за значениями регистров.

Итоговая оценка

  • 4 балла. Эмулятор позволяет выполнять арифметические и управляющие команды, модифицирующиезначения регистров. В качестве входа принимается код, полученный с помощью ассемблера, результат работы - значения регистровпосле завершения выполнения программы
  • 6 балла. Эмулятор позволяет выполнять набор команд, позволяющий написать на ассемблере программы, которые который модифируют содержимое EEPROM-памяти
  • 8 баллов. Эмулятор поддерживает полный набор команд, позволяющий выполнять программы, полученные с помощью компилятора GCC
  • +1 балл. Реализована функциональность ввода-вывода с использованием портов общего назначения. Формат ввода-вывода для тестирования эмулятора: CSV-таблицы из двух столбцов, содержащие время наступления события, и значение сигнала
  • +2 балла. Реализована функциональность порта SPI. Взаимодействие с виртуальным портом осуществляется с использованием любого механизма межпроцессного взаимодействия Linux.

Методические указания и полезные ссылки

Для создания простых тестовых программ лучше использовать ассемблер, а не Си-компилятор.

Руководство по ассемблеру AVR на русском языке: здесь

Компилятор AVRA доступен здесь, либо пакет avra в некоторых дистрибутивах Linux.

Результат работы компилятора AVRA -- это текстовый файл, который содержит HEX-коды для записи в Flash-память программатором. Формат этого файла описан здесь.