AirioBase + 2 chip PicoSSD board.

Dependencies:   mbed EEPROM USBDevice

Revision:
2:5895d66ce410
Parent:
0:1472308ded03
Child:
4:2e8b78a74493
--- a/USBMSD_STEP1.cpp	Tue Feb 09 12:02:52 2021 +0000
+++ b/USBMSD_STEP1.cpp	Wed Feb 10 01:11:07 2021 +0000
@@ -60,31 +60,31 @@
 int USBMSD_STEP1::disk_read(uint8_t* data, uint64_t block, uint8_t count)
 {
     *m_ledRead = 0; 
-    //m_rawNand->pageRead(data,m_bbt->getTranslatedBlockAddress(block>>3),56+(block&0x7),0,512);
-    m_rawNand->pageRead(data,m_bbt->getTranslatedBlockAddress(block),63,0,512);
+    m_rawNand->pageRead(data,m_bbt->getTranslatedBlockAddress(block>>1),62+(block&0x1),0,512);
+    //m_rawNand->pageRead(data,m_bbt->getTranslatedBlockAddress(block),63,0,512);
     *m_ledRead = 1;
     return 0;
 }
 int USBMSD_STEP1::disk_write(const uint8_t* data, uint64_t block, uint8_t count)
 {
     *m_ledWrite = 0;
-/*
     // copy data
-    for (uint16_t c=0;c<8;c++){
-        m_rawNand->pageRead(m_buffer+512*c,m_bbt->getTranslatedBlockAddress(block>>3),56+c,0,512);
+    for (uint16_t c=0;c<2;c++){
+        if ( (block&0x1) == c) continue;
+        m_rawNand->pageRead(m_buffer,m_bbt->getTranslatedBlockAddress(block>>1),62+c,0,512);
     }
     // write data
-    m_rawNand->erase(m_bbt->getTranslatedBlockAddress(block>>3));
-    for (uint16_t c=0;c<8;c++){
-        if ( (block&0x7) == c) {
-            m_rawNand->pageProgram(data,m_bbt->getTranslatedBlockAddress(block>>3),56+c,0,512);
+    m_rawNand->erase(m_bbt->getTranslatedBlockAddress(block>>1));
+    for (uint16_t c=0;c<2;c++){
+        if ( (block&0x1) == c) {
+            m_rawNand->pageProgram(data,m_bbt->getTranslatedBlockAddress(block>>1),62+c,0,512);
         } else {
-            m_rawNand->pageProgram(m_buffer+512*c,m_bbt->getTranslatedBlockAddress(block>>3),56+c,0,512);
+            m_rawNand->pageProgram(m_buffer,m_bbt->getTranslatedBlockAddress(block>>1),62+c,0,512);
         }
     }
-*/
-    m_rawNand->erase(m_bbt->getTranslatedBlockAddress(block));
-    m_rawNand->pageProgram(data,m_bbt->getTranslatedBlockAddress(block),63,0,512);
+
+    //m_rawNand->erase(m_bbt->getTranslatedBlockAddress(block));
+    //m_rawNand->pageProgram(data,m_bbt->getTranslatedBlockAddress(block),63,0,512);
 
     *m_ledWrite = 1; 
     return 0;