#c #unit-testing #testing #stm32 #iar
#c #модульное тестирование #тестирование #stm32 #iar
Вопрос:
Я хочу, чтобы в моем проекте IAR работал тестовый фрейм. Процессор является STM32L0.
Что я пробовал:
-
https://github.com/cpputest/cpputest последовал за туройалом по адресу : https://cpputest.github.io/stories.html Не сработало, потому что есть только 64K Flash и 8K RAM
и этого недостаточно для этой платформы
-
https://github.com/ThrowTheSwitch/Unity.git Я попытался встроиться в IAR Embedded workbench, но из-за множества ошибок компилятора также не хватило места, поэтому я попытался запустить его на своем рабочем столе. Это не работает, потому что в коде слишком много аппаратных зависимостей..
-
Затем я попытался просто выполнить «псевдо» модульное тестирование, запустив процедуру тестирования при загрузке устройства, которую можно включать и выключать директивами прекомпилятора.
Вот так (не закончено):
#if PREFORM_TESTS
TEST_run();
#endif
А затем с файлами:
#include "testAll.h"
#include "testEvent.h"
#include "stm32l0xx_hal.h"
void TEST_run(){
TEST_EVENT_run();
}
void assert_failed(uint8_t* file, uint32_t line){
while(1);
}
#include "testEvent.h"
#include "testAll.h"
#include "event.h"
#include "stm32l0xx_hal.h"
void test_add_event();
void TEST_EVENT_run(){
test_add_event();
}
void test_add_event(){
ASSERT(1);
}
Как я могу запускать модульные тесты на моем STM32L0x3?
Комментарии:
1. В IAR EWARM есть симулятор ARM. Это в сочетании с некоторыми макросами и точками останова CSPY позволяет дополнительно моделировать аппаратное обеспечение и внедрять модульные тесты. Я полагаю, что у них есть способ вызывать функции C из макросов CSPY, но я могу ошибаться (у меня нет под рукой руководства).
Ответ №1:
Как правило, даже для встроенных целевых объектов «модули» кода компилируются на вашем целевом компьютере. Таким образом, вы бы вставили модули в свои тесты и отключили / смоделировали аппаратные средства.
Если на устройстве недостаточно места для размещения платформы тестирования, то, возможно, вам не следует (или найдите более минимальную). Затем вам придется писать свои тесты в коде приложения без среды тестирования, как если бы вы писали обычный код приложения.