Этот аллокатор должен позволять выделять память по одному блоку фиксированного размера из статического пула (пула в статической памяти).
По итогу, аллокатор позволяет выделять по нескольку блоков фиксированного размера из статического пула.
Размеры блока и пула фиксированы в процессе выполнения программы, но должны быть настраиваемыми в процессе сборки проекта.
Значения параметров статического пула можно задать с помощью export либо использовать default'ные значения в CMakeLists.txt
Модуль должен быть адаптирован для работы на Embedded-платформах различной разрядности в условиях многозадачного окружения (RTOS).
Модуль не привязан ни к одной разрядности, порядку байт либо специфичным для определенной ОС библиотекам. Всё, кроме unit-тестов, сделано на чистом C++17 без использования расширений либо стороних библиотек. Unit-тесты написаны с помощью Boost'а.
Я не совсем понял, что подрузамевается под RTOS. Поэтому я воспринял эту информацию как не использовать исключения, в случае невозможности выделить память. Поэтому модуль просто падает в данном случае, печатая ошибку в std::cerr.
Модуль должен иметь набор юнит-тестов (достаточно покрытия двух-трех базовых кейсов)."
Сделано покрытие многократного выделения/освобождения памяти размером с пул, минимальных операций с контейнерами и аллокации разных размеров, обращение из разных потоков.
Тесты не идеальны, на них, как и на сам модуль, необходимо бы потратить больше времени.
Сборка и тестирование происходило только на Debian 4.19.98-1 (2020-01-26) x86_64 GNU/Linux.