










Documentação do projeto
O C ++ é um ótimo idioma a ser usado para aplicativos e modelos incorporados são um aspecto poderoso. A biblioteca padrão pode oferecer uma grande funcionalidade bem testada, mas existem algumas partes da biblioteca padrão que não se encaixam bem com o comportamento determinístico e os requisitos limitados de recursos. Essas limitações geralmente impedem o uso de memória e contêineres alocados dinamicamente com tamanhos abertos.
O que é necessário é uma biblioteca de modelos em que o usuário pode declarar o tamanho ou o tamanho máximo de qualquer objeto antecipadamente. A maioria dos compiladores incorporados atualmente não suporta o padrão além do C ++ 03, excluindo o programador de usar os recursos aprimorados da biblioteca posterior.
É isso que o ETL tenta alcançar.
O ETL não foi projetado para substituir completamente o STL, mas complementá -lo. Seu objetivo de design abrange três áreas.
A biblioteca de modelos incorporada foi projetada para aplicações mais baixas de recursos incorporados. Ele contém um conjunto de recipientes, algoritmos e utilitários, alguns dos quais imitam partes do STL. Não há alocação de memória dinâmica. A biblioteca não faz uso da pilha. Todos os contêineres têm uma capacidade fixa, permitindo que toda a alocação de memória seja determinada no tempo de compilação. A biblioteca se destina a qualquer compilador que suporta C ++ 98/03/11/14/17/20.
Qualquer ajuda portar a biblioteca para trabalhar sob diferentes plataformas e compiladores seria recebida com gratidão. Estou especialmente interessado em pessoas que estão usando Keil, IAR, Green Hills, TI Code Composer etc, bare metal ou RTOs e DSPs.
Veja (https://www.etlcpp.com) para obter informações atualizadas.
Você pode encontrar as etapas de configuração aqui.
Uma maneira de usar esta biblioteca é abandoná -la em algum lugar do seu diretório de projeto e depois disponibilizar a biblioteca usando add_subdirectory
add_subdirectory (etl)
add_executable (foo main.cpp)
target_link_libraries (foo PRIVATE etl::etl)Se a biblioteca ETL for usada como um submódulo Git, poderá exigir uma configuração adicional para a resolução adequada da versão ETL, permitindo a pesquisa da pasta Git fora do diretório raiz da biblioteca.
set (GIT_DIR_LOOKUP_POLICY ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR)
add_subdirectory (etl) Se você deseja instalar esta biblioteca com CMake, poderá executar as etapas a seguir. No Linux, os direitos do Super Usuário podem ser obrigados a instalar a biblioteca, por isso pode ser necessário adicionar sudo antes do último comando:
git clone https://github.com/ETLCPP/etl.git
cd etl
git checkout < targetVersion >
cmake -B build .
cmake --install build/ Após a instalação da biblioteca, você pode usar o find_package para usar a biblioteca. Substitua <majorVersionRequirement> pela versão principal desejada:
find_package (etl <majorVersionRequirement>)
add_executable (foo main.cpp)
target_link_libraries (foo PRIVATE etl::etl) <targetVersion>
Include(FetchContent)
FetchContent_Declare(
etl
GIT_REPOSITORY https://github.com/ETLCPP/etl
GIT_TAG < targetVersion >
)
FetchContent_MakeAvailable(etl)
add_executable(foo main.cpp)
target_link_libraries(foo PRIVATE etl::etl) O conteúdo deste repositório está disponível como uma biblioteca no Arduino IDE (procure a "Biblioteca de Modelos Incorporados" no IDE Library Manager). O repositório da biblioteca Arduino está disponível em https://github.com/ETLCPP/etl-arduino , veja lá para obter mais detalhes.