Re: How to use test_sd.c
Posted: Wed Aug 16, 2017 1:12 pm
Maybe you can run some other example (which runs) on the same hardware and compare bootloader log (up to 'entry' line) to see if there is any difference in SPI flash parameters?
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0010,len:4
load:0x3fff0014,len:4124
load:0x40078000,len:0
load:0x40078000,len:11968
entry 0x40078cd8
rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0010,len:4
load:0x3fff0014,len:5108
load:0x40078000,len:0
load:0x40078000,len:12652
entry 0x40078f44
Sorry, i haven't read your post. And yes, that was the right clue.Did you try 'make erase_flash'?
It looks like you may have an otadata partition which selects ota_0
Code: Select all
make flash monitor TEST_COMPONENTS=sdmmc ESPPORT=/dev/ttyUSB0Code: Select all
Here's the test menu, pick your combo:
(1) "can probe SD" [sd][ignore]
(2) "can probe SD (using SPI)" [sdspi][ignore]
(3) "can write and read back blocks" [sd][ignore]
(4) "can write and read back blocks (using SPI)" [sdspi][ignore]
(5) "reads and writes with an unaligned buffer" [sd][ignore]:can probe SD:FAIL: Expected 0 Was 259
Test ran in 11ms
can write and read back blocks:FAIL: Expected 0 Was 2
59
Test ran in 14ms
can write and read back blocks (using SPI):FAIL: Expe
cted 0 Was 259
Test ran in 23ms
Do i have to consider something in the code? I want to test 1 line modereads and writes with an unaligned buffer:FAIL: Expec
ted 0 Was 259
Test ran in 16ms
Name: SS08G
Type: SDHC/SDXC
Speed: default speed
Size: 30436MB
Code: Select all
TEST_CASE("can write and read back blocks", "[sd][ignore]")
{
sdmmc_host_t config = SDMMC_HOST_DEFAULT();
config.max_freq_khz = SDMMC_FREQ_HIGHSPEED;
config.flags = SDMMC_HOST_FLAG_1BIT;
TEST_ESP_OK(sdmmc_host_init());
sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT();
TEST_ESP_OK(sdmmc_host_init_slot(SDMMC_HOST_SLOT_1, &slot_config));
sdmmc_card_t* card = malloc(sizeof(sdmmc_card_t));
TEST_ASSERT_NOT_NULL(card);
TEST_ESP_OK(sdmmc_card_init(&config, card));
read_write_test(card);
free(card);
TEST_ESP_OK(sdmmc_host_deinit());
}