<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%AD%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_ATtiny13A</id>
	<title>Эмулятор микроконтроллера ATtiny13A - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%AD%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_ATtiny13A"/>
	<link rel="alternate" type="text/html" href="https://wikicshse.ru/index.php?title=%D0%AD%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_ATtiny13A&amp;action=history"/>
	<updated>2026-06-06T13:31:52Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wikicshse.ru/index.php?title=%D0%AD%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_ATtiny13A&amp;diff=2570&amp;oldid=prev</id>
		<title>imported&gt;Vyacovlev: Migrated current public revision from wiki.cs.hse.ru</title>
		<link rel="alternate" type="text/html" href="https://wikicshse.ru/index.php?title=%D0%AD%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D0%B0_ATtiny13A&amp;diff=2570&amp;oldid=prev"/>
		<updated>2015-12-19T10:26:53Z</updated>

		<summary type="html">&lt;p&gt;Migrated current public revision from wiki.cs.hse.ru&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Метаданные ==&lt;br /&gt;
ID проекта: &amp;#039;&amp;#039;&amp;#039;attiny&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Презентация проекта: http://1drv.ms/1VmeBQ0&lt;br /&gt;
&lt;br /&gt;
Ментор проекта: Виктор Яковлев&lt;br /&gt;
&lt;br /&gt;
Аккаунты ментора в git-сервисах:&lt;br /&gt;
&lt;br /&gt;
* [http://GitHub.com GitHub.com]: victor-yacovlev&lt;br /&gt;
* [http://GitLab.com GitLab.com]: v-yacovlev&lt;br /&gt;
* [http://BitBucket.org BitBucket.org]: victor_yacovlev&lt;br /&gt;
&lt;br /&gt;
== Что это за проект ==&lt;br /&gt;
&lt;br /&gt;
=== Введение ===&lt;br /&gt;
Микроконтроллеры - это системы на кристалле, которые содержат центральный процессор,&lt;br /&gt;
оперативную память, Flash-память и набор перифирейных интерфейсов. &lt;br /&gt;
Микроконтроллеры используются в различных бытовых и промышленных устройствах, - там,&lt;br /&gt;
где не требуется высокая производительность процессора, но при этом нужно обеспечить&lt;br /&gt;
низкую стоимость устройства и/или низкое энергопотребление.&lt;br /&gt;
&lt;br /&gt;
Микроконтроллеры семейства AVR - одни из наиболее популярных (во многом, благодаря проекту&lt;br /&gt;
Arduino). Они обладают восьмибитной&lt;br /&gt;
архитектурой, работают на частоте от 1 до 16Мгц, а характерный объем оперативной памяти &lt;br /&gt;
- от 64 байт до нескольких килобайт, в зависимости от серии и модели.&lt;br /&gt;
&lt;br /&gt;
=== Что требуется ===&lt;br /&gt;
Реализовать эмулятор микроконтроллера [http://www.atmel.com/ru/ru/Images/doc8126.pdf ATtiny13A] (это один из самых простых AVR-микроконтроллеров). &lt;br /&gt;
&lt;br /&gt;
Подробное описание набора инструкций [http://www.atmel.com/images/Atmel-0856-AVR-Instruction-Set-Manual.pdf здесь].&lt;br /&gt;
&lt;br /&gt;
Эмулятор должен уметь выполнять программы, подготовленные ассемблером avra, или компилятором GCC.&lt;br /&gt;
&lt;br /&gt;
== Чему вы научитесь (помимо разработки эмуляторов) ==&lt;br /&gt;
1. Уметь программировать на ассемблере и понимать его&lt;br /&gt;
&lt;br /&gt;
2. Навыки кросс-компиляции&lt;br /&gt;
&lt;br /&gt;
3. Понимание архитектуры &amp;quot;железа&amp;quot; вычислительных систем&lt;br /&gt;
&lt;br /&gt;
== Начальные требования ==&lt;br /&gt;
1. Владение техническим английским языком. Все спецификации доступны &amp;#039;&amp;#039;&amp;#039;только&amp;#039;&amp;#039;&amp;#039; на английском языке&lt;br /&gt;
&lt;br /&gt;
2. Умение разрабатывать программы на Cи или C++&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания ==&lt;br /&gt;
&lt;br /&gt;
=== Первая контрольная точка (24 октября 2015 г.) ===&lt;br /&gt;
Необходимо иметь git-репозиторий с проектом, в который приглашен ментор. В репозитории должно быть:&lt;br /&gt;
* Файл README.md, который содержит описание проекта, написанный в расчета на &amp;quot;конечного пользователя&amp;quot;. Это описание должно быть написано &amp;#039;&amp;#039;&amp;#039;самостоятельно&amp;#039;&amp;#039;&amp;#039;, а не скопировано из Wiki, и отражать Ваше понимание того, что нужно сделать.&lt;br /&gt;
* Скелет реализации, то есть заготовки необходимых модулей и классов. Можно реализовать выполнение одной-двух команд, тогда станет понятна примерная структура проекта.&lt;br /&gt;
* Для тех, кто реализует проект на C++, - проектный файл CMakeLists.txt.&lt;br /&gt;
&lt;br /&gt;
=== Вторая контрольная точка (14 ноября 2015 г.) ===&lt;br /&gt;
Необходимо иметь работающий эмулятор, выполняющий простейшие команды, а также иметь возможность наблюдать (например, в виде отладочной информации) за значениями регистров. Должна быть реализована загрузка содержимого flash-памяти из файла.&lt;br /&gt;
&lt;br /&gt;
=== Итоговая оценка ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;4 балла&amp;#039;&amp;#039;&amp;#039;. Эмулятор позволяет выполнять арифметические и управляющие команды, модифицирующие значения регистров. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;6 баллов&amp;#039;&amp;#039;&amp;#039;. Реализована возможность выполнения программ, полученных с помощью компилятора AVRA.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;8 баллов&amp;#039;&amp;#039;&amp;#039;. Эмулятор позволяет выполнять набор команд, позволяющий написать на ассемблере программы,  которые читают содержимое EEPROM-памяти&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;10 баллов&amp;#039;&amp;#039;&amp;#039;. Эмулятор позволяет выполнять набор команд, позволяющий написать на ассемблере программы,  которые который модифируют содержимое EEPROM-памяти&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+2 балла&amp;#039;&amp;#039;&amp;#039;. Эмулятор поддерживает полный набор команд, позволяющий выполнять программы, полученные с помощью компилятора GCC&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+1 балл&amp;#039;&amp;#039;&amp;#039;. Реализована функциональность ввода-вывода с использованием портов общего назначения. Формат ввода-вывода для тестирования эмулятора: CSV-таблицы из двух столбцов, содержащие время наступления события, и значение сигнала&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+2 балла&amp;#039;&amp;#039;&amp;#039;. Реализована функциональность порта SPI. Взаимодействие с виртуальным портом осуществляется с использованием любого механизма межпроцессного взаимодействия Linux.&lt;br /&gt;
&lt;br /&gt;
== Методические указания и полезные ссылки ==&lt;br /&gt;
Для создания простых тестовых программ лучше использовать ассемблер, а не Си-компилятор. &lt;br /&gt;
&lt;br /&gt;
Руководство по ассемблеру AVR на русском языке: [http://radio-vtc.inf.ua/mps/Labs/comands_AVR.pdf здесь]&lt;br /&gt;
&lt;br /&gt;
Компилятор AVRA доступен [http://avra.sourceforge.net здесь], либо пакет avra в некоторых дистрибутивах Linux.&lt;br /&gt;
&lt;br /&gt;
Результат работы компилятора AVRA -- это &amp;#039;&amp;#039;&amp;#039;текстовый&amp;#039;&amp;#039;&amp;#039; файл, который содержит HEX-коды для записи &lt;br /&gt;
в Flash-память программатором. Формат этого файла описан [https://en.wikipedia.org/wiki/Intel_HEX здесь].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Материалы с семинара 07 ноября 2015 ===&lt;br /&gt;
Материалы выложены на [https://yadi.sk/d/xN7FJuLDkKmas Яндекс.Диске]&lt;/div&gt;</summary>
		<author><name>imported&gt;Vyacovlev</name></author>
	</entry>
</feed>