Каков наилучший способ модульного тестирования моего кода без контроллера? [Дубликат]

    

У этого вопроса уже есть ответ:

    

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

В разработке есть эмулятор Arduino , который может быть полезен, но он пока не кажется готов к использованию.

16 голосов | спросил Hardik Thaker 12 FebruaryEurope/MoscowbWed, 12 Feb 2014 09:16:33 +0400000000amWed, 12 Feb 2014 09:16:33 +040014 2014, 09:16:33

3 ответа


10

Вы можете легко имитировать код Arduino, используя знаменитый Proteus ISIS.
Вам просто нужно будет найти конкретную библиотеку моделирования Arduino для Proteus.

Вот вам небольшой учебник о том, как сделать это:

Сначала , определите путь, в котором Arduino IDE генерирует шестнадцатеричный файл?
например, если вы используете официальную среду IDE, вы найдете местоположение шестнадцатеричного файла в «пути IDE arduino /lib /preferences.txt»
Или если вы используете Arduino ERW, который я рекомендовал больше всего на окнах! Таким образом, вы можете просто открыть папку вывода с помощью «Sketch> Copy HEX file as path».

Второй , загрузите библиотеку Arduino из здесь . Затем скопируйте ARDUINO.LIB и ARDUINO.IDX в папку "library" в каталоге установки Proteus.

Третий , откройте ISIS и вы сможете найти компонент.

Пожалуйста, найдите это изображение рабочего листа после завершения вышеуказанных шагов, и симуляция работает просто отлично! Моделирование Arduino Uno на Proteus ISIS

И как начало для вас, пожалуйста, найдите эту небольшую заметку, которую я подготовил для Arduino Uno Pins Layout :

0-14: I/O
A0-A5: Analog

We can use analog as digital:
=============================
Pinout:
00: Rx      | Can't be used as I/O if I wrote in the code Serial.begin
01: TX      |
02: Interrupt
03: Interrupt & PWM
04: 
05: PWM
06: PWM
07: 
08:
09: PWM
10: PWM & SPI
11: PWM & SPI
12: SPI
13: SPI
A0: 
A1:
A2:
A3:
A4: TWI
A5: TWI
ответил Greenonline 13 J000000Monday15 2015, 17:50:37
10

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

Классы (или любые другие) из логики домена могут быть запрограммированы в c ++ (с известными ограничениями arduino, такими как исключения или std lib) и могут быть протестированы с помощью gtest. Когда эти классы тестируются, просто экземпляр из программы arduino, исключая основной с тестами.

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

ответил lasote 2 AMpWed, 02 Apr 2014 01:55:20 +040055Wednesday 2014, 01:55:20
4

Вы посмотрели на симулятор AVR, который является частью Atmel Studio ? Учитывая, что Atmel сконструировал процессор, симуляция может очень хорошо работать с HDL, который использовался для производства самого MCU.

Я подозреваю, что если вы делаете что-то достаточно, чтобы использовать модульное тестирование, вы, вероятно, должны перестать думать о своем устройстве как о «Arduino», а скорее о «ATmega MCU на печатной плате». Существует более больше информации и инструментов, доступных о процессорах ATmega вообще, а затем Arduinos.

ответил Connor Wolf 12 FebruaryEurope/MoscowbWed, 12 Feb 2014 10:29:21 +0400000000amWed, 12 Feb 2014 10:29:21 +040014 2014, 10:29:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132