Экономия оперативной памяти при записи на 2K страницы размером NAND flash

10

Я пишу драйвер для Samsung K9WAG08U1D NAND flashчипа. В спецификации чипа памяти упоминается, что он имеет размер страницы 2048 байт (2 КБ). Я использую, TI MSP430F2619который имеет 4096 байт (4 КБ) оперативной памяти. Это означает, что мне нужно выделить 2 Кбайт памяти только для записи на флэш-память. Мое приложение является конвертером протокола и, следовательно, требует дополнительного буфера для обработки передачи туда и обратно. Пожалуйста, предложите мне лучший подход для уменьшения требований к оперативной памяти из-за размера страницы флэш-памяти.

прасад
источник

Ответы:

7

Вам не нужно заполнять страницу регистрации всего за один раз.

Вы начинаете запись страницы (т. Е. Операцию «Программа страницы»), записывая команду «Последовательный ввод данных» ( 0x80), адрес столбца и адрес строки. Затем вы переносите данные в регистр страницы (до 2112 байт). Этот перенос может быть разбит на куски с любой задержкой между нужными вам кусками.

Заполнив регистр страницы, вы начинаете перенос из регистра страницы в массив командой Page Program Confirm ( 0x10).

Патрик
источник
обратите внимание, что количество флэш-памяти NAND обычно ограничено 4 частичными записями на страницу
1
@Jacen Я не имею в виду частичную запись на страницу. Это делается отдельной командой / адресом / данными / последовательностью команд для каждой части. Я имею в виду разбиение передачи на регистр страниц, который может быть одним «порцией» на байт, если это необходимо.
Патрик
По сути, моя текущая логика драйвера ждала, когда весь 2K буфер в оперативной памяти будет заполнен, а затем записывала на флэш-память. Но теперь у меня также есть минимальный 1-байтовый буфер RAM.
Ах да, вы правы, Патрик, я забыл эту опцию.