запуск симулятора / эмулятора микроконтроллера - PullRequest
3 голосов
/ 16 января 2009

Я хотел бы создать / запустить симулятор для следующей платы микроконтроллера: http://www.sparkfun.com/commerce/product_info.php?products_id=707#

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

Какие-нибудь указатели на то, как начать?

Спасибо Chris

Ответы [ 6 ]

2 голосов
/ 14 марта 2009

Вероятно, для PIC 18F2520 уже написано ядро ​​эмулятора,

Кроссплатформенный симулятор с открытым исходным кодом для микрочипов / PIC доступен под названием « gpsim ».

2 голосов
/ 16 января 2009

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

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

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

2 голосов
/ 16 января 2009

Вам нужно написать симулятор PIC, а затем эмулировать функциональность ввода-вывода портов.

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

1 голос
/ 16 января 2009

Разве это не проблема аппаратного обеспечения в цикле? (например, http://www.embedded.com/15201692)

1 голос
/ 16 января 2009

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

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

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

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

1 голос
/ 16 января 2009

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

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

Концепция эмулятора не так уж и далека от переводчика. Вам нужно интерпретировать код прошивки и в основном следовать инструкциям.

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

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

...