Atualmente, estou trabalhando em um projeto que envolve o registro rápido e contínuo de uma métrica específica do aplicativo durante uma longa vida útil. Para fazer isso, acabei usando um NXP M0 e um chip flash 32MiB SPI. O registro é contínuo e precisa durar muitos anos no campo (10+), e é verificado periodicamente por um ser humano para detectar tendências. Eventualmente, o buffer é preenchido e começa a sobrescrever dados antigos, o que é perfeitamente correto. Eu vim com um algoritmo simples para percorrer todo o dispositivo flash e encontrar a cabeça atual após uma inicialização (o dispositivo é desligado com frequência fora do meu controle), para que o registro possa continuar de onde parou. Eu posso apenas força bruta nessa caminhada e fazê-lo com ~ 4s no pior cenário possível.
Isso me fez pensar: existem sistemas de arquivos estruturados em log que são fornecidos para dispositivos flash e microcontroladores? O JFFS e todos os outros FSs estruturados em log bem conhecidos que eu imagino seriam um pouco pesados para um microcontrolador simples (depende da aplicação, é claro). Para ser mais específico, eu gostaria de saber sobre qualquer algoritmo projetado para ser especificamente um log circular com tempo de busca rápida e / ou qualquer um projetado para um sistema de arquivos "tradicional" em um dispositivo flash que possa ser executado em um microcontrolador. Tradicional nesse sentido, é parecido com o JFFS, onde há uma estrutura de dados que representa uma coleção de arquivos de acesso aleatório mutáveis em um espaço de nome hierárquico.