Эмулятор микроконтроллера ATtiny13A — различия между версиями
Vyacovlev (обсуждение | вклад) (Создан текст проекта) |
Vyacovlev (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | == Метаданные == | ||
+ | ID проекта: '''attiny''' | ||
+ | |||
+ | Презентация проекта: http://1drv.ms/1VmeBQ0 | ||
+ | |||
== Что это за проект == | == Что это за проект == | ||
Версия 19:23, 28 сентября 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.