ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
8 мая
1209980 Топик полностью
VVB (19.05.2022 10:08, просмотров: 374) ответил VladislavS. на Покрытие тестами в эмбэдде, где половина сущностей volatile и может сама меняться когда и как хочет? А изменение одного бита одной сущности неявно меняет состояние остальных? Ну, давай, давай...
HAL/OSAL, значит, лузеры придумали? 

Тестируется бизнес-логика (ничего не знающая о низлежащей доменной области в виде регистров и их значений), а не поведение volatile битиков.

Подразумевается чистый C/C++ (со стандартными библиотеками, без обращений к периферии МК, без специфических для iarcc/armcc ключевых слов и instrinsic) для того, чтобы бизнес-логика могла компилироваться и работать где угодно


Например, программный модуль может оперировать понятием "скважность сигнала ШИМ" (от 0.0 до 1.0, если есть float), а не понятием "значение 16/24/32-битного регистра timer compare для создания ШИМ". И передавать требуемое значение скважности в HAL, который уже странслирует его как надо, в соответствующие регистры таймера/счётчика, с учётом частоты ШИМ и его разрядности.

И в автоматизированных тестах проверяется выходное значение программного модуля (от 0 до 1), а не выходное значение функции HAL.


Идеи TDD одинаковы вне зависимости от embedded/PC, поэтому ошибочно говорить "автоматизированные тесты для STM32".