Начальная

Windows Commander

Far
WinNavigator
Frigate
Norton Commander
WinNC
Dos Navigator
Servant Salamander
Turbo Browser

Winamp, Skins, Plugins
Необходимые Утилиты
Текстовые редакторы
Юмор

File managers and best utilites

Эмулятор микроконтроллера ATtiny13A. Эмулятор микроконтроллера


Программный симулятор микроконтроллеров ARM в Eclipse » Схемотехника

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

Например, печатная плата устройства отдана на подготовку к производству, а времени ждатьготовое устройство для тестирования на нем программного обеспечения нет.

В таких случаях для оценки работоспособности ПО можно воспользоваться программным симулятором целевого микроконтроллера.

Для интегрированной среды разработки Eclipse CDT в качестве программного симулятора микроконтроллеров ARM можно использовать симулятор (или виртуальную машину,если быть точным) qemu-arm с интерфейсом командной строки.

Сразу хочу обрадовать пользователей операционной системы Linux( Fedora Electronic Lab ) – этот симулятор уже установлен в базовой версии FEL. Проверить наличие симулятора в Вашей Linux-системе, а заодно и просмотреть список поддерживаемых микроконтроллеров, можно следующим образом:

В ответ на эту команду симулятор выдаст на экран список поддерживаемых микроконтроллеров:

Available CPUs: arm926 arm946 arm1026 arm1136 arm1136-r2 arm11mpcore cortex-m3 cortex-a8 cortex-a9 ti925t pxa250 pxa255 pxa260 pxa261 pxa262 pxa270 pxa270-a0 pxa270-a1 pxa270-b0 pxa270-b1 pxa270-c0 pxa270-c5 any

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

Итак, сначала рассмотрим механизм подключения симулятора к Eclipse.Он принципиально ничем не отличается от механизма подключения FTDI JTAG адаптера.Коротко напомню, что при подключении адаптера FTDI JTAG мы запускали программный сервер OpenOCD, который непосредственно управлял адаптером.

Клиенсткую часть ПО представлял отладчик arm-none-eabi-gdb,который с одной стороны имел программный интерфейс с OpenOCD, а с другой – интерфейс с плагином отладки Eclipse. Тестирование связки OpenOCD + arm-none-eabi-gdb мы проводили из коммандной строки (в Linux и Windows).

Так вот при использовании симулятора структура взаимодействия компонентов системы отладки остается абсолютна та же.Вместо программного сервера OpenOCD при симуляции используется виртуальная машинаqemu-arm.

Для проверки симулятора нам понадобится готовый образ ПО для микроконтроллера STM32F103(elf-файл).Возмем этот образ из каталога /out проекта CMSIS_example.Можно просто перейти в этот каталог:

$su password #cd /root/workspace/CMSIS_example/out

Далее запустим виртуальную машину с образом нашей программы:

#qemu-arm -cpu cortex-m3 -B 0x08000000 -g 1234 CMSIS_example.out

Программа после запуска будет ожидать соединения с arm-none-eabi-gdb на порту номер 1234.

Следующим шагом для нас будет запуск клиентской части – отладчика arm-none-eabi-gdb. Для его запуска откроем новое окно терминала и получим права root:

$su password #cd /root/workspace/CMSIS_example/out #arm-none-eabi-gdb CMSIS_example.out (gdb) target remote localhost:1234 (gdb) break main (gdb) continue (gdb) step (gdb) info all-registers

В результате выполнения последней команды на экран будет выведено содержание внутренних регистров ядра микроконтроллера STM32F103:

r0 0x0 0 r1 0x3807f024 0x940044324 r2 0x20000158 0x536871256 r3 0x20000158 0x536871256 r4 0x0 0 r5 0x0 0 r6 0x0 0 r7 0x3807ee48 0x940043848 r8 0x0 0 r9 0x0 0 r10 0x20000000 0x536870912 r11 0x0 0 r12 0x0 0 sp 0x3807ee48 0x3807ee48 lr 0xcd 205 pc 0xb8 0xb8 [init_all+4] cpsr 0x60000030 0x1610612784

После успешной проверки работы симулятора в командной строке выполним настройку и запуск в интегрированной среде разработки Eclipse.Аналогично настройке OpenOCD настроим запуск внешней по отношению к Eclipse программы qemu-arm. Для этого зайдем в пункт меню Run->External Tools-> External Tools Configurations… и выполним настройки, как показано на следующем рисунке.

Для настройки конфигурации gdb заходим в меню Run-> Debug Configurations… и заполняем необходимые пункты в соответствии со следующимирисунками.

Теперь все готово к запуску отладки программы с помощью программного симулятора. Выполняем сначала запуск qemu-arm нажатием Run->External Tools->qemu-arm-config, потом жмем Run->Debug(F11) для запуска отладчика arm-none-eabi-gdb.

Программа начнет выполнение(точнее симуляцию работы) с функции main(),поскольку мы поставили точку останова на входе в эту функцию. Далее можно выполнить пошаговое выполнение нажатием на клавишу «Step Info» на панели отладки или на функциональную клавишу F5.

