Economizando memória RAM ao gravar no tamanho da página 2K NAND flash

10

Estou escrevendo um driver para o Samsung K9WAG08U1D NAND flashchip. A especificação do chip de memória menciona que ele tem um tamanho de página de 2048 bytes (2kB). Estou usando um TI MSP430F2619que tem 4096 bytes (4kB) de RAM. Isso significa que eu preciso alocar um buffer de memória de 2k apenas para gravar no flash. Minha aplicação é um conversor de protocolo e, portanto, requer um buffer adicional para lidar com a transmissão. Sugira-me uma abordagem melhor para reduzir o requisito de RAM devido ao tamanho da página do flash.

prasad
fonte

Respostas:

7

Você não precisa preencher a página de registro de uma só vez.

Você inicia uma gravação de página (ou seja, a operação "Programa da página") escrevendo o comando Entrada de dados seriais ( 0x80), o endereço da coluna e o endereço da linha. Em seguida, você transfere os dados para o registro da página (até 2112 bytes). Essa transferência pode ser dividida em partes, com qualquer atraso entre as partes necessárias.

Quando você preenche o registro de página, inicia a transferência do registro de página para a matriz com o comando Confirmação de Programa de Página ( 0x10).

Patrick
fonte
por favor note que flashs NAND são geralmente limitados a 4 write parcial por página
1
@ Jacen Não estou me referindo a uma gravação parcial por página. Isso é feito por uma sequência de comando / endereço / dados / comando separada por peça. Estou me referindo a interromper a transferência para o registro da página, que pode ser uma "parte" por byte, se necessário.
Patrick Patrick
Basicamente, minha lógica atual de driver estava aguardando o preenchimento de todo o buffer de 2K na RAM e depois gravado para piscar. Mas agora também posso ter um buffer de RAM de 1 byte mínimo.
Ah sim, você está certo Patrick, eu esqueci essa opção.