การบันทึกหน่วยความจำแรมเมื่อเขียนลงในขนาดหน้า NK 2K แฟลช


10

ฉันกำลังเขียนไดรเวอร์สำหรับSamsung K9WAG08U1D NAND flashชิป ข้อมูลจำเพาะของชิปหน่วยความจำระบุว่ามีขนาดหน้า 2048 ไบต์ (2kB) ฉันใช้TI MSP430F2619ที่มี RAM 4096 ไบต์ (4kB) ซึ่งหมายความว่าฉันต้องจัดสรรบัฟเฟอร์หน่วยความจำ 2k เพื่อเขียนไปยังแฟลช แอปพลิเคชันของฉันเป็นตัวแปลงโปรโตคอลและดังนั้นจึงต้องใช้บัฟเฟอร์เพิ่มเติมสำหรับการจัดการไปมา กรุณาแนะนำฉันวิธีที่ดีกว่าเพื่อลดความต้องการแรมเนื่องจากขนาดหน้าแฟลช

คำตอบ:


7

คุณไม่จำเป็นต้องกรอกข้อมูลลงทะเบียนทั้งหมดในครั้งเดียว

คุณเริ่มต้นการเขียนหน้า (เช่นการดำเนินงาน "โปรแกรมหน้า") โดยการเขียนคำสั่งป้อนข้อมูลอนุกรม ( 0x80) ที่อยู่คอลัมน์และที่อยู่แถว จากนั้นคุณถ่ายโอนข้อมูลไปยังหน้าลงทะเบียน (สูงสุด 2112 ไบต์) การถ่ายโอนนี้สามารถแบ่งออกเป็นส่วน ๆ ได้หากมีความล่าช้าระหว่างชิ้นส่วนที่คุณต้องการ

เมื่อคุณกรอกข้อมูลการลงทะเบียนหน้าแล้วคุณจะเริ่มต้นการถ่ายโอนจากการลงทะเบียนหน้าไปยังอาร์เรย์ด้วยคำสั่งยืนยันโปรแกรมหน้า ( 0x10)


โปรดทราบว่าแฟลช NAND มักจะ จำกัด อยู่ที่ 4 การเขียนบางส่วนต่อหน้า

1
@ Jacen ฉันไม่ได้หมายถึงการเขียนบางส่วนต่อหน้า ที่ทำโดยคำสั่ง / ที่อยู่ / ข้อมูล / คำสั่งแยกต่างหากต่อส่วน ฉันหมายถึงการยกเลิกการถ่ายโอนไปยังหน้าลงทะเบียนซึ่งอาจเป็นหนึ่ง "ก้อน" ต่อไบต์หากจำเป็น
แพทริค

โดยพื้นฐานแล้วตรรกะไดรเวอร์ปัจจุบันของฉันกำลังรอบัฟเฟอร์ 2K ทั้งหมดใน RAM ให้เต็มแล้วเขียนเป็นแฟลช แต่ตอนนี้ฉันสามารถมีบัฟเฟอร์ RAM ขั้นต่ำ 1 ไบต์ได้เช่นกัน

โอ้ใช่คุณพูดถูก Patrick ฉันลืมตัวเลือกนี้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.