Вопрос

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

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

Есть какие-нибудь указания, с чего начать?

Спасибо Крис

Это было полезно?

Решение

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

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

На самом деле концепция эмулятора не так уж далека от интерпретатора.Вам нужно интерпретировать код встроенного ПО и в основном следовать инструкциям.

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

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

Другие советы

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

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

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

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

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

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

Кроссплатформенный симулятор с открытым исходным кодом для microchip / PICs доступен под названием "gpsim".

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top