Збереження пам’яті оперативної пам’яті під час запису на NAND-спалах розміром 2 К


10

Я пишу драйвер для Samsung K9WAG08U1D NAND flashчіпа. У специфікації чіпа пам'яті згадується, що він має розмір сторінки 2048 байт (2 КБ). Я використовую, TI MSP430F2619який має 4096 байт (4 кБ) оперативної пам’яті. Це означає, що мені потрібно виділити 2k буфер пам'яті просто для запису у спалах. Моя програма є перетворювачем протоколів, і тому потрібен додатковий буфер для обробки та передачі. Підкажіть, будь ласка, кращий підхід до зменшення потреби в оперативній пам’яті через розмір флеш-сторінки.

Відповіді:


7

Вам не потрібно заповнювати реєстр сторінок все за один раз.

Ви починаєте запис сторінки (тобто операцію "Програма сторінки"), написавши команду "Послідовне введення даних" ( 0x80), адресу стовпця та адресу рядка. Потім ви переносите дані в регістр сторінок (до 2112 байт). Ця передача може бути розбита на шматки, з будь-якою затримкою між потрібними фрагментами.

Після заповнення реєстру сторінки ви починаєте передачу з реєстру сторінки в масив за допомогою команди Page Program Confirm ( 0x10).


Зверніть увагу, що спалахи NAND зазвичай обмежуються 4 частковим

1
@Jacen Я не маю на увазі часткове записування на сторінку. Це робиться окремою послідовністю команд / адреси / даних / команд на частину. Я маю на увазі розбиття передачі на реєстр сторінок, який при необхідності може бути одним "шматом" за байтом.
Патрік

В основному моя поточна логіка драйвера чекала, коли весь 2К буфер в оперативній пам'яті буде заповнений, а потім записувати на спалах. Але тепер я також можу мати мінімум 1 байт буфера оперативної пам’яті.

О так, ти маєш рацію Патріку, я забув цей варіант.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.