ESP32 as ISP

User avatar
Vader_Mester
Posts: 300
Joined: Tue Dec 05, 2017 8:28 pm
Location: Hungary
Contact:

Re: ESP32 as ISP

Postby Vader_Mester » Tue Feb 27, 2018 9:52 am

Now that is good news. If you happen to succeed, in this, let me know. I have a forthcoming smart light project with the PICO in the center.

Vader[BEN]

Code: Select all

task_t coffeeTask()
{
	while(atWork){
		if(!xStreamBufferIsEmpty(mug)){
			coffeeDrink(mug);
		} else {
			xTaskCreate(sBrew, "brew", 9000, &mug, 1, NULL);
			xSemaphoreTake(sCoffeeRdy, portMAX_DELAY);
		}
	}
	vTaskDelete(NULL);
}

hgptamn
Posts: 26
Joined: Mon Oct 16, 2017 4:47 pm

Re: ESP32 as ISP

Postby hgptamn » Wed Feb 28, 2018 11:07 am

Any news on this matter?
I see that the guys at Arduino have a tutorial on their website entirely dedicated to this: https://www.arduino.cc/en/Tutorial/ArduinoISP

User avatar
Vader_Mester
Posts: 300
Joined: Tue Dec 05, 2017 8:28 pm
Location: Hungary
Contact:

Re: ESP32 as ISP

Postby Vader_Mester » Wed Feb 28, 2018 12:35 pm

Check this thread in Showcase, for external flash driver (I knew we had it somewhere :) ).
https://esp32.com/viewtopic.php?f=17&t=4666

Check driver files.
1 note is that as far as I know, in case of most flashes, you can only program 1 page at a time, 256bytes (Command, Address, 256byte of data), because the flash page size is usually that large. You just read the 256bytes of chunks from your .bin file until you write everything to the flash.

Normally the flash is a Winbond flash, but what you see in the datasheet below, usually applies to all NOR flashes.
http://www.winbond.com/resource-files/w ... %20kms.pdf

I haven't looked into the driver yet, so check it out.

Code: Select all

task_t coffeeTask()
{
	while(atWork){
		if(!xStreamBufferIsEmpty(mug)){
			coffeeDrink(mug);
		} else {
			xTaskCreate(sBrew, "brew", 9000, &mug, 1, NULL);
			xSemaphoreTake(sCoffeeRdy, portMAX_DELAY);
		}
	}
	vTaskDelete(NULL);
}

hgptamn
Posts: 26
Joined: Mon Oct 16, 2017 4:47 pm

Re: ESP32 as ISP

Postby hgptamn » Wed Feb 28, 2018 1:10 pm