«Дошагав» до функции LED_Config() буквально через пару шагов симуляция закончиться ошибкой. Ошибка эта связана с ображением к внутренним регистрам периферии микроконтроллера STM32F103RB, о которой наш симулятор совершенно ничего не знает.

Вспомните, ведь мы задали в опции -mcu cortex-m3, тоесть для отладки доступны лишь регистры ядра микроконтроллера STM32F103RB.Одним из вариантов того, как можно обойти данную ситуацию является использование возможностей препроцессора.Например , модифицируйте код функции LED_Config() следующим образом :

__INLINE static void LED_Config( void ) { #ifndef DEBUG RCC-\APB2ENR |= ( 1 \\ 4 ) CRH |= 0x00050000; #endif/*DEBUG*/ }/* LED_Config */

Во время выполнения отладки укажите в Makefile в опциях компилятора -DDEBUG или же в иходном(заголовочном) файле пропишите #define DEBUG.В результате этого весь код, зависимый от оборудования конктретной модели микроконтроллера, будет исключен при отладке. Мерцание светодиода можно заменить установкой/сбросом программного флага.

Настало время вернутся к вопросу об использовании симуляции микроконтроллеров ARM7TDMI. На самом деле с этой задачей запросто справляется сам arm-none-eabi-gdb. Как и в предыдущем случае для начала исследуем симуляцию из командной строки. Для этого будем использовать elf-файл проекта ARM7_project, описанного во второй части статьи «Программирование AVR и ARM микроконтроллеров в Eclipse». Откроем окно терминала и выполним следующие команды.

$su password # cd /root/workspace/ARM7_project # arm-none-eabi-gdb main.out (gdb) target sim (gdb) load (gdb) break main (gdb) run (gdb) step (gdb) info registers-all

В результате выполнения последней команды на экране появится содержимое внутренних регистров ядра ARM7.

r0 0x0 0 r1 0x0 0 r2 0x0 0 r3 0x40000000 1073741824 r4 0x0 0 r5 0x0 0 r6 0x0 0 r7 0x0 0 r8 0x0 0 r9 0x0 0 r10 0x10c 268 r11 0x40000364 1073742692 r12 0x0 0 sp 0x40000364 0x40000364 lr 0x118 280 pc 0x1c8 0x1c8 [port_init+8] f0 0 (raw 0x000000000000000000000000) f1 0 (raw 0x000000000000000000000000) f2 0 (raw 0x000000000000000000000000) f3 0 (raw 0x000000000000000000000000) f4 0 (raw 0x000000000000000000000000) f5 0 (raw 0x000000000000000000000000) f6 0 (raw 0x000000000000000000000000) f7 0 (raw 0x000000000000000000000000) fps 0x0 0 cpsr 0x600000df 1610612959

Настройки Eclipse для использования симуляции микроконтроллеров ARM7TDMI выглядят следующим образом.

Запускаем отладку Run->Debug и наблюдает окно отладчика, дальше процесс отладки происходит привычным для нас образом. Но опятьже не стоит забывать, что встретив на своем пути неизвестные названия внутренних регистров микроконтроллера, симулятор растеряется и заплачет вывалится с ошибкой.

P.S.: Интересным применением виртуальной ARM-машины может стать запуск на ней собранных Linux-образов для встраиваемых в микроконтроллеры Linux-систем. Можно начать исследование с готовых образов, предоставляемых производителями микроконтроллеров.Например, с сайта http://www.at91.com/linux4sam/bin/view/Linux4SAM/ есть возможность загрузить образ Linux-системы для микроконтроллеров AT91SAM9 компании Atmel.

cxemotexnika.org

Внутрисхемный эмулятор, средства отладки микроконтроллеров

Отладка микроконтроллеров

Инструментальные средства отладки микроконтроллеров предназначены для повышения эффективности труда разработчика. Наиболее востребованные инструментальные средства разработки и отладки систем и модулей с микроконтроллерным ядром:

  • Внутрисхемный эмулятор;
  • JTAG эмулятор;
  • Программный отладчик симулятор;
  • C компилятор;
  • Интегрированная среда разработки (IDE).

Описание

Внутрисхемный эмулятор - наиболее эффективное средство разработки и отладки микроконтроллеров соответствующих семейств.

Внутрисхемный эмулятор - программно аппаратное средство, замещающее эмулируемый процессор в реальной схеме. Внутрисхемный эмулятор - мощное и универсальное средство разработки и отладки микроконтроллерных систем.

Внутрисхемный эмулятор стыкуется с отлаживаемой системой при помощи специальной эмуляционной головки. Эмуляционная головка вставляется вместо микроконтроллера в отлаживаемую систему.

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

Часто разработчики вместо термина - внутрисхемный эмулятор, используют термин - внутрисхемный отладчик. Как правило, оба термина являются синонимами.

Структура

Хороший внутрисхемный эмулятор содержит следующие функциональные блоки:

  1. Отладчик;
  2. Блок эмуляции микроконтроллера;
  3. Эмуляционная память;
  4. Процессор точек останова;
  5. Трассировщик;
  6. Анализатор эффективности программного кода;
  7. Таймер реального времени;
  8. Программно-аппаратные средства, обеспечивающие возможность чтения и модификации ресурсов эмулируемого процессора в реальном масштабе времени.

Возможности

Отладчик внутрисхемного эмулятора позволяет:

  1. Осуществлять загрузку отлаживаемой программы в память системы;
  2. Производить вывод на монитор состояния и содержимого всех регистров и памяти, и при необходимости, их модификацию;
  3. Управлять процессом эмуляции;
  4. Вести символьную отладку. Благодаря использованию символьной информации, поставляемой компилятором, внутрисхемный эмулятор предоставляет пользователю возможность оперировать символьными именами, не утруждая разработчика необходимостью запоминать их адреса. Контролировать и анализировать не только дисассемблированный текст, но и исходный текст программы, написанной на языке высокого уровня (включая и собственные комментарии).

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

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

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

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

Перечень поддерживаемых микроконтроллеров - главное чем характеризуется внутрисхемный эмулятор. Как правило, поддержка заявленного спектра эмулируемых микроконтроллеров обеспечивается за счет применения сменных или дополнительных узлов внутрисхемного эмулятора.

Функциональные и технические характеристики, которыми обладает конкретный внутрисхемный эмулятор, во многом определяются характеристиками используемого эмуляционного кристалла.

Помимо этого, каждый реальный внутрисхемный эмулятор имеет свой набор поддерживаемых компиляторов.

Для того что бы внутрисхемный эмулятор использовался в процессе разработки и отладки наиболее эффективно, программное обеспечение эмулятора должно быть включено в интегрированную среду разработки (IDE - Integrated Development Environment).

С точки зрения разработки программ IDE предоставляет одинаковые возможности вне зависимости от того, что используется, внутрисхемный эмулятор или программный симулятор.

Номенклатура

Фирма Фитон разработала и производит программные и программно аппаратные средства отладки, которые обеспечивают технологический цикл разработки и отладки систем на базе микроконтроллеров следующих семейств:

ARM, 8051, PIC (Microchip), Intel MCS-96 (и его аналога КЛ1874ВЕ36), AVR (Atmel), RSC4x (Sensory), CoolRISC (XEMICS), MSP430 (Texas Instruments), MAXQ (MAXIM).

Все инструментальные средства отладки: внутрисхемный эмулятор, JTAG отладчик, C компилятор, отладчик симулятор, интегрированная среда разработки (IDE) - созданы с учетом возможности их комплексного использования в рамках интегрированных пакетов разработки Project-XX и/или CodeMaster-XX

Мы предлагаем внутрисхемные эмуляторы серии PICE-XX.

♦ Внутрисхемный эмулятор микроконтроллеров с ядром 8051. Внутрисхемный эмулятор PICE-51 (PICE-52) входит в пакет Project-51 или CodeMaster-52 соответственно

♦ Внутрисхемный эмулятор микроконтроллеров PICmicro. Внутрисхемный эмулятор PICE-MC входит в пакет Project-MC

♦ Внутрисхемный эмулятор микроконтроллеров 80196. Внутрисхемный эмулятор PICE-196 входит в пакет Project-96

♦ Внутрисхемный эмулятор микроконтроллеров семейства RSC-4x. Внутрисхемный эмулятор PICE-SE входит в пакет Project-SE

♦ Внутрисхемный эмулятор микроконтроллеров семейства XE8000. Внутрисхемный эмулятор PICE-XE входит в пакет Project-XE

♦ Внутрисхемный эмулятор микроконтроллеров семейства AVR. Внутрисхемный эмулятор PICE-AV входит в пакет Project-AVR

Все внутрисхемные эмуляторы разработаны и производятся нами ( ООО "Фирма Фитон").

Все внутрисхемные эмуляторы сертифицированы.

Характеристики, которыми обладает внутрисхемный эмулятор для микроконтроллеров определенного семейства представлены на соответствующих страницах. (например: интересует внутрисхемный эмулятор для микроконтроллеров 80196 и их Воронежских аналогов 1874ВЕ36 - в левом вертикальном меню пункт <80196>, или ссылка " Внутрисхемный эмулятор PICE-XE входит в пакет Project-XE ")

Характеристики общие для всех внутрисхемных эмуляторов серии PICE-XX можно посмотреть по ссылке: внутрисхемный эмулятор PICE-XX.

www.phyton.ru

8.8.Эмуляторы ПЗУ.

8.10.Отладчик.

Отладчик является своеобразным мостом между разработчиком и отладочным средством. Состав и объем информации, проходящей через средства ввода-вывода,доступность ее для восприятия, контроля, и, при необходимости, для коррекции и модификации напрямую зависят от свойств и качества отладчика.

Хороший отладчик позволяет осуществлять:

•Загрузку отлаживаемой программы в память системы;

•Вывод на монитор состояния и содержимого всех регистров и памяти, и при необходимости, их модификацию;

•Управление процессом эмуляции.

Более мощные отладчики, обычно их называют высокоуровневыми (High-LevelDebuggers), помимо этого, позволяют:

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

•Контролировать и анализировать не только дисассемблированный текст, но и исходный текст программы, написанной на языке высокого уровня, и даже с собственными комментариями.

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

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

8.11.Узел эмуляции микроконтроллера.

Узел эмуляции микроконтроллера - модуль, позволяющий моделировать микроконтроллер.

Данный блок необходим в системах разработки на основе внутрисхемных эмуляторов и симуляторов, в других вариантах средств разработки в системах присутствует реальный микроконтроллер и, поэтому его эмуляция не нужна.

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

8.12.Эмуляционная память.

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

Существуют модели эмуляторов, которые позволяют пользователю «подставлять» вместо ПЗУ эмуляционную память не только целиком, но и поблочно (в некоторых моделях минимальный размер блока может достигать одного байта), в порядке, определенном пользователем. Для этого пользователю достаточно задать распределение памяти данных и памяти программ, в соответствии с которым процессор будет получать доступ и к содержимому ПЗУ в отлаживаемой системе, и к содержимому эмуляционной памяти внутрисхемного эмулятора. Такая память обычно называется памятью с возможностью мэппинга.

8.13.Подсистема точек останова.

Подсистема точек останова - набор средств, управляющий процессом выполнения программы. Он позволяет останавливать выполняемую в реальном (или приближенном к реальному) масштабе времени программу, при выполнении команды, размещенной по заданному адресу. Частный случай работы системы точек останова - пошаговое выполнение. Другие, часто используемые случаи, - останов при проведении операций ввода-вывода.

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

studfiles.net

Компьютеры на базе AVR-микроконтроллеров — ARCAdaptor

Вместо предисловия

Многие профессионалы-разработчики электроники часто "воротят нос" от семейства микроконтроллеров производства Atmel - фи, мол, эта ваша Атмега — только лампочками поморгать. Однако, это спорное утверждение.

Дешевизна, легкость программирования (как физической "заливки" прошивки, так и создания самих программ) превращают микроконтроллеры семейства AVR в универсальный инструмент, доступный начинающему радиолюбителю, а богатейшая линейка устройств — от самых простых ATTiny до устройств Mega256 с огромным количеством периферии "на борту" позволят реализовать самый смелый и амбициозный проект.

В этот раз мы рассмотрим конкретные примеры реализации одноплатных (и не очень) конструкторов на базе микроконтроллеров семейства ATMega. Все они вполне реализуемы в домашних условиях, а некоторые можно приобрести на сайте авторов. Для начала - небольшое отступление про "одноплатники" вообще.

Название говорит само за себя - все компоненты компьютера, необходимые для его базового функционирования размещены на одной плате. Совсем юные читатели сразу подумают о новинках вроде Raspberry Pi, а те, кто уже имеют понятие о мироустройстве — вспомнят РК-86, ZX-Spectrum и БК-0010, например.

Именно так — те самые "компьютеры в клавиатуре" были одноплатными. Да, допускались различные расширения, но кто о них помнит сейчас, тем более приобрести их в магазине было довольно проблематично. Да и нужды не было по большому счету.

И вот 21 век сдвинул "окно ностальгии" в нужную позицию и радиолюбители по всему миру не сговариваясь выпустили несколько проектов, которые по характеристиками ну очень напоминают те самые "эр-кашки" и "спектрумы" конца восьмидесятых годов прошлого века. А некоторые — в точности повторяют, но обо всём по порядку.

AVR Chip Basic

Первый персонаж нашего обзора - компьютер AVR Chip Basic, точнее это целое семейство компьютеров, различающееся по степени "навороченности" и наличию той или иной периферии.

Из под пера автора ( Jörg Wolfram ) вышла целая плеяда устройств:

  • AVR-ChipBasic8 на базе ATMega8 или ATMega88 (та же микросхема используется в ARCAdaptor)
  • AVR-ChipBasic на базе ATMega16
  • AVR-ChipBasic32 на базе ATMega32
  • AVR-ChipBasic2 на базе ATMega644

Все они имеют (как минимум) ТВ-выход и общаются с пользователем с помощью языка BASIC. В качестве устройства ввода используется стандартная PS/2 клавиатура.

Как уже говорилось, каждое из устройств обладает разными характеристиками, так например, AVR-ChipBasic8 имеет чёрно-белый видеовыход, может хранить программы на языке BASIC на подключаемой микросхеме EEPROM, ибо память самой микросхемы оставляет лишь 512 байт для хранения исходного текста. 

Тем не менее - имеется и звуковой выход, и даже "свободные ножки", на которые можно повесить дополнительное оборудование. 

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

Из "фишек" интересное - прошивку можно собрать самостоятельно как под PAL развертку, так и под NTSC.

Остальные аппараты уже в состоянии выводить цветной видеосигнал через разъем SCART, и даже подключаться к совместимой TFT-матрице. Также к услугам пользователя возможность работы с периферией, последовательный интерфейс RS-232 с возможностью общения с "большим братом" и даже "картриджи памяти"! - съемные блоки памяти с записанными на них программами.

Более того, версии на ATMega16,32 и 644 используют одну и ту же плату, то есть достаточно поставить микросхему в панельку и загрузить нужную прошивку.

Остальные подробности можно почерпнуть на странице автора. К сожалению страничка на немецком языке, но онлайновые переводчики значительно облегчат жизнь.Кстати, среди его проектов есть и эмулятор компьютера ZX-81 на микроконтроллерах AVR.

FIGnition

Движемся дальше - следующий экспонат - одноплатный компьютер Fignition.

Автор Julian Skidmore создал "одноплатник", работающий под управлением ФОРТ-машины. Устройство способно управляться с экраном размером 25x24 символов, 16 пользовательскими символами, ну или графикой размером 160x160 точек.

Стоит отметить, что устройство может работать как с PAL-телевизорами, так и с NTSC - зависит от загруженной прошивки микроконтроллера ATMega168.

Особый интерес вызывает способ ввода данных. Обычно с AVR-устройствами часто интегрируют поддержку PS/2 клавиатуры, коих в избытке (пока что). Автор подготовился к вселенской катастрофе и организовал ввод с помощью восьми кнопок... Перебор значений на них организован по образу и подобию набора SMS в кнопочных мобильных телефонах.

 

 

Безусловно, такое устройство будет интересно в первую очередь поклонникам языка FORTH.Сам автор предлагает приобрести комплект для сборки, хотя схема открыта, и в принципе желающие могут собрать подобное устройство самостоятельно.

Сайт проекта

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

PMD-85

Первый в списке - компьютер PMD-85. Это довольно интересное устройство, которое выпускалось с 1985 по 1989 в социалистической Чехословакии. По характеристикам он очень похож на семейство "РК-86", выпускавшийся в СССР в середине и конце восьмидесятых годов прошлого века - процессор i8080 и небольшой объем памяти.

Подробнее можно почитать в Википедии , ну а пока что рассмотрим аппаратную реализацию на ATMega.

Даже по этой иллюстрации видно - на плате всего лишь 2 микросхемы - непосредственно контроллер ATMega128 и микросхема памяти.

Ввод осуществляется с клавиатуры PS/2, вывод - через черно-белый ТВ. Для того, чтобы запустить ту или иную игру - необходимо скомпилировать соответствующую прошивку, которая содержит тот или иной набор программ. Вот несколько скриншотов от "родных" игр.

А вот видео работы, правда записано с настоящего PMD:

 

 

Подробности можно почерпнуть по этой ссылке , сайт же поклонников PMD-85 из бывшего соцлагеря тут.

Проект был бы весьма интересен отечественным фанатам РК-86, тем более что уже есть реализация на микроконтроллере PIC в проекте Maximite.

AVR-CP/M

Дальше - больше. Если возможна эмуляция i8080, то почему бы не попытаться запустить на АТМеге операционную систему CP/M ?

Это стоит сделать хотя бы ради великого и ужасного ZORK! И ведь запускают.

 В качестве устройства отображения используется serial port.

Для него в плату установлен конвертер Serial->USB, но вполне можно обойтись и без него, точнее - обойтись внешним конвертером.

Сама схема представляет собой контроллер ATMega328 и несколько чипов памяти (из старых видеокарт или материнских плат).

Диск эмулируется через набор образов, размещенных на SD-карте. Схемы, прошивки и прочее можно найти здесь. Сайт на немецком языке, но онлайновые переводчики сделают свое дело.

UzeBox

Постепенно переходим к жемчужинам этого собрания. Первая в списке - самодельная, полностью открытая приставка UzeBOX.

 

Мало того, что приставка полностью "повторяема" в домашних условиях — её программное обеспечение имеет вполне достойный уровень, и более того — игры для неё разрабатываются энтузиастами прямо-таки в промышленных количествах.

Что "под капотом":

  • Низкая стоимость. Всего 2 чипа (микроконтроллер и кодер NTSC), более того - второй не обязателен, если есть телевизор с полноценным разъемом SCART.
  • Ядро управляется прерываниями. Нет "тормозов", никто не отсчитывает такты процессора, генерация аудио и видео происходит в фоне.
  • 256 цветов 4 звуковых канала - 3 wavetable +1 шумовой
  • MIDI-интерфейс
  • Стандартные джойстики от SNES (на 15 долларов на Aliexpress можно приобрести несколько штук).
  • Есть возможность использовать NES (Dendy), но потребуется перекомпиляция игр, хотя это вообще не проблема
  • Поддержка манипулятора "мышь" от SNES
  • Поддержка SD-карточек UART и SPI интерфейсы доступны, также есть некоторое количество свободных "ножек" ATMega
  • Есть эмулятор для разработки игр Загрузчик игр/программ с SD Развитое API для разработки Полностью открытая схемотехника и код

Приставка оказалась настолько удачной, что комплектами для сборки подторговывал магазин Adafruit Industries — признанный лидер в DIY движении.

Сама приставка базируется на микросхеме ATMega644 в DIP-исполнении (об этом чуть подробнее ниже). Этого контроллера вполне хватает для вышеописанных задач, а на выходе можно наблюдать игры примерно такого качества:

Без сомнения - классика не стареет.

Неплохо для микроконтроллера, правда ?

Автор разработки - канадец Alec (Uze) Bourque. Проекту не один год, но сообщество, сложившееся вокруг консоли всё еще полно идей и энтузиазма для дальнейшего движения вперед.

По этой ссылке можно ознакомиться с минимальной версией UzeBox - полностью модульной системой, которая состоит из базовой платы с микроконтроллером и SCART-выходом, а также дополнений - платы энкодера NTSC, платы адаптера SD-карты и платы MIDI-переходника.

Последний, кстати, никогда не был воплощен "в металле" за отсутствием MIDI-оборудования :) Выглядит "домашняя версия" в сборе примерно так:

