1MB version
Dependencies: mbed EEPROM USBDevice
Diff: USBMSD_STEP1.cpp
- Revision:
- 2:5895d66ce410
- Parent:
- 0:1472308ded03
--- 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;