ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
315386 Топик полностью
MegaJohn (15.03.2012 19:00, просмотров: 96) ответил MegaJohn на Кто юзал исходники Чана, или хорошо разбирается в SD ? на команду CMD0 получаю ответ R1=0x3F, а должон быть 0x01. Что не так делаю ?
победил. Вот такая обертка получилась для прямого низкоуровнего доступа к SD на базе исходников Чана  #include <protocol\fat\diskio.h> //////////////////////////////////////////////////////////////////////////////// bool data_storage_init( void ) { u8fast res = disk_initialize(); if( res == RES_OK ) return true; ASSERT_STR_VAL( "data_storage_init_fail", res ); return false; } //////////////////////////////////////////////////////////////////////////////// bool data_storage_read( u8* dest, size_t len, u32 from_addr ) { // sector offset bytes_qnty u8fast res = disk_readp( (BYTE*)dest, from_addr / 512, from_addr % 512, len ); if( res == RES_OK ) return true; ASSERT_STR_VAL( "data_storage_read_fail", res ); return false; } //////////////////////////////////////////////////////////////////////////////// bool data_storage_write( u8* src, size_t len, u32 to_addr ) { u16fast lba = to_addr / 512; u8fast res = disk_writep( 0, lba ); // Initiate sector write process if( res != RES_OK ) { ASSERT_STR_VAL( "Initiate sector write process fail", res ); return false; } res = disk_writep( (BYTE*)src, len ); if( res != RES_OK ) { ASSERT_STR_VAL( "Send data bytes to the card fail", res ); return false; } res = disk_writep( 0, 0 ); if( res != RES_OK ) { ASSERT_STR_VAL( "Finalize sector write process fail", res ); return false; } return true; }