Dá para bloquear só parte da memória de uma tag?
Dá, na maioria das famílias de chip. Existem dois tipos de bits de bloqueio: um conjunto cobrindo as primeiras páginas da memória, e outro cobrindo o resto em blocos. Isso permite congelar parte de uma tag de forma permanente e deixar o restante gravável, o que às vezes é exatamente o que uma instalação precisa.
Dois tipos de bits de bloqueio
O primeiro conjunto é pequeno e fixo, cobrindo as páginas iniciais da memória. São esses os bits que uma ferramenta define quando você marca uma opção de bloqueio, e são a razão pela qual uma tag bloqueada fica totalmente congelada.
O segundo conjunto cobre a memória restante em blocos em vez de páginas, e existe precisamente para que regiões possam ser congeladas de forma independente.
Os dois andam num só sentido. Nenhum dos conjuntos pode ser limpo, e os dois ficam guardados numa memória que se torna somente leitura assim que é usada, então um bit de bloqueio não pode ser desbloqueado bloqueando outra coisa.
Quão fino é o controle
Mais grosso do que você gostaria. O segundo conjunto em geral cobre várias páginas de uma vez, então você não consegue congelar um byte isolado nem um registro específico.
A granularidade prática é, portanto, uma região e não um campo, e o tamanho exato do bloco difere conforme a família de chip. A ficha técnica é a única autoridade para uma dada referência.
Isso quer dizer que o bloqueio parcial funciona bem num layout projetado em torno dele, e mal como ideia posterior sobre um conteúdo disposto sem pensar nas fronteiras dos blocos.
Quando o bloqueio parcial é útil
Um identificador que nunca deve mudar ao lado de um conteúdo que deve. Uma tag de ativo cujo número de série é congelado enquanto os dados de manutenção são atualizados é o exemplo mais claro.
Um cabeçalho de que o seu próprio software depende, protegido contra um colega bem-intencionado regravando a tag com uma ferramenta genérica.
E uma instalação em duas etapas, em que um fabricante grava e congela parte de uma tag antes de um cliente gravar o resto.
O que esses casos compartilham é um layout projetado. O bloqueio parcial é uma técnica de produção e não algo a que se recorra de improviso.
Onde isso dá errado
Ao congelar uma região que inclua a estrutura. Se o contêiner de capacidade cair dentro da faixa bloqueada, a tag nunca mais pode ser reformatada, o que transforma qualquer dano estrutural numa tag morta.
Ao presumir que uma ferramenta entende a sua intenção. A maioria das ferramentas expõe o bloqueio como uma caixa de seleção que define os primeiros bits e congela tudo. O bloqueio seletivo em geral exige endereçar as páginas de configuração diretamente, com a ficha técnica aberta.
E ao esquecer que a fronteira é permanente. Se o seu conteúdo depois crescer além da região desbloqueada, não há como reaver a parte congelada.
Perguntas frequentes
A caixa de bloqueio da minha ferramenta bloqueia tudo?
Quase sempre sim. O bloqueio seletivo normalmente exige gravar páginas de configuração diretamente em vez de usar uma opção única, então presuma que uma caixa de seleção quer dizer a tag inteira.
Eu posso bloquear só o identificador?
O identificador já é somente leitura de fábrica, então não há o que bloquear. O que as pessoas em geral querem dizer é congelar o número de série próprio gravado no conteúdo, que é exatamente para isso que o bloqueio parcial serve.
Qual é o tamanho de cada bloco bloqueável?
Varia conforme a família de chip e está documentado na ficha técnica. Presuma várias páginas em vez de um byte, e projete o layout da memória em torno das fronteiras.
Eu posso desbloquear uma região e manter outra bloqueada?
Não. Todo bit de bloqueio anda num só sentido, então a única direção disponível é bloquear mais da tag, nunca menos.