@Vader_Mester
I've also came across that github repo while looking for a solution to this problem. Unfortunately, it doesn't provide much more info than the other ones out there; this one is another example. They are great for testing basic operations on the serial flash, but provide no real solution to the problem of uploading a bin/hex file to it.
Reading more into this, I think that the bootloader of the programmer board needs to be modified in order for SPI flashing to work (feel free to correct me if I'm wrong).

User avatar
Vader_Mester
Posts: 300
Joined: Tue Dec 05, 2017 8:28 pm
Location: Hungary
Contact:

Re: ESP32 as ISP

Postby Vader_Mester » Wed Feb 28, 2018 1:26 pm

If you have a driver to write to flash, then you can write anything. You just declare buffers, get their pointers, and pass them to the writing function which does it, and then repeat.
You first need to calculate the size of the .bin file in bytes, the number of page writes needed, and a for cycle to do the write and warification.

So
1st: erase target flash, and read from the target flash to check if it's erased.

- Read the first 256 bytes from the .bin file on the ESP-Flash, and copy it into a DMA buffer.
- Disable write protect on the target flash
- Start writing the 256bytes of data to target
- Read back the written data into a receive buffer
- Compare the 2 sets of 256bytes to make sure you correctly written the target flash
- repeat.

For you, I think the library I linked should be good to go.

Code: Select all

task_t coffeeTask()
{
	while(atWork){
		if(!xStreamBufferIsEmpty(mug)){
			coffeeDrink(mug);
		} else {
			xTaskCreate(sBrew, "brew", 9000, &mug, 1, NULL);
			xSemaphoreTake(sCoffeeRdy, portMAX_DELAY);
		}
	}
	vTaskDelete(NULL);
}

hgptamn
Posts: 26
Joined: Mon Oct 16, 2017 4:47 pm

Re: ESP32 as ISP

Postby hgptamn » Wed Feb 28, 2018 1:46 pm

Vader_Mester wrote:If you have a driver to write to flash, then you can write anything. You just declare buffers, get their pointers, and pass them to the writing function which does it, and then repeat.
You first need to calculate the size of the .bin file in bytes, the number of page writes needed, and a for cycle to do the write and warification.

So
1st: erase target flash, and read from the target flash to check if it's erased.

- Read the first 256 bytes from the .bin file on the ESP-Flash, and copy it into a DMA buffer.
- Disable write protect on the target flash
- Start writing the 256bytes of data to target
- Read back the written data into a receive buffer
- Compare the 2 sets of 256bytes to make sure you correctly written the target flash
- repeat.

For you, I think the library I linked should be good to go.
That is certainly easier said than done, especially if I take into consideration my limited interaction with ESP-IDF (most of the time I use Arduino IDE + ESP32 Core for Arduino), but I will try to look into it.
First of all I have to figure out a way to make it work with SPI routed trought the GPIO MUX. For now I see it only works with default HSPI/VSPI bus pins. I'm using GPIO 25,26 & 27 for the main SPI lines.
Second of all I will have to check the compatibility with S25FL164K Cypress serial NOR flash that I'm using.
Last, if I'm lucky, and by now all is fine I'll might be able to implement the algorithm you've described.
I'll let you know the result.

User avatar
Vader_Mester
Posts: 300
Joined: Tue Dec 05, 2017 8:28 pm
Location: Hungary
Contact:

Re: ESP32 as ISP

Postby Vader_Mester » Wed Feb 28, 2018 2:17 pm

If you compare the 2 datasheets, you will find the conclusion.
So far what I have seen for flashes, is that all the functions and commands are exactly the same, there are some manufacturer specific commands and registers you normally don't need.

I started ESP32 with Arduino.. then discovered ESP-IDF and dumped Arduino completely.
Reason: The learning curve is not that quick for the IDF, but now most of the commands are in my fingers for navigating and make commands, so I can easily flash things.
I strongly recommend Eclipse for writing in C or Cpp, as it's compatible with the make system used by IDF. So essentially you can use Codeblocks, Notepad++, Eclipse, etc for code writing.

The important thing is to use the Monitor function in IDF "make monitor" after you flash something. When you write your code, use a bunch of Printf-s after each function has run, to see how your code progresses, that you can monitor.

By the way, the sequence I wrote in the previous post is right in the code from Illucius, write test function.
"exflash.cpp"

Write test function - Starting from line 115:
Here you define the basic info for the flash chip, and GPIO pins for the SPI, SPI freq, as well as maximum DMA size, etc.

Code: Select all

void write_test(ExtFlash & flash, const char *name, const char *cycles)
{
    printf("%-5.5s  %-6.6s  ", name, cycles);

    ext_flash_config_t cfg =
    {
        .vspi = true,
        .sck_io_num = PIN_SPI_SCK,
        .miso_io_num = PIN_SPI_MISO,
        .mosi_io_num = PIN_SPI_MOSI,
        .ss_io_num = PIN_SPI_SS,
        .hd_io_num = PIN_SPI_HD,
        .wp_io_num = PIN_SPI_WP,
        .speed_mhz = 40,
        .dma_channel = 1,
        .queue_size = 2,
        .max_dma_size = 8192,
        .sector_size = 0,
        .capacity = 0
    };
    
Further down in the write test function (line 143)

Code: Select all

int cap = flash.chip_size();
        int sector_sz = flash.sector_size();
        int step = cap / 16;
        uint8_t *rbuf = (uint8_t *) malloc(sector_sz);
        uint8_t *wbuf = (uint8_t *) malloc(sector_sz);
        
This code checks flash size, and creates the write and read buffers

And finally this is what you need. (Starting from line 158).

Code: Select all

        for (addr = 0; addr < cap; addr += step)
        {
            sectors++;
            flash.erase_sector(addr / sector_sz);
            flash.write(addr, wbuf, sector_sz);
            flash.read(addr, rbuf, sector_sz);
            bool good = true;
            for (int b = 0; b < sector_sz; b++)
            {
                if (wbuf[b] != rbuf[b])
                {
                    printf("erase/write/verify failed at block %d offset %d\n", addr / sector_sz, b);
                    
This nice code eareses a sector before write, writes the Write buffer, reads the written data back to the read buffer, and

Code: Select all

 if (wbuf[b] != rbuf[b])
compares the 2 buffers, the printf function then prints to serial (into the monitor app),if it is failed, and in which cycle (sector write)
Further below, it will write out to serial the 2 data arrays in a visible form.

You basically include this library into your project, and in your main app, you just call the functions with some given data, and then you are done!

Code: Select all

task_t coffeeTask()
{
	while(atWork){
		if(!xStreamBufferIsEmpty(mug)){
			coffeeDrink(mug);
		} else {
			xTaskCreate(sBrew, "brew", 9000, &mug, 1, NULL);
			xSemaphoreTake(sCoffeeRdy, portMAX_DELAY);
		}
	}
	vTaskDelete(NULL);
}

User avatar
Vader_Mester
Posts: 300
Joined: Tue Dec 05, 2017 8:28 pm
Location: Hungary
Contact:

Re: ESP32 as ISP

Postby Vader_Mester » Thu Mar 01, 2018 7:36 am

1 additional thing for the above:

You can try to use SPIFFS on the programmer ESP32, to store the .bin file.

There is an example in the ESP-IDF repo: [url]https://github.com/espressif/esp-idf/tr ... age/spiffs[/url

Using this, you can essentialy store your .bin file you want to program, as a binary, and using the example, the following functions can be used:

Code: Select all

  f = fopen("/spiffs/foo.txt", "r");
    if (f == NULL) {
        ESP_LOGE(TAG, "Failed to open file for reading");
        return;
    }
    char line[64];
    fgets(line, sizeof(line), f);
    fclose(f);
    // strip newline
    char* pos = strchr(line, '\n');
    if (pos) {
        *pos = '\0';
    }
    ESP_LOGI(TAG, "Read from file: '%s'", line);
This effectively opens a .txt file stored on the ESP flash, and created the pointer "f" to the file, which the rest of the system can use to read, from etc.
Here you can use POSIX and C standard library functions to work with files, the example is very nice.

For you this should be the most convenient to put your .bin file onto the ESP-ISP flash, as it's just a matter of preparing the partition contents and use the tools to include it when the project is getting built.

Warning here is that, you may have some limitations on how much data can you store on the flash of the ISP. I suggest using a 16MB flash for the ISP, which is well enough for almost anything.

Vader[Ben]

Code: Select all

task_t coffeeTask()
{
	while(atWork){
		if(!xStreamBufferIsEmpty(mug)){
			coffeeDrink(mug);
		} else {
			xTaskCreate(sBrew, "brew", 9000, &mug, 1, NULL);
			xSemaphoreTake(sCoffeeRdy, portMAX_DELAY);
		}
	}
	vTaskDelete(NULL);
}

hgptamn
Posts: 26
Joined: Mon Oct 16, 2017 4:47 pm

Re: ESP32 as ISP

Postby hgptamn » Thu Mar 01, 2018 10:23 am

Big thanks for your help, Ben!

The library seems to work with the Cypress S25FL164K serial flash that I use. As you said, the instructions for both Winbond and Cypress serial flash NOR chips are quite the same (also applies for other manuf. like GigaDevice, Macronix etc).
Here are the results for reading:

Code: Select all

         Bus     Bus       Queue  Block Block
Mode    Cycles   Mhz       Size   Size  Count    Secs     MB/s
std     1-1-1    10         1     256   32768    8.17     0.98
std     1-1-1    10         1     512   16384    7.44     1.08
std     1-1-1    10         1    1024    8192    7.07     1.13
std     1-1-1    10         1    2048    4096    6.89     1.16
std     1-1-1    10         1    4096    2048    6.80     1.18
std     1-1-1    10         1    8192    1024    6.76     1.18
std     1-1-1    10         1   16384     512    6.76     1.18
std     1-1-1    10         1   32768     256    6.76     1.18
std     1-1-1    10         1   65536     128    6.76     1.18
std     1-1-1    10         2     256   32768    8.17     0.98
std     1-1-1    10         2     512   16384    7.44     1.08
std     1-1-1    10         2    1024    8192    7.08     1.13
std     1-1-1    10         2    2048    4096    6.89     1.16
std     1-1-1    10         2    4096    2048    6.80     1.18
std     1-1-1    10         2    8192    1024    6.76     1.18
std     1-1-1    10         2   16384     512    6.75     1.19
std     1-1-1    10         2   32768     256    6.74     1.19
std     1-1-1    10         2   65536     128    6.74     1.19
std     1-1-1    10         3     256   32768    8.17     0.98
std     1-1-1    10         3     512   16384    7.44     1.08
std     1-1-1    10         3    1024    8192    7.08     1.13
std     1-1-1    10         3    2048    4096    6.89     1.16
std     1-1-1    10         3    4096    2048    6.80     1.18
std     1-1-1    10         3    8192    1024    6.76     1.18
std     1-1-1    10         3   16384     512    6.75     1.19
std     1-1-1    10         3   32768     256    6.74     1.19
std     1-1-1    10         3   65536     128    6.74     1.19
std     1-1-1    10         4     256   32768    8.17     0.98
std     1-1-1    10         4     512   16384    7.44     1.08
std     1-1-1    10         4    1024    8192    7.08     1.13
std     1-1-1    10         4    2048    4096    6.89     1.16
std     1-1-1    10         4    4096    2048    6.80     1.18
std     1-1-1    10         4    8192    1024    6.76     1.18
std     1-1-1    10         4   16384     512    6.75     1.19
std     1-1-1    10         4   32768     256    6.74     1.19
std     1-1-1    10         4   65536     128    6.74     1.19
std     1-1-1    20         1     256   32768    4.74     1.69
std     1-1-1    20         1     512   16384    4.05     1.98
std     1-1-1    20         1    1024    8192    3.70     2.16
std     1-1-1    20         1    2048    4096    3.53     2.27
std     1-1-1    20         1    4096    2048    3.44     2.32
std     1-1-1    20         1    8192    1024    3.40     2.35
std     1-1-1    20         1   16384     512    3.40     2.35
std     1-1-1    20         1   32768     256    3.40     2.35
std     1-1-1    20         1   65536     128    3.40     2.35
std     1-1-1    20         2     256   32768    4.74     1.69
std     1-1-1    20         2     512   16384    4.05     1.98
std     1-1-1    20         2    1024    8192    3.70     2.16
std     1-1-1    20         2    2048    4096    3.53     2.27
std     1-1-1    20         2    4096    2048    3.44     2.32
std     1-1-1    20         2    8192    1024    3.40     2.35
std     1-1-1    20         2   16384     512    3.39     2.36
std     1-1-1    20         2   32768     256    3.38     2.37
std     1-1-1    20         2   65536     128    3.38     2.37
std     1-1-1    20         3     256   32768    4.74     1.69
std     1-1-1    20         3     512   16384    4.05     1.98
std     1-1-1    20         3    1024    8192    3.70     2.16
std     1-1-1    20         3    2048    4096    3.53     2.27
std     1-1-1    20         3    4096    2048    3.44     2.32
std     1-1-1    20         3    8192    1024    3.40     2.35
std     1-1-1    20         3   16384     512    3.39     2.36
std     1-1-1    20         3   32768     256    3.38     2.37
std     1-1-1    20         3   65536     128    3.38     2.37
std     1-1-1    20         4     256   32768    4.74     1.69
std     1-1-1    20         4     512   16384    4.05     1.98
std     1-1-1    20         4    1024    8192    3.70     2.16
std     1-1-1    20         4    2048    4096    3.53     2.27
std     1-1-1    20         4    4096    2048    3.44     2.32
std     1-1-1    20         4    8192    1024    3.40     2.35
std     1-1-1    20         4   16384     512    3.39     2.36
std     1-1-1    20         4   32768     256    3.38     2.37
std     1-1-1    20         4   65536     128    3.38     2.37
std     1-1-1    40         1     256   32768    3.02     2.65
std     1-1-1    40         1     512   16384    2.35     3.41
std     1-1-1    40         1    1024    8192    2.01     3.97
std     1-1-1    40         1    2048    4096    1.85     4.33
std     1-1-1    40         1    4096    2048    1.76     4.54
std     1-1-1    40         1    8192    1024    1.72     4.65
std     1-1-1    40         1   16384     512    1.72     4.65
std     1-1-1    40         1   32768     256    1.72     4.65
std     1-1-1    40         1   65536     128    1.72     4.65
std     1-1-1    40         2     256   32768    3.02     2.65
std     1-1-1    40         2     512   16384    2.35     3.40
std     1-1-1    40         2    1024    8192    2.01     3.97
std     1-1-1    40         2    2048    4096    1.85     4.33
std     1-1-1    40         2    4096    2048    1.76     4.54
std     1-1-1    40         2    8192    1024    1.72     4.65
std     1-1-1    40         2   16384     512    1.71     4.68
std     1-1-1    40         2   32768     256    1.70     4.70
std     1-1-1    40         2   65536     128    1.70     4.71
std     1-1-1    40         3     256   32768    3.02     2.65
std     1-1-1    40         3     512   16384    2.35     3.40
std     1-1-1    40         3    1024    8192    2.01     3.97
std     1-1-1    40         3    2048    4096    1.85     4.33
std     1-1-1    40         3    4096    2048    1.76     4.54
std     1-1-1    40         3    8192    1024    1.72     4.65
std     1-1-1    40         3   16384     512    1.71     4.68
std     1-1-1    40         3   32768     256    1.70     4.70
std     1-1-1    40         3   65536     128    1.70     4.71
std     1-1-1    40         4     256   32768    3.02     2.65
std     1-1-1    40         4     512   16384    2.35     3.40
std     1-1-1    40         4    1024    8192    2.01     3.97
std     1-1-1    40         4    22048   4096    1.85     4.33
std     1-1-1    40         4    4096    2048    1.76     4.54
std     1-1-1    40         4    8192    1024    1.72     4.65
std     1-1-1    40         4   16384     512    1.71     4.68
std     1-1-1    40         4   32768     256    1.70     4.70
std     1-1-1    40         4   65536     128    1.70     4.71
std     1-1-1    80         1     256   32768    2.16     3.70
std     1-1-1    80         1     512   16384    1.50     5.33
std     1-1-1    80         1    1024    8192    1.17     6.84
std     1-1-1    80         1    2048    4096    1.00     7.97
std     1-1-1    80         1    4096    2048    0.92     8.67
std     1-1-1    80         1    8192    1024    0.88     9.07
std     1-1-1    80         1   16384     512    0.88     9.08
std     1-1-1    80         1   32768     256    0.88     9.08
std     1-1-1    80         1   65536     128    0.88     9.09
std     1-1-1    80         2     256   32768    2.16     3.70
std     1-1-1    80         2     512   16384    1.50     5.33
std     1-1-1    80         2    1024    8192    1.17     6.84
std     1-1-1    80         2    2048    4096    1.00     7.96
std     1-1-1    80         2    4096    2048    0.92     8.67
std     1-1-1    80         2    8192    1024    0.88     9.07
std     1-1-1    80         2   16384     512    0.87     9.20
std     1-1-1    80         2   32768     256    0.86     9.26
std     1-1-1    80         2   65536     128    0.86     9.29
std     1-1-1    80         3     256   32768    2.16     3.70
std     1-1-1    80         3     512   16384    1.50     5.33
std     1-1-1    80         3    1024    8192    1.17     6.84
std     1-1-1    80         3    2048    4096    1.00     7.96
std     1-1-1    80         3    4096    2048    0.92     8.67
std     1-1-1    80         3    8192    1024    0.88     9.07
std     1-1-1    80         3   16384     512    0.87     9.20
std     1-1-1    80         3   32768     256    0.86     9.26
std     1-1-1    80         3   65536     128    0.86     9.29
std     1-1-1    80         4     256   32768    2.16     3.70
std     1-1-1    80         4     512   16384    1.50     5.33
std     1-1-1    80         4    1024    8192    1.17     6.84
std     1-1-1    80         4    2048    4096    1.00     7.96
std     1-1-1    80         4    4096    2048    0.92     8.67
std     1-1-1    80         4    8192    1024    0.88     9.07
std     1-1-1    80         4   16384     512    0.87     9.20
std     1-1-1    80         4   32768     256    0.86     9.26
std     1-1-1    80         4   65536     128    0.86     9.29
dual    1-1-2    10         1     256   32768    4.83     1.66
dual    1-1-2    10         1     512   16384    4.10     1.95
dual    1-1-2    10         1    1024    8192    3.72     2.15
dual    1-1-2    10         1    2048    4096    3.54     2.26
dual    1-1-2    10         1    4096    2048    3.45     2.32
dual    1-1-2    10         1    8192    1024    3.40     2.35
dual    1-1-2    10         1   16384     512    3.40     2.35
dual    1-1-2    10         1   32768     256    3.40     2.35
dual    1-1-2    10         1   65536     128    3.40     2.35
dual    1-1-2    10         2     256   32768    4.83     1.66
dual    1-1-2    10         2     512   16384    4.10     1.95
dual    1-1-2    10         2    1024    8192    3.72     2.15
dual    1-1-2    10         2    2048    4096    3.54     2.26
dual    1-1-2    10         2    4096    2048    3.45     2.32
dual    1-1-2    10         2    8192    1024    3.40     2.35
dual    1-1-2    10         2   16384     512    3.39     2.36
dual    1-1-2    10         2   32768     256    3.38     2.36
dual    1-1-2    10         2   65536     128    3.38     2.37
dual    1-1-2    10         3     256   32768    4.83     1.66
dual    1-1-2    10         3     512   16384    4.10     1.95
dual    1-1-2    10         3    1024    8192    3.72     2.15
dual    1-1-2    10         3    2048    4096    3.54     2.26
dual    1-1-2    10         3    4096    2048    3.45     2.32
dual    1-1-2    10         3    8192    1024    3.40     2.35
dual    1-1-2    10         3   16384     512    3.39     2.36
dual    1-1-2    10         3   32768     256    3.38     2.36
dual    1-1-2    10         3   65536     128    3.38     2.37
dual    1-1-2    10         4     256   32768    4.83     1.66
dual    1-1-2    10         4     512   16384    4.10     1.95
dual    1-1-2    10         4    1024    8192    3.72     2.15
dual    1-1-2    10         4    2048    4096    3.54     2.26
dual    1-1-2    10         4    4096    2048    3.45     2.32
dual    1-1-2    10         4    8192    1024    3.40     2.35
dual    1-1-2    10         4   16384     512    3.39     2.36
dual    1-1-2    10         4   32768     256    3.38     2.36
dual    1-1-2    10         4   65536     128    3.38     2.37
dual    1-1-2    20         1     256   32768    3.08     2.60
dual    1-1-2    20         1     512   16384    2.38     3.36
dual    1-1-2    20         1    1024    8192    2.03     3.95
dual    1-1-2    20         1    2048    4096    1.85     4.32
dual    1-1-2    20         1    4096    2048    1.77     4.53
dual    1-1-2    20         1    8192    1024    1.72     4.64
dual    1-1-2    20         1   16384     512    1.72     4.65
dual    1-1-2    20         1   32768     256    1.72     4.65
dual    1-1-2    20         1   65536     128    1.72     4.65
dual    1-1-2    20         2     256   32768    3.08     2.60
dual    1-1-2    20         2     512   16384    2.38     3.36
dual    1-1-2    20         2    1024    8192    2.03     3.94
dual    1-1-2    20         2    2048    4096    1.85     4.32
dual    1-1-2    20         2    4096    2048    1.77     4.53
dual    1-1-2    20         2    8192    1024    1.72     4.64
dual    1-1-2    20         2   16384     512    1.71     4.68
dual    1-1-2    20         2   32768     256    1.70     4.69
dual    1-1-2    20         2   65536     128    1.70     4.70
dual    1-1-2    20         3     256   32768    3.08     2.60
dual    1-1-2    20         3     512   16384    2.38     3.36
dual    1-1-2    20         3    1024    8192    2.03     3.94
dual    1-1-2    20         3    2048    4096    1.85     4.32
dual    1-1-2    20         3    4096    2048    1.77     4.53
dual    1-1-2    20         3    8192    1024    1.72     4.64
dual    1-1-2    20         3   16384     512    1.71     4.68
dual    1-1-2    20         3   32768     256    1.70     4.69
dual    1-1-2    20         3   65536     128    1.70     4.70
dual    1-1-2    20         4     256   32768    3.08     2.60
dual    1-1-2    20         4     512   16384    2.38     3.36
dual    1-1-2    20         4    1024    8192    2.03     3.94
dual    1-1-2    20         4    2048    4096    1.85     4.32
dual    1-1-2    20         4    4096    2048    1..7     4.53
dual    1-1-2    20         4    8192    1024    1.72     4.64
dual    1-1-2    20         4   16384     512    1.77     4.68
dual    1-1-2    20         4   32768     256    1.70     4.69
dual    1-1-2    20         4   65536     128    1.77     4.70
dual    1-1-2    40         1     256   32768    2.20     3.63
dual    1-1-2    40         1     512   16384    1.52     5.26
dual    1-1-2    40         1    1024    8192    1.18     6.78
dual    1-1-2    40         1    2048    4096    1.01     7.93
dual    1-1-2    40         1    4096    2048    0.93     8.64
dual    1-1-2    40         1    8192    1024    0.88     9.06
dual    1-1-2    40         1   16384     512    0..8     9.07
dual    1-1-2    40         1   32768     256    0.88     9.07
dual    1-1-2    40         1   65536     128    0.88     9.08
dual    1-1-2    40         2     256   32768    2.20     3.63
dual    1-1-2    40         2     512   16384    1.52     5.26
dual    1-1-2    40         2    1024    8192    1.18     6.78
dual    1-1-2    40         2    2048    4096    1.01     7.93
dual    1-1-2    40         2    4096    2048    0.93     8.64
dual    1-1-2    40         2    8192    1024    0.88     9.06
dual    1-1-2    40         2   16384     512    0.87     9.19
dual    1-1-2    40         2   32768     256    0.86     9.25
dual    1-1-2    40         2   65536     128    0.86     9.28
dual    1-1-2    40         3     256   32768    2.20     3.63
dual    1-1-2    40         3     512   16384    1.52     5.26
dual    1-1-2    40         3    1024    8192    1.18     6.78
dual    1-1-2    40         3    20048   4096    1.01     7.93
dual    1-1-2    40         3    4096    2048    0.93     8.64
dual    1-1-2    40         3    8192    1024    0.88     9.06
dual    1-1-2    40         3   16384     512    0.87     9.19
dual    1-1-2    40         3   32768     256    0.86     9.25
dual    1-1-2    40         3   65536     128    0.86     9.28
dual    1-1-2    40         4     256   32768    2.20     3.63
dual    1-1-2    40         4     512   16384    1.52     5.26
dual    1-1-2    40         4    1024    8192    1.18     6.78
dual    1-1-2    40         4    2048    4096    1.01     7.93
dual    1-1-2    40         4    4096    2048    0.93     8.64
dual    1-1-2    40         4    8192    1024    0.88     9.06
dual    1-1-2    40         4   16384     512    0.877    9.19
dual    1-1-2    40         4   32768     256    0.86     9.25
dual    1-1-2    40         4   65536     128    0.86     9.28
dual    1-1-2    80         1     256   32768    1.73     4.62
dual    1-1-2    80         1     512   16384    1.09     7.32
dual    1-1-2    80         1    1024    8192    0.76    10.59
dual    1-1-2    80         1    2048    4096    0.59    13.62
dual    1-1-2    80         1    4096    2048    0.50    15.85
dual    1-1-2    80         1    8192    1024    0.46    17.29
dual    1-1-2    80         1   16384     512    0.46    17.31
dual    1-1-2    80         1   32768     225    0.46    17.33
dual    1-1-2    80         1   65536     128    0.46    17.34
dual    1-1-2    80         2     256   32768    1.73    44.61
dual    1-1-2    80         2     512   16384    1.09     7.32
dual    1-1-2    80         2    1024    8192    0.76    10.59
dual    1-1-2    80         2    2048    4096    0.59    13.62
dual    1-1-2    80         2    4096    2048    0.50    15.85
dual    1-1-2    80         2    8192    1024    0.46    17.28
dual    1-1-2    80         2   16384     512    0.45    17.75
dual    1-1-2    80         2   32768     256    0.44    17.99
dual    1-1-2    80         2   65536     128    0.44    18.11
dual    1-1-2    80         3     256   32768    1.73     4.61
dual    1-1-2    80         3     512   11638    1.09     7.32
dual    1-1-2    80         3    1024    8192    0.76    10.59
dual    1-1-2    80         3    2048    4096    0.59    13.61
dual    1-1-2    80         3    4096    2048    0.50    15.85
dual    1-1-2    80         3    8192    1024    0.46    17.28
dual    1-1-2    80         3   16384     512    0.45    17.75
dual    1-1-2    80         3   32768     256    0.44    17.99
dual    1-1-2    80         3   65536     128    0.44    18.11
dual    1-1-2    80         4     256   32768    1.73     4.61
dual    1-1-2    80         4     512   16384    1.09     7.32
dual    1-1-2    80         4    1024    8192    0.76    10.59
dual    1-1-2    80         4    2048    4096    0.59    13.61
dual    1-1-2    80         4    4096    2048    0.50    15.85
dual    1-1-2    80         4    8192    1024    0.46    17.28
dual    1-1-2    80         4   16384     512    0.45    17.75
dual    1-1-2    80         4   32768     256    0.44    17.99
dual    1-1-2    80         4   65536     128    0.44    18.11
dio     1-2-2    10         1     256   32768    4.79     1.67
dio     1-2-2    10         1     512   16384    4.07     1.97
dio     1-2-2    10         1    1024    8192    3.71     2.15
dio     1-2-2    10         1    2048    4096    3.53     2.26
dio     1-2-2    10         1    4096    2048    3.45     2.32
dio     1-2-2    10         1    8192    1024    3.40     2.35
dio     1-2-2    10         1   16384     512    3.40     2.35
dio     1-2-2    10         1   32768     256    3.40     2.35
dio     1-2-2    10         1   65536     128    3.40     2.35
dio     1-2-2    10         2     256   32768    4.79     1.67
dio     1-2-2    10         2     512   16384    4.07     1.97
dio     1-2-2    10         2    1024    8192    3.71     2.15
dio     1-2-2    10         2    2048    4096    3.53     2.26
dio     1-2-2    10         2    4096    2048    3.45     2.32
dio     1-2-2    10         2    8192    1024    3.40     2.35
dio     1-2-2    10         2   16384     512    3.39     2.36
dio     1-2-2    10         2   32768     256    3.38     2.36
dio     1-2-2    10         2   65536     128    3.38     2.37
dio     1-2-2    10         3     256   32768    4.79     1.67
dio     1-2-2    10         3     512   16384    4.07     1.97
dio     1-2-2    10         3    1024    8192    3.71     2.15
dio     1-2-2    10         3    2048    4096    3.53     2.26
dio     1-2-2    10         3    4096    2048    3.45     2.32
dio     1-2-2    10         3    8192    1024    3.40     2.35
dio     1-2-2    10         3   16384     512    3.39     2.36
dio     1-2-2    10         3   32768     256    3.38     2.36
dio     1-2-2    10         3   65536     128    3.38     2.37
dio     1-2-2    10         4     256   32768    4.79     1.67
dio     1-2-2    10         4     512   16384    4.07     1.97
dio     1-2-2    10         4    1024    8192    3.71     2.15
dio     1-2-2    10         4    2048    4096    3.53     2.26
dio     1-2-2    10         4    4096    2048    3.45     2.32
dio     1-2-2    10         4    8192    1024    3.40     2.35
dio     1-2-2    10         4   16384     512    3.39     2.36
dio     1-2-2    10         4   32768     256    3.38     2.36
dio     1-2-2    10         4   65536     128    3.38     2.37
dio     1-2-2    20         1     256   32768    3.06     2.62
dio     1-2-2    20         1     512   16384    2.37     3.38
dio     1-2-2    20         1    1024    8192    2.02     3.95
dio     1-2-2    20         1    2048    4096    1.85     4.32
dio     1-2-2    20         1    4096    2048    1.77     4.53
dio     1-2-2    20         1    8192    1024    1.72     4.65
dio     1-2-2    20         1   16384     512    1.72     4.65
dio     1-2-2    20         1   32768     256    1.72     4.65
dio     1-2-2    20         1   65536     128    1.72     4.65
dio     1-2-2    20         2     256   32768    3.06     2.62
dio     1-2-2    20         2     512   16384    2.37     3.38
dio     1-2-2    20         2    1024    8192    2.02     3.96
dio     1-2-2    20         2    2048    4096    1.85     4.32
dio     1-2-2    20         2    4096    2048    1.77     4.53
dio     1-2-2    20         2    8192    1024    1.72     4.65
dio     1-2-2    20         2   16384     512    1.71     4.68
dio     1-2-2    20         2   32768     256    1.70     4.70
dio     1-2-2    20         2   65536     128    1.70     4.70
dio     1-2-2    20         3     256   32768    3.06     2.62
dio     1-2-2    20         3     512   16384    2.37     3.38
dio     1-2-2    20         3    1024    8192    2.02     3.95
dio     1-2-2    20         3    2048    4096    1.85     4.32
dio     1-2-2    20         3    4096    2048    1.77     4.53
dio     1-2-2    20         3    8192    1024    1.72     4.65
dio     1-2-2    20         3   16384     512    1.71     4.68
dio     1-2-2    20         3   32768     256    1.70     4.70
dio     1-2-2    20         3   65536     128    1.70     4.70
dio     1-2-2    20         4     256   32768    3.06     2.62
dio     1-2-2    20         4     512   16384    2.37     3.38
dio     1-2-2    20         4    1024    8192    2.02     3.95
dio     1-2-2    20         4    2048    4096    1.85     4.32
dio     1-2-2    20         4    4096    2048    1.77     4.53
dio     1-2-2    20         4    8192    1024    1.72     4.65
dio     1-2-2    20         4   16384     512    1.71     4.68
dio     1-2-2    20         4   32768     256    1.70     4.70
dio     1-2-2    20         4   65536     128    1.70     4.70
dio     1-2-2    40         1     256   32768    2.20     3.64
dio     1-2-2    40         1     511   16384    1.52     5.27
dio     1-2-2    40         1    1024    8192    1.18     6.79
dio     1-2-2    40         1    2048    4096    1.01     7.93
dio     1-2-2    40         1    4096    2048    0.92     8.65
dio     1-2-2    40         1    8192    1024    0.88     9.06
dio     1-2-2    40         1   16384     512    0.88     9.07
dio     1-2-2    40         1   32768     256    0.88     9.08
dio     1-2-2    40         1   65536     128    0.88     9.08
dio     1-2-2    40         2     256   32768    2.20     3.64
dio     1-2-2    40         2     512   16384    1.52     5.27
dio     1-2-2    40         2    1024    8192    1.18     6.79
dio     1-2-2    40         2    2048    4096    1.01     7.93
dio     1-2-2    40         2    4096    2048    0.93     8.65
dio     1-2-2    40         2    8192    1024    0.88     9.06
dio     1-2-2    40         2   16384     512    0.87     9.19
dio     1-2-2    40         2   32768     256    0.86     9.26
dio     1-2-2    40         2   65536     128    0.86     9.29
dio     1-2-2    40         3     256   32768    2.20     3.64
dio     1-2-2    40         3     512   16338    1.52     5.27
dio     1-2-2    40         3    1024    8192    1.18     6.79
dio     1-2-2    40         3    2048    4096    1.01     7.93
dio     1-2-2    40         3    4096    2048    0.93     8.65
dio     1-2-2    40         3    8192    1024    0.88     9.06
dio     1-2-2    40         3   16384     512    0.87     9.19
dio     1-2-2    40         3   32768     256    0.86     9.26
dio     1-2-2    40         3   65536     128    0.86     9.29
dio     1-2-2    40         4     256   32768    2.20     3.64
dio     1-2-2    40         4     512   16384    1.52     5.27
dio     1-2-2    40         4    1024    8192    1.18     6.79
dio     1-2-2    40         4    2048    4096    1.01     7.93
dio     1-2-2    40         4    4096    2048    0.93     8.65
dio     1-2-2    40         4    8192    1024    0.88     9.06
dio     1-2-2    40         4   16384     512    0.87     9.19
dio     1-2-2    40         4   32768     256    0.86     9.26
dio     1-2-2    40         4   65536     128    0.86     9.29
dio     1-2-2    80         1     256   32768    1.74     4.60
dio     1-2-2    80         1     512   16384    1.09     7.33
dio     1-2-2    80         1    1024    8192    0.76    10.59
dio     1-2-2    80         1    2048    4096    0.59    13.62
dio     1-2-2    80         1    4096    2048    0.50    15.85
dio     1-2-2    80         1    8192    1024    0.46    17.29
dio     1-2-2    80         1   16384     512    0.46    17.32
dio     1-2-2    80         1   332768    256    0.46    17.33
dio     1-2-2    80         1   65536     128    0.46    17.33
dio     1-2-2    80         2     256   32768    1.74     4.60
dio     1-2-2    80         2      512  16384    1.09     7.32
dio     1-2-2    80         2    1024    8192    0.76    10.59
dio     1-2-2    80         2    2048    4096    0.59    13.62
dio     1-2-2    80         2    4096    2048    0.50    15.85
dio     1-2-2    80         2    8192    1024    0.46    17.28
dio     1-2-2    80         2   16384     512    0.45    17.75
dio     1-2-2    80         2   32768     256    0.44    18.00
dio     1-2-2    80         2   65536     128    0.44    18.12
dio     1-2-2    80         3     256   32768    1.74     4.60
dio     1-2-2    80         3     512   16384    1.09     7.32
dio     1-2-2    80         3    1024    8192    0.76    10.59
dio     1-2-2    80         3    2048    4096    0.59    13.62
dio     1-2-2    80         3    4096    2048    0.50    15.85
dio     1-2-2    80         3    8192    1024    0.46    17.28
dio     1-2-2    80         3   16384     512    0.45    17.75
dio     1-2-2    80         3   32768     256    0.44    18.00
dio     1-2-2    80         3   65536     128    0.44    18.12
dio     1-2-2    80         4     256   32768    1.74     4.60
dio     1-2-2    80         4     512   16384    1.09     7.32
dio     1-2-2    80         4    1024    8192    0.76    10.59
dio     1-2-2    80         4    2048    4096    0.59    13.62
dio     1-2-2    80         4    4096    2048    0.50    15.85
dio     1-2-2    80         4    8192    1024    0.46    17.28
dio     1-2-2    80         4   16384     512    0.45    17.75
dio     1-2-2    80         4   32768     256    0.44    18.00
dio     1-2-2    80         4   65536     128    0.44    18.12
quad    1-1-4    10         1     256   32768    3.28     2.44
quad    1-1-4    10         1     512   16384    2.48     3.22
quad    1-1-4    10         1    1024    8192    2.08     3.85
quad    1-1-4    10         1    2048    4096    1.88     4.26
quad    1-1-4    11         1    4096    2048    1.78     4.50
quad    1-1-4    10         1    8192    1024    1.73     4.63
quad    1-1-4    10         1   16384     512    1.73     4.63
quad    1-1-4    10         1   32768     256    1.73     4.66
quad    1-1-4    10         1   65536     128    1.72     4.64
quad    1-1-4    10         2     256   32768    3.29     2.44
quad    1-1-4    10         2     512   16384    2.48     3.22
quad    1-1-4    10         2    1024    8192    2.08     3.85
quad    1-1-4    10         2    2048    4096    1.88     4.26
quad    1-1-4    10         2    4096    2048    1.78     4.50
quad    1-1-4    10         2    8192    1024    1.73     4.63
quad    1-1-4    10         2   16384     512    1.72     4..6
quad    1-1-4    10         2   32768     256    1.71     4.68
quad    1-1-4    10         2   65536     128    1.70     4.69
quad    1-1-4    10         3     256   32768    3.29     2.44
quad    1-1-4    10         3     512   16384    2.48     3.22
quad    1-1-4    10         3    1024    8192    2.08     3.85
quad    1-1-4    10         3    2048    4096    1.88     4.26
quad    1-1-4    10         3    4096    2048    1.78     4.50
quad    1-1-4    10         3    8192    1024    1.73     4.63
quad    1-1-4    10         3   16384     512    1.72     4.66
quad    1-1-4    10         3   32768     256    1.71     4.68
quad    1-1-4    10         3   65536     128    1.70     4.69
quad    1-1-4    10         4     256   32768    3.29     2.44
quad    1-1-4    10         4     512   16384    2.48     3.22
quad    1-1-4    10         4    1024    8192    2.08     3.85
quad    1-1-4    10         4    2048    4096    1.88     4.26
quad    1-1-4    10         4    4096    2048    1.78     4.50
quad    1-1-4    10         4    8192    1024    1.73     4.63
quad    1-1-4    10         4   16384     512    1.72     4.66
quad    1-1-4    10         4   32768     256    1.71     4.68
quad    1-1-4    10         4   65536     128    1.70     4.69
quad    1-1-4    20         1     256   32768    2.38     3.37
quad    1-1-4    20         1     512   16384    1.60     4.99
quad    1-1-4    20         1    1024    8192    1.22     6.55
quad    1-1-4    20         1    2048    4096    1.03     7.77
quad    1-1-4    20         1    4096    2048    0.94     8.55
quad    1-1-4    20         1    8192    1024    0.89     9.01
quad    1-1-4    20         1   16384     512    0.89     9.02
quad    1-1-4    20         1   332768    256    0.88     9.04
quad    1-1-4    20         1   65536     128    0.88     9.05
quad    1-1-4    20         2     256   32768    2.38     3.36
quad    1-1-4    20         2     512   16384    1.60     4.99
quad    1-1-4    20         2    1024    8192    1.22     6.55
quad    1-1-4    20         2    2048    4096    1.03     7.76
quad    1-1-4    20         2    4096    2048    0.94     8.55
quad    1-1-4    20         2    8192    1024    0.89     9.01
quad    1-1-4    20         2   16384     512    0.87     9.15
quad    1-1-4    20         2   32768     256    0.87     9.23
quad    1-1-4    20         2   65536     128    0.86     9.27
quad    1-1-4    20         3     256   32768    2.38     3.36
quad    1-1-4    20         3     512   16384    1.60     4.99
quad    1-1-4    20         3    1024    8192    1.22     6.55
quad    1-1-4    20         3    2048    4096    1.03     7.76
quad    1-1-4    20         3    4096    2048    0.94     8.55
quad    1-1-4    20         3    8192    1024    0.89     9.01
quad    1-1-4    20         3   16384     512    0.88     9.15
quad    1-1-4    20         3   32768     256    0.87     9.23
quad    1-1-4    20         3   65536     128    0.86     9.26
quad    1-1-4    20         4     256   32768    2.38     3.36
quad    1-1-4    20         4     512   16384    1.60     4.99
quad    1-1-4    20         4    1024    8192    1.22     6.55
quad    1-1-4    20         4    2048    4096    1.03     7.76
quad    1-1-4    20         4    4096    2048    0.94     8.55
quad    1-1-4    20         4    8192    1024    0.89     9.01
quad    1-1-4    20         4   16384     512    0.87     9.15
quad    1-1-4    20         4   32768     256    0.87     9.23
quad    1-1-4    20         4   65536     128    0.86     9.27
quad    1-1-4    40         1     256   32768    2.07     3.86
quad    1-1-4    40         1     512   16384    1.18     6.78
quad    1-1-4    40         1    1024    8192    0.79    10.09
quad    1-1-4    40         1    2048    4096    0.61    13.20
quad    1-1-4    40         1    4096    2048    0.51    15.56
quad    1-1-4    40         1    8192    1024    0.47    17.11
quad    1-1-4    40         1   16384     512    0.47    17.14
quad    1-1-4    40         1   32768     256    0.46    17.23
quad    1-1-4    40         1   65536     128    0.46    17.27
quad    1-1-4    40         2     256   32768    2.07     3.86
quad    1-1-4    44         2     512   16384    1.18     6.78
quad    1-1-4    40         2    1024    8192    0.79    10.09
quad    1-1-4    40         2    2048    4096    0.61    13.20
quad    1-1-4    40         2    4096    2048    0.51    15.56
quad    1-1-4    40         2    8192    1024    0.47    17.11
quad    1-1-4    40         2   16384     512    0.45    17.64
quad    1-1-4    40         2   327688    256    0.45    17.92
quad    1-1-4    40         2   65536     128    0.44    18.06
quad    1-1-4    40         3     256   32768    2.07     3.86
quad    1-1-4    40         3     512   16384    1.18     6.78
quad    1-1-4    40         3    1024    8192    0.79    10.09
quad    1-1-4    40         3    2048    4096    0.61    13.20
quad    1-1-4    40         3    4096    2048    0.51    15.56
quad    1-1-4    40         3    8192    1024    0.47    17.11
quad    1-1-4    40         3   16384     512    0.45    17.64
quad    1-1-4    40         3   32768     256    0.45    17.92
quad    1-1-4    40         3   65536     128    0.44    18.06
quad    1-1-4    40         4     256   32768    2.07     3.86
quad    1-1-4    40         4     512   16384    1.18     6.78
quad    1-1-4    40         4    1024    8192    0.79    10.09
quad    1-1-4    40         4    2048    4096    0.61    13.20
quad    1-1-4    40         4    4096    2048    0.51    15.56
quad    1-1-4    40         4    8192    1024    0.47    17.11
quad    1-1-4    40         4   16384     512    0.45    17.64
quad    1-1-4    40         4   32768     256    0.45    17.92
quud    1-1-4    40         4   65536     128    0.44    18.06
quad    1-1-4    80         1     256   32768    2.20     3.64
quad    1-1-4    80         1     512   16384    0.96     8.30
quad    1-1-4    80         1    1024    8192    0.58    13.80
quad    1-1-4    80         1    2048    4096    0.39    20.31
quad    1-1-4    80         1    4096    2048    0.30    26.38
quad    1-1-4    80         1    8192    1024    0.26    31.11
quad    1-1-4    80         1   16384     512    0.26    31.20
quad    1-1-4    80         1   32768     256    0.25    31.50
quad    1-1-4    80         1   65536     128    0.25    31.64
quad    1-1-4    80         2     256   32768    2.20     3.64
quad    1-1-4    80         2     512   16384    0.96     8.30
quad    1-1-4    80         2    1024    8192    0.58    13.80
quad    1-1-4    80         2    2048    4096    0.39    20.31
quad    1-1-4    80         2    4096    2048    0.30    26.38
quad    1-1-4    80         2    8192    1024    0.26    31.11
quad    1-1-4    80         2   16384     512    0.24    32.91
quad    1-1-4    80         2   32768     256    0.24    33.89
quad    1-1-4    80         2   65536     128    0.23    34.40
quad    1-1-4    80         3     256   32768    2.20     3.64
quad    1-1-4    80         3     512   16384    0.96     8.30
quad    1-1-4    80         3    1024    8192    0.58    13.80
quad    1-1-4    80         3    2048    4096    0.39    20.31
quad    1-1-4    80         3    4096    2048    0.30    26.38
quad    1-1-4    80         3    8192    1024    0.26    31.11
quad    1-1-4    80         3   16384     512    0.24    32.91
quad    1-1-4    80         3   32768     256    0.24    33.89
quad    1-1-4    80         3   65536     128    0.23    34.40
quad    1-1-4    80         4     256   32768    2.20     3.64
quad    1-1-4    80         4     512   16384    0.96     8.30
quad    1-1-4    80         4    1024    8192    0.58    13.80
quad    1-1-4    80         4    2048    4096    0.39    20.31
quad    1-1-4    80         4    4096    2048    0.30    26.38
quad    1-1-4    80         4    8192    1024    0.26    31.10
quad    1-1-4    80         4   16384     512    0.24    32.91
quad    1-1-4    80         4   32768     256    0.24    33.89
quad    1-1-4    80         4   65536     128    0.23    34.40
qio     1-4-4    10         1     256   32768    3.09     2.59
qio     1-4-4    10         1     512   16384    2.38     3.36
qio     1-4-4    10         1    1024    8192    2.03     3.94
qio     1-4-4    10         1    2048    4096    1.85     4.32
qio     1-4-4    10         1    4096    2048    1.77     4.53
qio     1-4-4    10         1    8192    1024    1.72     4.64
qio     1-4-4    10         1   16384     512    1.72     4.65
qio     1-4-4    10         1   32768     256    1.72     4.65
qio     1-4-4    10         1   65536     128    1.72     4.65
qio     1-4-4    10         2     256   32768    3.09     2.59
qio     1-4-4    10         2     512   16384    2.38     3.36
qio     1-4-4    10         2    1024    8192    2.03     3.94
qio     1-4-4    10         2    2048    4096    1.85     4.32
qio     1-4-4    10         2    4096    2048    1.77     4.53
qio     1-4-4    10         2    8192    1024    1.72     4.64
qio     1-4-4    10         2   16384     512    1.71     4.68
qio     1-4-4    10         2   32768     256    1.70     4.69
qio     1-4-4    10         2   65536     128    1.70     4.70
qio     1-4-4    10         3     256   32768    3.09     2.59
qio     1-4-4    10         3     512   16384    2.38     3.36
qio     1-4-4    10         3    1024    8192    2.03     3.94
qio     1-4-4    10         3    2048    4096    1.85     4.32
qio     1-4-4    10         3    4096    2048    1.77     4.53
qio     1-4-4    10         3    8192    1024    1.72     4.64
qio     1-4-4    10         3   16384     512    1.71     4.68
qio     1-4-4    10         3   32768     256    1.70     4.69
qio     1-4-4    10         3   65536     128    1.70     4.70
qio     1-4-4    10         4     256   32768    3.09     2.59
qio     1-4-4    10         4     512   16384    2.38     3.36
qio     1-4-4    10         4    1024    8192    2.03     3.94
qio     1-4-4    10         4    2048    4096    1.85     4.32
qio     1-4-4    10         4    4096    2048    1.77     4.53
qio     1-4-4    10         4    8192    1024    1.72     4.64
qio     1-4-4    10         4   16384     512    1.71     4.68
qio     1-4-4    10         4   32768     256    1.70     4.69
qio     1-4-4    10         4   65536     128    1.70     4.70
qio     1-4-4    20         1     256   32768    2.21     3.62
qio     1-4-4    20         1     512   16384    1.52     5.25
qio     1-4-4    20         1    1024    8192    1.18     6.77
qio     1-4-4    20         1    2048    4096    1.01     7.92
qio     1-4-4    20         1    4096    2048    0.93     8.64
qio     1-4-4    20         1    8192    1024    0.88     9.06
qio     1-4-4    20         1   16384     512    0.88     9.07
qio     1-4-4    20         1   32768     256    0.88     9.07
qio     1-4-4    20         1   65536     128    0.88     9.08
qio     1-4-4    20         2     256   32768    2.21     3.62
qio     1-4-4    20         2     512   16384    1.52     5.25
qio     1-4-4    20         2    1024    8192    1.18     6.77
qio     1-4-4    20         2    2048    4096    1.01     7.92
qio     1-4-4    20         2    4096    2048    0.93     8.64
qio     1-4-4    20         2    8192    1024    0.88     9.06
qio     1-4-4    20         2   16384     512    0.87     9.19
qio     1-4-4    20         2   32768     256    0.86     9.25
qio     1-4-4    20         2   65536     128    0.86     9.29
qio     1-4-4    20         3     256   32768    2.21     3.62
qio     1-4-4    20         3      512  16384    1.52     5.25
qio     1-4-4    20         3    1024    8192    1.18     6.77
qio     1-4-4    20         3    2048    4096    1.01     7.92
qio     1-4-4    20         3    4096    2048    0.93     8.64
qio     1-4-4    20         3    8192    1024    0.88     9.06
qio     1-4-4    20         3   16384     512    0.87     9.19
qio     1-4-4    20         3   32768     256    0.86     9.25
qio     1-4-4    20         3   65536     128    0.86     9.29
qio     1-4-4    20         4     256   32768    2.21     3.62
qio     1-4-4    20         4     512   16384    1.52     5.25
qio     1-4-4    20         4    1024    8192    1.18     6.77
qio     1-4-4    20         4    2048    4096    1.01     7.92
qio     1-4-4    20         4    4096    2048    0.93     8.64
qio     1-4-4    20         4    8192    1024    0.88     9.06
qio     1-4-4    20         4   16384     512    0.87     9.19
qio     1-4-4    20         4   32768     256    0.86     9.25
qio     1-4-4    20         4   65536     128    0.86     9.29
qio     1-4-4    40         1     256   32768    1.74     4.59
qio     1-4-4    40         1     512   16384    1.10     7.30
qio     1-4-4    40         1    1024    8192    0.76    10.56
qio     1-4-4    40         1    2048    4096    0.59    13.59
qio     1-4-4    40         1    4096    2048    0.51    15.83
qio     1-4-4    40         1    8192    1024    0.46    17.27
qio     1-4-4    40         1   16384     512    0.46    17.31
qio     1-4-4    40         1   32768     256    0.46    17.33
qio     1-4-4    40         1   65536     128    0.46    17.34
qio     1-4-4    40         2     256   32768    1.74     4.59
qio     1-4-4    40         2     512   16384    1.10     7.30
qio     1-4-4    40         2    1024    8192    0.76    10.56
qio     1-4-4    40         2    2048    4096    0.59    13.59
qio     1-4-4    40         2    4096    2048    0.51    15.83
qio     1-4-4    40         2    8192    1024    0.46    17.27
qio     1-4-4    40         2   16384     512    0.45    17.75
qio     1-4-4    40         2   32768     256    0.44    17.99
qio     1-4-4    40         2   65536     128    0.44    18.12
qio     1-4-4    40         3     256   32768    1.74     4.59
qio     1-4-4    40         3     512   16384    1.10     7.30
qio     1-4-4    40         3    1024    8192    0.76    10.56
qio     1-4-4    40         3    2048    4096    0.59    13.59
qio     1-4-4    40         3    4096    2048    0.51    15.83
qio     1-4-4    40         3    8192    1024    0.46    17.27
qio     1-4-4    40         3   16384     512    0.45    17.75
qio     1-4-4    40         3   32768     256    0.44    17.99
qio     1-4-4    40         3   65536     128    0.44    18.12
qio     1-4-4    40         4     256   32768    1.74     4.59
qio     1-4-4    40         4     512   16384    1.10     7.30
qio     1-4-4    40         4    1024    8192    0.76    10.56
qio     1-4-4    40         4    2048    4096    0.59    13.59
qio     1-4-4    40         4    4096    2048    0.51    15.83
qio     1-4-4    40         4    8192    1024    0.46    17.27
qio     1-4-4    40         4   16384     512    0.45    17.75
qio     1-4-4    40         4   32768     256    0.44    17.99
qio     1-4-4    40         4   65536     128    0.44    18.12
qio     1-4-4    80         1     256   32768    2.01     3.98
qio     1-4-4    80         1     512   16384    0.87     9.18
qio     1-4-4    80         1    1024    8192    0.55    14.66
qio     1-4-4    80         1    2048    4096    0.38    21.19
qio     1-4-4    80         1    4096    2048    0.30    27.11
qio     1-4-4    80         1     8192   1024    0.25    31.61
qio     1-4-4    80         1   16384     512    0.25    31.72
qio     1-4-4    80         1   327668    256    0.25    31.78
qio     1-4-4    80         1   65536     128    0.25    31.81
qio     1-4-4    80         2     256   32768    2.02     3.97
qio     1-4-4    80         2     512   16384    0.87     9.18
qio     1-4-4    80         2    1024    8192    0.55    14.66
qio     1-4-4    80         2    2048    4096    0.38    21.18
qio     1-4-4    80         2    4096    2048    0.30    27.11
qio     1-4-4    80         2    8192    1024    0.25    31.61
qio     1-4-4    80         2   16384     512    0.24    33.21
qio     1-4-4    80         2   32768     256    0.23    34.08
qio     1-4-4    80         2   65536     128    0.23    34.53
qio     1-4-4    80         3     256   32768    2.02     3.97
qio     1-4-4    80         3     512   16384    0.87     9.17
qio     1-4-4    80         3    1024    8192    0.55    14.65
qio     1-4-4    80         3    2048    4096    0.38    21.18
qio     1-4-4    80         3    4096    2048    0.30    27.11
qio     1-4-4    80         3    8192    1024    0.25    31.61
qio     1-4-4    80         3   16384     512    0.24    33.21
qio     1-4-4    80         3   32768     256    0.23    34.08
qio     1-4-4    80         3   65536     128    0.23    34.53
qio     1-4-4    80         4     256   32768    2.02     3.97
qio     1-4-4    80         4     512   16384    0.87     9.17
qio     1-4-4    80         4    1024    8192    0.55    14.65
qio     1-4-4    80         4    2048    4096    0.38    21.18
qio     1-4-4    80         4    4096    2048    0.30    27.11
qio     1-4-4    80         4    8192    1024    0.25    31.61
qio     1-4-4    80         4   16384     512    0.24    33.21
qio     1-4-4    80         4   32768     256    0.23    34.08
qio     1-4-4    80         4   65536     128    0.23    34.53
Unfortunately the writing process yields the error: unaliged write failed . I need to dig into this to see what's wrong.
Later edit: seems like every write action fails with:

Code: Select all

ERASE/WRITE/VERIFY Test...

       Bus
Proto  Cycles
std    1-1-11   Flash size 8388608
erase/write/verify failed at block 0 offset 0
dual   1-1-2   Flash size 8388608
erase/write/verify failed at block 0 offset 0
dio    1-2-2   Flash size 8388608
erase/write/verify failed at block 0 offset 0
quad   1-1-4   Flash size 8388608
erase/write/verify failed at block 0 offset 0
qio    1-4-4   Flash size 8388608
erase/write/verify failed at block 0 offset 1
qpi    4-4-4   Flash size 8388608
erase/write/verify failed at block 0 offset 1
The bin files (bootloader.bin, partitions_singleapp.bin and blink.bin) take just a few hundreds of KB of memory. I don't think that would present any problem to the 8MB S25FL164K serial NOR flash that I use.
I'll have a look into SPIFFS. You may be right about storing those bin files using the SPIFFS file system and then putting them in the right place in memory (0x1000, 0x8000, 0x10000); rather than transfering each byte of the bin files trough the serial interface at its respective location in memory.

User avatar
Vader_Mester
Posts: 300
Joined: Tue Dec 05, 2017 8:28 pm
Location: Hungary
Contact:

Re: ESP32 as ISP

Postby Vader_Mester » Thu Mar 01, 2018 1:45 pm

It's worth posting this write issue into under the thread here on the forum, or on Github, to see if he can help you out.
I haven't tried that myselft just browsed the code, what it contains.

As for the SPIFFS, you don't even have to know at which offset do you store the .bin, the SPIFFS API can find the file and return a pointer for the file, which the rest of your program can use.

And yes 8MB Flash is plenty :)

Code: Select all

task_t coffeeTask()
{
	while(atWork){
		if(!xStreamBufferIsEmpty(mug)){
			coffeeDrink(mug);
		} else {
			xTaskCreate(sBrew, "brew", 9000, &mug, 1, NULL);
			xSemaphoreTake(sCoffeeRdy, portMAX_DELAY);
		}
	}
	vTaskDelete(NULL);
}

Who is online

Users browsing this forum: forrest and 62 guests