Тестирование C ++ на микроконтроллере более эффективно - PullRequest
3 голосов
/ 18 июня 2020

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

Я изучал различные наборы тестов, такие как Nanobench и Google Benchmark, однако ни один из них не работал. Кто-нибудь знает более эффективное решение? Поскольку это скорее методологический запрос, чем вопрос программирования как таковой, у меня нет кода для прикрепления.

Если для этого есть более подходящий канал Stack Exchange, я с радостью удалю этот пост и сделаю репост. это там. Спасибо!

Изменить : Чтобы добавить немного больше деталей:

  • Под «переменными» результатами я подразумеваю, что когда я постоянно запускаю одну функцию в течение некоторого времени l oop, длительность периода, за который осциллограф дает мерцания вперед и назад между несколькими различными частотами. Я заметил, что это чаще встречается в миллисекундной шкале, чем в микросекундной.
  • Это структура примера функционального теста:
int main() {
    while (true) {
        // set GPIO pin
        // execute some function
        // clear GPIO pin
    }
    return 0;
}
  • Поскольку это это формальная исследовательская оценка, мне посоветовали либо использовать стандартный набор тестов, либо использовать осциллограф, а не создавать функции тестирования с помощью таймеров самостоятельно, поскольку мне сказали, что таймеры микроконтроллеров несколько неточны.

1 Ответ

0 голосов
/ 18 июня 2020

Согласно таблице данных LPC804 имеет «32-битный счетчик / таймер общего назначения», возможно, вы могли бы настроить его для выполнения измерения. Таким образом, вы можете написать код синхронизации один раз и программно проверить результаты.

...