Эмулятор микроконтроллера ATtiny13A
Содержание
Метаданные
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 доступен: здесь