Так что с уверенностью заявляем - "дизайн" проверен и работает.

Конечно же, нужно упомянуть о недостатках.

  • Для обеспечения нужной скорости ATMega работает в режиме "overclock" - аж на 28.6 Mhz
  • Для сборки подходят только DIP-версии микросхемы
  • При использовании SMD-версий перестает работать UART, перебои с SD-картой и вообще большой риск "не завестись". Причина тому - указанный выше "разгон"
  • Чип AD725 (энкодер NTSC) в наших краях редкость и довольно дорого обходится (хотя он по большому счету и не нужен в начальной конфигурации)
  • SNES-джойстики не так распространены и уж тем более "ответные" разъемы для них
  • Нормально работают далеко не все SD-карты (точнее, большинство не работает, хотя подобрать в конце концов можно)

Достоинства консоли, кстати, с лихвой перевешивают описанные недостатки, так что её действительно можно рекомендовать к сборке даже новичкам.

Официальный сайт консоли со всей информацией, исчерпывающей документацией и весьма позитивным форумом здесь.

 

AVR ZX Spectrum 2.0

Ну и в финале — действительно потрясающий проект нашего соотечественника - Василия Лисицына - полностью функциональный "клон" компьютера ZX-Spectrum!

Спецификации впечатляют:

  • Разрешение экрана: 256 х 192 точки
  • Матрица знакомест экрана: 32 х 24
  • Количество цветов на знакоместо: 2
  • Число цветов экранной области: 8
  • Число цветов бордюра: 8
  • Число градаций яркости для каждого цвета: 2
  • Эквивалентная частота ЦП: 2,333 МГц
  • Порты ввода/вывода: 0xFE, 0x7FFD, 0x7FFD, 0xBFFD
  • Клавиатурный интерфейс: PS/2
  • Число задействованных клавиш: 82
  • Число каналов звукового сопровождения: 4
  • Перечень каналов звукового сопровождения: левый AY8910, правый AY8910, средний AY8910, бипер
  • Видеовыходы: ЧБ выход, RGB выход, отдельный выход синхронизации
  • Поддержка загрузки/выгрузки «на ленту»: имеется
  • Дополнительные устройства ввода/вывода: micro-SD карта
  • Поддерживаемые модели ZX Spectrum: Pentagon 128 K, ZX Spectrum 128 K, ZX Spectrum 48 K, ZX Spectrum +2, ZX Spectrum +3, ZX Spectrum 48 K ` 2006, OPEN SE BASIC 128 K, OPEN SE BASIC 48 K
  • Дополнительная операционная система: SD DOS
  • Файловая система: FAT32
  • Разъём шины ввода/вывода: имеется
  • Конструкция: двухсторонняя печатная плата 140 х 22 мм, установка внутри клавиатуры или в отдельный корпус
  • Питание устройства: соединитель mini-USB «F», напряжение +5 В

На фото -  плата AVR ZX-Spectrum 2.0 с установленным эмулятором AY8910(12), кстати тоже на ATMega.

Плата в базовой конфигурации имеет на борту 3 микроконтроллера и микросхему динамической памяти аж на 512 кб:

  • Центральный процессор (ATMega128)
  • Видеопроцессор (опять ATMega128)
  • Контроллер клавиатуры (ATTiny2313)

Это позволяет "в теории" реализовать компьютер с таким объемом памяти. Помимо этого на плате есть некоторое количество микросхем мелкой логики.

Уже сейчас помимо "спектрума" плата может функционировать, как Robotron 1715. То есть на этой базе можно реализовывать и другие компьютеры!

Что может быть лучше ретро-платы все в одном! Впрочем, о тайнах и возможностях может поведать сам автор:

 

 

К сожалению, на данный момент у автора нет веб-сайта, но есть надежда, что он появится. А пока что со схемой и описанием можно ознакомиться, например, вот здесь.

Заключение

Микроконтроллеры - отличная возможность прикоснуться с миру разработки микроэлектроники. Для "олдскульщиков" - возможность "нырнуть" в то время, когда они были молодыми, а компьютеры простыми. Для поколения Arduino - шаг вперед в образовании. И пусть фанаты навороченных FPGA и ARMов утверждают о том, что время ATMega прошло - мы-то знаем на что она способна.

Удачных самоделок!

adapto.rs

Сборник программ симуляторов для микроконтроллеров - Радиолюбительский софт - Программы - Каталог файлов

8085 Simulator IDE - сильное приложение, которое снабжает разработчиков легкой в использовании графической средой разработки для Windows с интегрированным симулятором (эмулятором), компилятором Basic, ассемблером, дисассемблером и отладчиком для Intel 8085 8-битовых микропроцессоров.

AVR Simulator IDE - сильное приложение, которое снабжает разработчиков AVR легкой в использовании графической средой разработки для Windows с интегрированным симулятором (эмулятором), компилятором Basic, ассемблером, дисассемблером и отладчиком. AVR Simulator IDE в настоящее время поддерживает следующие микроконтроллеры от Atmel megaAVR и tinyAVR номенклатур продукции и зрелого семейства 90-Х: AT90S2313, AT90S2323, AT90S2343, AT90S4433, AT90S8515, AT90S8535, ATmega8, ATmega16, ATmega32, ATmega48, ATmega64, ATmega88, ATmega128, ATmega162, ATmega164P, ATmega168, ATmega324P, ATmega644P, ATmega8515, ATmega8535, ATtiny11, ATtiny12, ATtiny13, ATtiny24, ATtiny25, ATtiny26, ATtiny44, ATtiny45, ATtiny84, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATtiny2313. Дополнительные модели AVR, разделяющие ту же самую архитектуру, будут поддержаны в новых выпусках.

PIC10F Simulator IDE - сильное приложение, которое снабжает разработчиков PIC10F легкой в использовании графической средой разработки для Windows с интегрированным симулятором (эмулятором), компилятором Basic, ассемблером, дисассемблером и отладчиком. PIC10F Simulator IDE в настоящее время поддерживает следующие микроконтроллеры от Microchip PICmicro 10F, 12F и 16F номенклатуры продукции: 10F200, 10F202, 10F204, 10F206, 10F220, 10F222, 12F508, 12F509, 12F510, 16F505, 16F506. Дополнительные модели PIC, разделяющие ту же самую архитектуру, будут поддержаны в новых выпусках.

PIC18 Simulator IDE - сильное приложение, которое снабжает разработчиков PIC18 легкой в использовании графической средой разработки для Windows с интегрированным симулятором (эмулятором), компилятором Basic, ассемблером, дисассемблером и отладчиком. PIC18 Simulator IDE в настоящее время поддерживает следующие микроконтроллеры от Microchip PICmicro 18F номенклатура продукции: 18F242, 18F248, 18F252, 18F258, 18F442, 18F448, 18F452, 18F458, 18F1220, 18F1320, 18F2220, 18F2320, 18F2331, 18F2410, 18F2420, 18F2431, 18F2455, 18F2480, 18F2510, 18F2515, 18F2520, 18F2525, 18F2550, 18F2580, 18F2610, 18F2620, 18F4220, 18F4320, 18F4331, 18F4410, 18F4420, 18F4431, 18F4455, 18F4480, 18F4510, 18F4515, 18F4520, 18F4525, 18F4550, 18F4580, 18F4610, 18F4620, 18F6520, 18F6527, 18F6620, 18F6622, 18F6627, 18F6720, 18F6722, 18F8520, 18F8527, 18F8620, 18F8622, 18F8627, 18F8720, 18F8722. Дополнительные модели PIC, разделяющие ту же самую архитектуру, будут поддержаны в новых выпусках18F8620, 18F8622, 18F8627, 18F8720, 18F8722.

PIC Simulator IDE - сильное приложение, которое снабжает разработчиков PIC легкой в использовании графической средой разработки для Windows с интегрированным симулятором (эмулятором), компилятором Basic, ассемблером, дисассемблером и отладчиком. PIC Simulator IDE в настоящее время поддерживает следующие микроконтроллеры от Microchip PICmicro 12F и 16F номенклатуры продукции: 12F629, 12F635, 12F675, 12F683, 16F627, 16F627A, 16F628, 16F628A, 16F630, 16F631, 16F636, 16F639, 16F648A, 16F676, 16F677, 16F684, 16F685, 16F687, 16F688, 16F689, 16F690, 16F72, 16F73, 16F74, 16F76, 16F77, 16F737, 16F747, 16F767, 16F777, 16F83, 16F84, 16F84A, 16F87, 16F88, 16F818, 16F819, 16F870, 16F871, 16F872, 16F873, 16F873A, 16F874, 16F874A, 16F876, 16F876A, 16F877, 16F877A, 16F882, 16F883, 16F884, 16F886, 16F887, 16F913, 16F914, 16F916, 16F917, 16F946. Дополнительные модели PIC, разделяющие ту же самую архитектуру, будут поддержаны в новых выпусках.

Z80 Simulator IDE - сильное приложение, которое снабжает разработчиков легкой в использовании графической средой разработки для Windows с интегрированным симулятором (эмулятором), компилятором Basic, ассемблером, дисассемблером и отладчиком для Zilog Z80 8-битовых микропроцессоров.

Function Grapher представляет собой интуитивно понятное и простое в использовании приложение для создания и отображения 2D графиков математических функций в удобной графической среде Windows.

Язык интерфейса: АнглийскийЛекарство: Есть

Состав архива :

8085 Simulator IDE v.2.73AVR Simulator IDE v.1.43Function Grapher v.1.30PIC10F Simulator IDE v.1.53PIC18 Simulator IDE v.2.73PIC Simulator IDE v.6.83Z80 simulator IDE v.9.73

diod.ucoz.ru

hardware - запуск симулятора / эмулятора микроконтроллера emulation microcontroller

Написание всего эмулятора станет настоящей проблемой. Я попытался написать эмулятор ARM раньше, и позвольте мне сказать вам, что это не маленький проект. Вам нужно либо подражать всему ядру центрального процессора, либо найти тот, который уже написан.

Вам также нужно выяснить, как работает все IO. Там могут быть документы от sparkfun об этой доске, но вам нужно написать диспетчер памяти, если он использует MMIO и т. Д.

На самом деле концепция эмулятора не так далека от интерпретатора. Вам необходимо интерпретировать код прошивки и в основном следовать инструкциям.

Я бы рекомендовал хороший интерактивный отладчик вместо решения эмулятора. Шансы на уничтожение аппаратного обеспечения низки, но на самом деле, предпочел бы вы купить новую доску или потратить 9 месяцев на то, что не будет внедрять всю систему?

Вполне вероятно, что у PIC 18F2520 уже есть ядро ​​эмулятора, написанное для него, но вам нужно будет углубиться во все спецификации оборудования, чтобы увидеть, как все IO показывается. Если вы это чувствуете, это будет хороший проект, но я бы подумал, что вместо этого нужно использовать удаленный отладчик.

Есть ли какая-то особая причина для создания эмулятора / симулятора, а не просто использования реальной вещи?

Доска недорогая; В Microchip теперь есть отладчик RealICE, который немного более отзывчив, чем старая хоккейная шайба ICD2.

Microchip MPLAB уже имеет встроенный симулятор. Он не будет имитировать всю доску для вас, но она будет обрабатывать 18F2520. Вы можете сортировать входные тестовые векторы и файлы вывода журнала, я делал это раньше с помощью другой микросхемы Microchip, и это было выполнимо, но довольно громоздко. Я хотел бы предложить вам подходить к модульному тестированию и модулизовать то, как вы это делаете; выяснить свои тестовые входы и ожидаемые результаты для управляемой части системы.

Очень маловероятно, что ошибка в коде может повредить физическую схему. Если это возможно, то это либо ошибка в дизайне платы, либо она должна быть четко документирована.

Если я могу предложить вам многолетний опыт работы с этими устройствами: не программируйте их в сборке. Вы сойдете с ума. Используйте C или BASIC или язык более высокого уровня. Microchip производит компилятор C для большинства своих чипов (не знаю об этом), а другие компании также производят их.

Если вы настаиваете на использовании эмулятора, я уверен, что Microchip создает эмулятор почти для каждого из своих микроконтроллеров (по крайней мере один из каждой линейки продуктов, что, вероятно, будет достаточно хорошим). Эти эмуляторы не всегда дешевы, и я не уверен в их способности принимать сложный внешний вход.

Если вы все же хотите попробовать написать свой собственный, я думаю, вы обнаружите, что эмуляция PIC сама по себе будет довольно простой: формат всех кодов операций хорошо документирован, как и архитектура памяти и т. Д. Это будет эмулировать другие устройства на плате и взаимосвязи между ними, которые убьют вас. Возможно, вы захотите изучить кодировку межсоединений между компонентами с помощью инструмента VHDL, который позволит вам создавать пользовательские симуляции для разных компонентов.

code-examples.net

Эмулятор микроконтроллера ATtiny13A — Wiki

Материал из Wiki - Факультет компьютерных наук

Метаданные

ID проекта: attiny

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

Ментор проекта: Виктор Яковлев

Аккаунты ментора в git-сервисах:

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Первая контрольная точка (24 октября 2015 г.)

Необходимо иметь git-репозиторий с проектом, в который приглашен ментор. В репозитории должно быть:

  • Файл README.md, который содержит описание проекта, написанный в расчета на "конечного пользователя". Это описание должно быть написано самостоятельно, а не скопировано из Wiki, и отражать Ваше понимание того, что нужно сделать.
  • Скелет реализации, то есть заготовки необходимых модулей и классов. Можно реализовать выполнение одной-двух команд, тогда станет понятна примерная структура проекта.
  • Для тех, кто реализует проект на C++, - проектный файл CMakeLists.txt.

Вторая контрольная точка (14 ноября 2015 г.)

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

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

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

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

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

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

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

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

Материалы с семинара 07 ноября 2015

Материалы выложены на Яндекс.Диске

wiki.cs.hse.ru


 

..:::Новинки:::..

Windows Commander 5.11 Свежая версия.

Новая версия
IrfanView 3.75 (рус)

Обновление текстового редактора TextEd, уже 1.75a

System mechanic 3.7f
Новая версия

Обновление плагинов для WC, смотрим :-)

Весь Winamp
Посетите новый сайт.

WinRaR 3.00
Релиз уже здесь

PowerDesk 4.0 free
Просто - напросто сильный upgrade проводника.

..:::Счетчики:::..