У меня есть потребность в фиксированном размере (выбирается во время выполнения при создании, а не во время компиляции) кругового буфера, который может содержать объекты любого типа и должен быть очень высокой. Я не думаю, что проблемы с конфликтом ресурсов будут возникать с тех пор, хотя он включен в многозадачную встроенную среду, он является кооперативным, поэтому сами задачи могут справиться с этим.
Моя первоначальная мысль заключалась в том, чтобы хранить простую структуру в буфере, которая будет содержать тип (простой enum/define) и указатель void для полезной нагрузки, но я хочу, чтобы это было как можно быстрее, поэтому я открыт для предложений которые включают обход кучи.
На самом деле я рад обойти любую стандартную библиотеку для сырой скорости - из того, что я видел в коде, она не сильно оптимизирована для процессора: похоже, что они просто скомпилировали код C для таких вещей, как strcpy()
и т.д. нет ручной сборки.
Приветствуется любой код или идеи. Требуемые операции:
- создать буфер с определенным размером.
- положить в хвост.
- получите от головы.
- вернуть счет.
- удалить буфер.