SuperHouse / esp-open-rtos

Open source FreeRTOS-based ESP8266 software framework
BSD 3-Clause "New" or "Revised" License
1.53k stars 491 forks source link

Updating Firmware - impossible #727

Closed kiralikbeyin closed 5 years ago

kiralikbeyin commented 5 years ago

There is no way to update with OTA.

I tried esphttpd example to upload a bin file but it is only for esp32..

There is no solution for firmware update but only HomeACcessoryKid lib worked with under 560k file size..

https://github.com/HomeACcessoryKid/life-cycle-manager/issues/11 My firmware size is 666k

Any idea?

AndreaGreco commented 5 years ago

At now OTA cannot work with binary major then half of flash size.

Infact bootloader let startup fist or second partition. If your binary is more then a partition you cannot use OTA functionality.

Ideas Try reduce size You can try compile binary optimized for size the could improve your flash footprint and reduce of some byte. Is possible that optimization reduce size of 3,5% not more. Let try this way and report how many byte you save.

If this is not enough try with readelf and debug elf and a combo of options to dump simbols list and relative size order by biggest. Is. Biggest simbols all required or some simbols are unknown. Try to optimize where is possible.

Last ideas, very complicated. Create a separated binary is a second flash areas. This on lunch reset ram load bss and data section and startup. This separated binary perform OTA update. Is only a Idea.

kiralikbeyin commented 5 years ago

@AndreaGreco Thanks for reply.

I was using 2 step update with arduino. https://github.com/xoseperez/espurna/wiki/TwoStepUpdates

1-Trigger update with normal 666k firmware. 2-Get an 250k updater firmware. 3-250k updater will get 666k firmware Does it work?

note that i am using https://github.com/SuperHouse/esp-open-rtos/issues/668 https://github.com/apiel/aboot firmware because only this robot.bin works with this lib..

I am on step 3 but it throws

dhcp client start...
ip:192.168.0.11,mask:255.255.255.0,gw:192.168.0.1
[OTA]   HTTP client task starting
[OTA]   Image will be saved in OTA slot 1
[OTA]   Image will be saved in OTA magic 225
[OTA]   flash_offset 1404928
[OTA]   MAX_IMAGE_SIZE 1048576
Error:Ota has completed upgrade process, all ready for system software reset
Delay 1
Delay 2
Delay 3
Reset
rm match
del if0
usl
sul 0 0

ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x3ffe8000, len 500, room 16
tail 4
chksum 0xf1
load 0x40100000, len 692, room 4

0x40100000: _stext at ??:?

tail 0
chksum 0xe6
csum 0xe6
Writing default boot config.
We should copy the new Rom from 0x57000 to 0x2000.
Clear rom at position 2000
SPIEraseSector at position 0x2000 sector 2
SPIEraseSector at position 0x3000 sector 3
SPIEraseSector at position 0x4000 sector 4
SPIEraseSector at position 0x5000 sector 5
SPIEraseSector at position 0x6000 sector 6
SPIEraseSector at position 0x7000 sector 7
SPIEraseSector at position 0x8000 sector 8
SPIEraseSector at position 0x9000 sector 9
SPIEraseSector at position 0xa000 sector 10
SPIEraseSector at position 0xb000 sector 11
SPIEraseSector at position 0xc000 sector 12
SPIEraseSector at position 0xd000 sector 13
SPIEraseSector at position 0xe000 sector 14
SPIEraseSector at position 0xf000 sector 15
SPIEraseSector at position 0x10000 sector 16
SPIEraseSector at position 0x11000 sector 17
SPIEraseSector at position 0x12000 sector 18
SPIEraseSector at position 0x13000 sector 19
SPIEraseSector at position 0x14000 sector 20
SPIEraseSector at position 0x15000 sector 21
SPIEraseSector at position 0x16000 sector 22
SPIEraseSector at position 0x17000 sector 23
SPIEraseSector at position 0x18000 sector 24
SPIEraseSector at position 0x19000 sector 25
SPIEraseSector at position 0x1a000 sector 26
SPIEraseSector at position 0x1b000 sector 27
SPIEraseSector at position 0x1c000 sector 28
SPIEraseSector at position 0x1d000 sector 29
SPIEraseSector at position 0x1e000 sector 30
SPIEraseSector at position 0x1f000 sector 31
SPIEraseSector at position 0x20000 sector 32
SPIEraseSector at position 0x21000 sector 33
SPIEraseSector at position 0x22000 sector 34
SPIEraseSector at position 0x23000 sector 35
SPIEraseSector at position 0x24000 sector 36
SPIEraseSector at position 0x25000 sector 37
SPIEraseSector at position 0x26000 sector 38
SPIEraseSector at position 0x27000 sector 39
SPIEraseSector at position 0x28000 sector 40
SPIEraseSector at position 0x29000 sector 41
SPIEraseSector at position 0x2a000 sector 42
SPIEraseSector at position 0x2b000 sector 43
SPIEraseSector at position 0x2c000 sector 44
SPIEraseSector at position 0x2d000 sector 45
SPIEraseSector at position 0x2e000 sector 46
SPIEraseSector at position 0x2f000 sector 47
SPIEraseSector at position 0x30000 sector 48
SPIEraseSector at position 0x31000 sector 49
SPIEraseSector at position 0x32000 sector 50
SPIEraseSector at position 0x33000 sector 51
SPIEraseSector at position 0x34000 sector 52
SPIEraseSector at position 0x35000 sector 53
SPIEraseSector at position 0x36000 sector 54
SPIEraseSector at position 0x37000 sector 55
SPIEraseSector at position 0x38000 sector 56
SPIEraseSector at position 0x39000 sector 57
SPIEraseSector at position 0x3a000 sector 58
SPIEraseSector at position 0x3b000 sector 59
SPIEraseSector at position 0x3c000 sector 60
SPIEraseSector at position 0x3d000 sector 61
SPIEraseSector at position 0x3e000 sector 62
SPIEraseSector at position 0x3f000 sector 63
SPIEraseSector at position 0x40000 sector 64
SPIEraseSector at position 0x41000 sector 65
SPIEraseSector at position 0x42000 sector 66
SPIEraseSector at position 0x43000 sector 67
SPIEraseSector at position 0x44000 sector 68
SPIEraseSector at position 0x45000 sector 69
SPIEraseSector at position 0x46000 sector 70
SPIEraseSector at position 0x47000 sector 71
SPIEraseSector at position 0x48000 sector 72
SPIEraseSector at position 0x49000 sector 73
SPIEraseSector at position 0x4a000 sector 74
SPIEraseSector at position 0x4b000 sector 75
SPIEraseSector at position 0x4c000 sector 76
SPIEraseSector at position 0x4d000 sector 77
SPIEraseSector at position 0x4e000 sector 78

ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x3ffe8000, len 500, room 16
tail 4
chksum 0xf1
load 0x40100000, len 692, room 4

0x40100000: _stext at ??:?

tail 0
chksum 0xe6
csum 0xe6
Writing default boot config.
We should copy the new Rom from 0x57000 to 0x2000.
Clear rom at position 2000
SPIEraseSector at position 0x2000 sector 2
SPIEraseSector at position 0x3000 sector 3
SPIEraseSector at position 0x4000 sector 4
SPIEraseSector at position 0x5000 sector 5
SPIEraseSector at position 0x6000 sector 6
SPIEraseSector at position 0x7000 sector 7
SPIEraseSector at position 0x8000 sector 8
SPIEraseSector at position 0x9000 sector 9
SPIEraseSector at position 0xa000 sector 10
SPIEraseSector at position 0xb000 sector 11
SPIEraseSector at position 0xc000 sector 12
SPIEraseSector at position 0xd000 sector 13
SPIEraseSector at position 0xe000 sector 14
SPIEraseSector at position 0xf000 sector 15
SPIEraseSector at position 0x10000 sector 16
SPIEraseSector at position 0x11000 sector 17
SPIEraseSector at position 0x12000 sector 18
SPIEraseSector at position 0x13000 sector 19
SPIEraseSector at position 0x14000 sector 20
SPIEraseSector at position 0x15000 sector 21
SPIEraseSector at position 0x16000 sector 22
SPIEraseSector at position 0x17000 sector 23
SPIEraseSector at position 0x18000 sector 24
SPIEraseSector at position 0x19000 sector 25
SPIEraseSector at position 0x1a000 sector 26
SPIEraseSector at position 0x1b000 sector 27
SPIEraseSector at position 0x1c000 sector 28
SPIEraseSector at position 0x1d000 sector 29
SPIEraseSector at position 0x1e000 sector 30
SPIEraseSector at position 0x1f000 sector 31
SPIEraseSector at position 0x20000 sector 32
SPIEraseSector at position 0x21000 sector 33
SPIEraseSector at position 0x22000 sector 34
SPIEraseSector at position 0x23000 sector 35
SPIEraseSector at position 0x24000 sector 36
SPIEraseSector at position 0x25000 sector 37
SPIEraseSector at position 0x26000 sector 38
SPIEraseSector at position 0x27000 sector 39
SPIEraseSector at position 0x28000 sector 40
SPIEraseSector at position 0x29000 sector 41
SPIEraseSector at position 0x2a000 sector 42
SPIEraseSector at position 0x2b000 sector 43
SPIEraseSector at position 0x2c000 sector 44
SPIEraseSector at position 0x2d000 sector 45
SPIEraseSector at position 0x2e000 sector 46
SPIEraseSector at position 0x2f000 sector 47
SPIEraseSector at position 0x30000 sector 48
SPIEraseSector at position 0x31000 sector 49
SPIEraseSector at position 0x32000 sector 50
SPIEraseSector at position 0x33000 sector 51
SPIEraseSector at position 0x34000 sector 52
SPIEraseSector at position 0x35000 sector 53
SPIEraseSector at position 0x36000 sector 54
SPIEraseSector at position 0x37000 sector 55
SPIEraseSector at position 0x38000 sector 56
SPIEraseSector at position 0x39000 sector 57
SPIEraseSector at position 0x3a000 sector 58
SPIEraseSector at position 0x3b000 sector 59
SPIEraseSector at position 0x3c000 sector 60
SPIEraseSector at position 0x3d000 sector 61
SPIEraseSector at position 0x3e000 sector 62
SPIEraseSector at position 0x3f000 sector 63
SPIEraseSector at position 0x40000 sector 64
SPIEraseSector at position 0x41000 sector 65
SPIEraseSector at position 0x42000 sector 66
SPIEraseSector at position 0x43000 sector 67
SPIEraseSector at position 0x44000 sector 68
SPIEraseSector at position 0x45000 sector 69
SPIEraseSector at position 0x46000 sector 70
SPIEraseSector at position 0x47000 sector 71
SPIEraseSector at position 0x48000 sector 72
SPIEraseSector at position 0x49000 sector 73
SPIEraseSector at position 0x4a000 sector 74
SPIEraseSector at position 0x4b000 sector 75
SPIEraseSector at position 0x4c000 sector 76
SPIEraseSector at position 0x4d000 sector 77
SPIEraseSector at position 0x4e000 sector 78
SPIEraseSector at position 0x4f000 sector 79
SPIEraseSector at position 0x50000 sector 80
SPIEraseSector at position 0x51000 sector 81
SPIEraseSector at position 0x52000 sector 82
SPIEraseSector at position 0x53000 sector 83
SPIEraseSector at position 0x54000 sector 84
SPIEraseSector at position 0x55000 sector 85
SPIEraseSector at position 0x56000 sector 86
Write at 8192 copy of 356352
Write at 8448 copy of 356608
Write at 8704 copy of 356864
Write at 8960 copy of 357120
Write at 9216 copy of 357376
Write at 9472 copy of 357632
Write at 9728 copy of 357888
Write at 9984 copy of 358144
Write at 10240 copy of 358400
Write at 10496 copy of 358656
Write at 10752 copy of 358912
Write at 11008 copy of 359168
Write at 11264 copy of 359424
Write at 11520 copy of 359680
Write at 11776 copy of 359936
Write at 12032 copy of 360192
Write at 12288 copy of 360448
Write at 12544 copy of 360704
Write at 12800 copy of 360960
Write at 13056 copy of 361216
Write at 13312 copy of 361472
Write at 13568 copy of 361728
Write at 13824 copy of 361984
Write at 14080 copy of 362240
Write at 14336 copy of 362496
Write at 14592 copy of 362752
Write at 14848 copy of 363008
Write at 15104 copy of 363264
Write at 15360 copy of 363520
Write at 15616 copy of 363776
Write at 15872 copy of 364032
Write at 16128 copy of 364288
Write at 16384 copy of 364544
Write at 16640 copy of 364800
Write at 16896 copy of 365056
Write at 17152 copy of 365312
Write at 17408 copy of 365568
Write at 17664 copy of 365824
Write at 17920 copy of 366080
Write at 18176 copy of 366336
Write at 18432 copy of 366592
Write at 18688 copy of 366848
Write at 18944 copy of 367104
Write at 19200 copy of 367360
Write at 19456 copy of 367616
Write at 19712 copy of 367872
Write at 19968 copy of 368128
Write at 20224 copy of 368384
Write at 20480 copy of 368640
Write at 20736 copy of 368896
Write at 20992 copy of 369152
Write at 21248 copy of 369408
Write at 21504 copy of 369664
Write at 21760 copy of 369920
Write at 22016 copy of 370176
Write at 22272 copy of 370432
Write at 22528 copy of 370688
Write at 22784 copy of 370944
Write at 23040 copy of 371200
Write at 23296 copy of 371456
Write at 23552 copy of 371712
Write at 23808 copy of 371968
Write at 24064 copy of 372224
Write at 24320 copy of 372480
Write at 24576 copy of 372736
Write at 24832 copy of 372992
Write at 25088 copy of 373248
Write at 25344 copy of 373504
Write at 25600 copy of 373760
Write at 25856 copy of 374016
Write at 26112 copy of 374272
Write at 26368 copy of 374528
Write at 26624 copy of 374784
Write at 26880 copy of 375040
Write at 27136 copy of 375296
Write at 27392 copy of 375552
Write at 27648 copy of 375808
Write at 27904 copy of 376064
Write at 28160 copy of 376320
Write at 28416 copy of 376576
Write at 28672 copy of 376832
Write at 28928 copy of 377088
Write at 29184 copy of 377344
Write at 29440 copy of 377600
Write at 29696 copy of 377856
Write at 29952 copy of 378112
Write at 30208 copy of 378368
Write at 30464 copy of 378624
Write at 30720 copy of 378880
Write at 30976 copy of 379136
Write at 31232 copy of 379392
Write at 31488 copy of 379648
Write at 31744 copy of 379904
Write at 32000 copy of 380160
Write at 32256 copy of 380416
Write at 32512 copy of 380672
Write at 32768 copy of 380928
Write at 33024 copy of 381184
Write at 33280 copy of 381440
Write at 33536 copy of 381696
Write at 33792 copy of 381952
Write at 34048 copy of 382208
Write at 34304 copy of 382464
Write at 34560 copy of 382720
Write at 34816 copy of 382976
Write at 35072 copy of 383232
Write at 35328 copy of 383488
Write at 35584 copy of 383744
Write at 35840 copy of 384000
Write at 36096 copy of 384256
Write at 36352 copy of 384512
Write at 36608 copy of 384768
Write at 36864 copy of 385024
Write at 37120 copy of 385280
Write at 37376 copy of 385536
Write at 37632 copy of 385792
Write at 37888 copy of 386048
Write at 38144 copy of 386304
Write at 38400 copy of 386560
Write at 38656 copy of 386816
Write at 38912 copy of 387072
Write at 39168 copy of 387328
Write at 39424 copy of 387584
Write at 39680 copy of 387840
Write at 39936 copy of 388096
Write at 40192 copy of 388352
Write at 40448 copy of 388608
Write at 40704 copy of 388864
Write at 40960 copy of 389120
Write at 41216 copy of 389376
Write at 41472 copy of 389632
Write at 41728 copy of 389888
Write at 41984 copy of 390144
Write at 42240 copy of 390400
Write at 42496 copy of 390656
Write at 42752 copy of 390912
Write at 43008 copy of 391168
Write at 43264 copy of 391424
Write at 43520 copy of 391680
Write at 43776 copy of 391936
Write at 44032 copy of 392192
Write at 44288 copy of 392448
Write at 44544 copy of 392704
Write at 44800 copy of 392960
Write at 45056 copy of 393216
Write at 45312 copy of 393472
Write at 45568 copy of 393728
Write at 45824 copy of 393984
Write at 46080 copy of 394240
Write at 46336 copy of 394496
Write at 46592 copy of 394752
Write at 46848 copy of 395008
Write at 47104 copy of 395264
Write at 47360 copy of 395520
Write at 47616 copy of 395776
Write at 47872 copy of 396032
Write at 48128 copy of 396288
Write at 48384 copy of 396544
Write at 48640 copy of 396800
Write at 48896 copy of 397056
Write at 49152 copy of 397312
Write at 49408 copy of 397568
Write at 49664 copy of 397824
Write at 49920 copy of 398080
Write at 50176 copy of 398336
Write at 50432 copy of 398592
Write at 50688 copy of 398848
Write at 50944 copy of 399104
Write at 51200 copy of 399360
Write at 51456 copy of 399616
Write at 51712 copy of 399872
Write at 51968 copy of 400128
Write at 52224 copy of 400384
Write at 52480 copy of 400640
Write at 52736 copy of 400896
Write at 52992 copy of 401152
Write at 53248 copy of 401408
Write at 53504 copy of 401664
Write at 53760 copy of 401920
Write at 54016 copy of 402176
Write at 54272 copy of 402432
Write at 54528 copy of 402688
Write at 54784 copy of 402944
Write at 55040 copy of 403200
Write at 55296 copy of 403456
Write at 55552 copy of 403712
Write at 55808 copy of 403968
Write at 56064 copy of 404224
Write at 56320 copy of 404480
Write at 56576 copy of 404736
Write at 56832 copy of 404992
Write at 57088 copy of 405248
Write at 57344 copy of 405504
Write at 57600 copy of 405760
Write at 57856 copy of 406016
Write at 58112 copy of 406272
Write at 58368 copy of 406528
Write at 58624 copy of 406784
Write at 58880 copy of 407040
Write at 59136 copy of 407296
Write at 59392 copy of 407552
Write at 59648 copy of 407808
Write at 59904 copy of 408064
Write at 60160 copy of 408320
Write at 60416 copy of 408576
Write at 60672 copy of 408832
Write at 60928 copy of 409088
Write at 61184 copy of 409344
Write at 61440 copy of 409600
Write at 61696 copy of 409856
Write at 61952 copy of 410112
Write at 62208 copy of 410368
Write at 62464 copy of 410624
Write at 62720 copy of 410880
Write at 62976 copy of 411136
Write at 63232 copy of 411392
Write at 63488 copy of 411648
Write at 63744 copy of 411904
Write at 64000 copy of 412160
Write at 64256 copy of 412416
Write at 64512 copy of 412672
Write at 64768 copy of 412928
Write at 65024 copy of 413184
Write at 65280 copy of 413440
Write at 65536 copy of 413696
Write at 65792 copy of 413952
Write at 66048 copy of 414208
Write at 66304 copy of 414464
Write at 66560 copy of 414720
Write at 66816 copy of 414976
Write at 67072 copy of 415232
Write at 67328 copy of 415488
Write at 67584 copy of 415744
Write at 67840 copy of 416000
Write at 68096 copy of 416256
Write at 68352 copy of 416512
Write at 68608 copy of 416768
Write at 68864 copy of 417024
Write at 69120 copy of 417280
Write at 69376 copy of 417536
Write at 69632 copy of 417792
Write at 69888 copy of 418048
Write at 70144 copy of 418304
Write at 70400 copy of 418560
Write at 70656 copy of 418816
Write at 70912 copy of 419072
Write at 71168 copy of 419328
Write at 71424 copy of 419584
Write at 71680 copy of 419840
Write at 71936 copy of 420096
Write at 72192 copy of 420352
Write at 72448 copy of 420608
Write at 72704 copy of 420864
Write at 72960 copy of 421120
Write at 73216 copy of 421376
Write at 73472 copy of 421632
Write at 73728 copy of 421888
Write at 73984 copy of 422144
Write at 74240 copy of 422400
Write at 74496 copy of 422656
Write at 74752 copy of 422912
Write at 75008 copy of 423168
Write at 75264 copy of 423424
Write at 75520 copy of 423680
Write at 75776 copy of 423936
Write at 76032 copy of 424192
Write at 76288 copy of 424448
Write at 76544 copy of 424704
Write at 76800 copy of 424960
Write at 77056 copy of 425216
Write at 77312 copy of 425472
Write at 77568 copy of 425728
Write at 77824 copy of 425984
Write at 78080 copy of 426240
Write at 78336 copy of 426496
Write at 78592 copy of 426752
Write at 78848 copy of 427008
Write at 79104 copy of 427264
Write at 79360 copy of 427520
Write at 79616 copy of 427776
Write at 79872 copy of 428032
Write at 80128 copy of 428288
Write at 80384 copy of 428544
Write at 80640 copy of 428800
Write at 80896 copy of 429056
Write at 81152 copy of 429312
Write at 81408 copy of 429568
Write at 81664 copy of 429824
Write at 81920 copy of 430080
Write at 82176 copy of 430336
Write at 82432 copy of 430592
Write at 82688 copy of 430848
Write at 82944 copy of 431104
Write at 83200 copy of 431360
Write at 83456 copy of 431616
Write at 83712 copy of 431872
Write at 83968 copy of 432128
Write at 84224 copy of 432384
Write at 84480 copy of 432640
Write at 84736 copy of 432896
Write at 84992 copy of 433152
Write at 85248 copy of 433408
Write at 85504 copy of 433664
Write at 85760 copy of 433920
Write at 86016 copy of 434176
Write at 86272 copy of 434432
Write at 86528 copy of 434688
Write at 86784 copy of 434944
Write at 87040 copy of 435200
Write at 87296 copy of 435456
Write at 87552 copy of 435712
Write at 87808 copy of 435968
Write at 88064 copy of 436224
Write at 88320 copy of 436480
Write at 88576 copy of 436736
Write at 88832 copy of 436992
Write at 89088 copy of 437248
Write at 89344 copy of 437504
Write at 89600 copy of 437760
Write at 89856 copy of 438016
Write at 90112 copy of 438272
Write at 90368 copy of 438528
Write at 90624 copy of 438784
Write at 90880 copy of 439040
Write at 91136 copy of 439296
Write at 91392 copy of 439552
Write at 91648 copy of 439808
Write at 91904 copy of 440064
Write at 92160 copy of 440320
Write at 92416 copy of 440576
Write at 92672 copy of 440832
Write at 92928 copy of 441088
Write at 93184 copy of 441344
Write at 93440 copy of 441600
Write at 93696 copy of 441856
Write at 93952 copy of 442112
Write at 94208 copy of 442368
Write at 94464 copy of 442624
Write at 94720 copy of 442880
Write at 94976 copy of 443136
Write at 95232 copy of 443392
Write at 95488 copy of 443648
Write at 95744 copy of 443904
Write at 96000 copy of 444160
Write at 96256 copy of 444416
Write at 96512 copy of 444672
Write at 96768 copy of 444928
Write at 97024 copy of 445184
Write at 97280 copy of 445440
Write at 97536 copy of 445696
Write at 97792 copy of 445952
Write at 98048 copy of 446208
Write at 98304 copy of 446464
Write at 98560 copy of 446720
Write at 98816 copy of 446976
Write at 99072 copy of 447232
Write at 99328 copy of 447488
Write at 99584 copy of 447744
Write at 99840 copy of 448000
Write at 100096 copy of 448256
Write at 100352 copy of 448512
Write at 100608 copy of 448768
Write at 100864 copy of 449024
Write at 101120 copy of 449280
Write at 101376 copy of 449536
Write at 101632 copy of 449792
Write at 101888 copy of 450048
Write at 102144 copy of 450304
Write at 102400 copy of 450560
Write at 102656 copy of 450816
Write at 102912 copy of 451072
Write at 103168 copy of 451328
Write at 103424 copy of 451584
Write at 103680 copy of 451840
Write at 103936 copy of 452096
Write at 104192 copy of 452352
Write at 104448 copy of 452608
Write at 104704 copy of 452864
Write at 104960 copy of 453120
Write at 105216 copy of 453376
Write at 105472 copy of 453632
Write at 105728 copy of 453888
Write at 105984 copy of 454144
Write at 106240 copy of 454400
Write at 106496 copy of 454656
Write at 106752 copy of 454912
Write at 107008 copy of 455168
Write at 107264 copy of 455424
Write at 107520 copy of 455680
Write at 107776 copy of 455936
Write at 108032 copy of 456192
Write at 108288 copy of 456448
Write at 108544 copy of 456704
Write at 108800 copy of 456960
Write at 109056 copy of 457216
Write at 109312 copy of 457472
Write at 109568 copy of 457728
Write at 109824 copy of 457984
Write at 110080 copy of 458240
Write at 110336 copy of 458496
Write at 110592 copy of 458752
Write at 110848 copy of 459008
Write at 111104 copy of 459264
Write at 111360 copy of 459520
Write at 111616 copy of 459776
Write at 111872 copy of 460032
Write at 112128 copy of 460288
Write at 112384 copy of 460544
Write at 112640 copy of 460800
Write at 112896 copy of 461056
Write at 113152 copy of 461312
Write at 113408 copy of 461568
Write at 113664 copy of 461824
Write at 113920 copy of 462080
Write at 114176 copy of 462336
Write at 114432 copy of 462592
Write at 114688 copy of 462848
Write at 114944 copy of 463104
Write at 115200 copy of 463360
Write at 115456 copy of 463616
Write at 115712 copy of 463872
Write at 115968 copy of 464128
Write at 116224 copy of 464384
Write at 116480 copy of 464640
Write at 116736 copy of 464896
Write at 116992 copy of 465152
Write at 117248 copy of 465408
Write at 117504 copy of 465664
Write at 117760 copy of 465920
Write at 118016 copy of 466176
Write at 118272 copy of 466432
Write at 118528 copy of 466688
Write at 118784 copy of 466944
Write at 119040 copy of 467200
Write at 119296 copy of 467456
Write at 119552 copy of 467712
Write at 119808 copy of 467968
Write at 120064 copy of 468224
Write at 120320 copy of 468480
Write at 120576 copy of 468736
Write at 120832 copy of 468992
Write at 121088 copy of 469248
Write at 121344 copy of 469504
Write at 121600 copy of 469760
Write at 121856 copy of 470016
Write at 122112 copy of 470272
Write at 122368 copy of 470528
Write at 122624 copy of 470784
Write at 122880 copy of 471040
Write at 123136 copy of 471296
Write at 123392 copy of 471552
Write at 123648 copy of 471808
Write at 123904 copy of 472064
Write at 124160 copy of 472320
Write at 124416 copy of 472576
Write at 124672 copy of 472832
Write at 124928 copy of 473088
Write at 125184 copy of 473344
Write at 125440 copy of 473600
Write at 125696 copy of 473856
Write at 125952 copy of 474112
Write at 126208 copy of 474368
Write at 126464 copy of 474624
Write at 126720 copy of 474880
Write at 126976 copy of 475136
Write at 127232 copy of 475392
Write at 127488 copy of 475648
Write at 127744 copy of 475904
Write at 128000 copy of 476160
Write at 128256 copy of 476416
Write at 128512 copy of 476672
Write at 128768 copy of 476928
Write at 129024 copy of 477184
Write at 129280 copy of 477440
Write at 129536 copy of 477696
Write at 129792 copy of 477952
Write at 130048 copy of 478208
Write at 130304 copy of 478464
Write at 130560 copy of 478720
Write at 130816 copy of 478976
Write at 131072 copy of 479232
Write at 131328 copy of 479488
Write at 131584 copy of 479744
Write at 131840 copy of 480000
Write at 132096 copy of 480256
Write at 132352 copy of 480512
Write at 132608 copy of 480768
Write at 132864 copy of 481024
Write at 133120 copy of 481280
Write at 133376 copy of 481536
Write at 133632 copy of 481792
Write at 133888 copy of 482048
Write at 134144 copy of 482304
Write at 134400 copy of 482560
Write at 134656 copy of 482816
Write at 134912 copy of 483072
Write at 135168 copy of 483328
Write at 135424 copy of 483584
Write at 135680 copy of 483840
Write at 135936 copy of 484096
Write at 136192 copy of 484352
Write at 136448 copy of 484608
Write at 136704 copy of 484864
Write at 136960 copy of 485120
Write at 137216 copy of 485376
Write at 137472 copy of 485632
Write at 137728 copy of 485888
Write at 137984 copy of 486144
Write at 138240 copy of 486400
Write at 138496 copy of 486656
Write at 138752 copy of 486912
Write at 139008 copy of 487168
Write at 139264 copy of 487424
Write at 139520 copy of 487680
Write at 139776 copy of 487936
Write at 140032 copy of 488192
Write at 140288 copy of 488448
Write at 140544 copy of 488704
Write at 140800 copy of 488960
Write at 141056 copy of 489216
Write at 141312 copy of 489472
Write at 141568 copy of 489728
Write at 141824 copy of 489984
Write at 142080 copy of 490240
Write at 142336 copy of 490496
Write at 142592 copy of 490752
Write at 142848 copy of 491008
Write at 143104 copy of 491264
Write at 143360 copy of 491520
Write at 143616 copy of 491776
Write at 143872 copy of 492032
Write at 144128 copy of 492288
Write at 144384 copy of 492544
Write at 144640 copy of 492800
Write at 144896 copy of 493056
Write at 145152 copy of 493312
Write at 145408 copy of 493568
Write at 145664 copy of 493824
Write at 145920 copy of 494080
Write at 146176 copy of 494336
Write at 146432 copy of 494592
Write at 146688 copy of 494848
Write at 146944 copy of 495104
Write at 147200 copy of 495360
Write at 147456 copy of 495616
Write at 147712 copy of 495872
Write at 147968 copy of 496128
Write at 148224 copy of 496384
Write at 148480 copy of 496640
Write at 148736 copy of 496896
Write at 148992 copy of 497152
Write at 149248 copy of 497408
Write at 149504 copy of 497664
Write at 149760 copy of 497920
Write at 150016 copy of 498176
Write at 150272 copy of 498432
Write at 150528 copy of 498688
Write at 150784 copy of 498944
Write at 151040 copy of 499200
Write at 151296 copy of 499456
Write at 151552 copy of 499712
Write at 151808 copy of 499968
Write at 152064 copy of 500224
Write at 152320 copy of 500480
Write at 152576 copy of 500736
Write at 152832 copy of 500992
Write at 153088 copy of 501248
Write at 153344 copy of 501504
Write at 153600 copy of 501760
Write at 153856 copy of 502016
Write at 154112 copy of 502272
Write at 154368 copy of 502528
Write at 154624 copy of 502784
Write at 154880 copy of 503040
Write at 155136 copy of 503296
Write at 155392 copy of 503552
Write at 155648 copy of 503808
Write at 155904 copy of 504064
Write at 156160 copy of 504320
Write at 156416 copy of 504576
Write at 156672 copy of 504832
Write at 156928 copy of 505088
Write at 157184 copy of 505344
Write at 157440 copy of 505600
Write at 157696 copy of 505856
Write at 157952 copy of 506112
Write at 158208 copy of 506368
Write at 158464 copy of 506624
Write at 158720 copy of 506880
Write at 158976 copy of 507136
Write at 159232 copy of 507392
Write at 159488 copy of 507648
Write at 159744 copy of 507904
Write at 160000 copy of 508160
Write at 160256 copy of 508416
Write at 160512 copy of 508672
Write at 160768 copy of 508928
Write at 161024 copy of 509184
Write at 161280 copy of 509440
Write at 161536 copy of 509696
Write at 161792 copy of 509952
Write at 162048 copy of 510208
Write at 162304 copy of 510464
Write at 162560 copy of 510720
Write at 162816 copy of 510976
Write at 163072 copy of 511232
Write at 163328 copy of 511488
Write at 163584 copy of 511744
Write at 163840 copy of 512000
Write at 164096 copy of 512256
Write at 164352 copy of 512512
Write at 164608 copy of 512768
Write at 164864 copy of 513024
Write at 165120 copy of 513280
Write at 165376 copy of 513536
Write at 165632 copy of 513792
Write at 165888 copy of 514048
Write at 166144 copy of 514304
Write at 166400 copy of 514560
Write at 166656 copy of 514816
Write at 166912 copy of 515072
Write at 167168 copy of 515328
Write at 167424 copy of 515584
Write at 167680 copy of 515840
Write at 167936 copy of 516096
Write at 168192 copy of 516352
Write at 168448 copy of 516608
Write at 168704 copy of 516864
Write at 168960 copy of 517120
Write at 169216 copy of 517376
Write at 169472 copy of 517632
Write at 169728 copy of 517888
Write at 169984 copy of 518144
Write at 170240 copy of 518400
Write at 170496 copy of 518656
Write at 170752 copy of 518912
Write at 171008 copy of 519168
Write at 171264 copy of 519424
Write at 171520 copy of 519680
Write at 171776 copy of 519936
Write at 172032 copy of 520192
Write at 172288 copy of 520448
Write at 172544 copy of 520704
Write at 172800 copy of 520960
Write at 173056 copy of 521216
Write at 173312 copy of 521472
Write at 173568 copy of 521728
Write at 173824 copy of 521984
Write at 174080 copy of 522240
Write at 174336 copy of 522496
Write at 174592 copy of 522752
Write at 174848 copy of 523008
Write at 175104 copy of 523264
Write at 175360 copy of 523520
Write at 175616 copy of 523776
Write at 175872 copy of 524032
Write at 176128 copy of 524288
Write at 176384 copy of 524544
Write at 176640 copy of 524800
Write at 176896 copy of 525056
Write at 177152 copy of 525312
Write at 177408 copy of 525568
Write at 177664 copy of 525824
Write at 177920 copy of 526080
Write at 178176 copy of 526336
Write at 178432 copy of 526592
Write at 178688 copy of 526848
Write at 178944 copy of 527104
Write at 179200 copy of 527360
Write at 179456 copy of 527616
Write at 179712 copy of 527872
Write at 179968 copy of 528128
Write at 180224 copy of 528384
Write at 180480 copy of 528640
Write at 180736 copy of 528896
Write at 180992 copy of 529152
Write at 181248 copy of 529408
Write at 181504 copy of 529664
Write at 181760 copy of 529920
Write at 182016 copy of 530176
Write at 182272 copy of 530432
Write at 182528 copy of 530688
Write at 182784 copy of 530944
Write at 183040 copy of 531200
Write at 183296 copy of 531456
Write at 183552 copy of 531712
Write at 183808 copy of 531968
Write at 184064 copy of 532224
Write at 184320 copy of 532480
Write at 184576 copy of 532736
Write at 184832 copy of 532992
Write at 185088 copy of 533248
Write at 185344 copy of 533504
Write at 185600 copy of 533760
Write at 185856 copy of 534016
Write at 186112 copy of 534272
Write at 186368 copy of 534528
Write at 186624 copy of 534784
Write at 186880 copy of 535040
Write at 187136 copy of 535296
Write at 187392 copy of 535552
Write at 187648 copy of 535808
Write at 187904 copy of 536064
Write at 188160 copy of 536320
Write at 188416 copy of 536576
Write at 188672 copy of 536832
Write at 188928 copy of 537088
Write at 189184 copy of 537344
Write at 189440 copy of 537600
Write at 189696 copy of 537856
Write at 189952 copy of 538112
Write at 190208 copy of 538368
Write at 190464 copy of 538624
Write at 190720 copy of 538880
Write at 190976 copy of 539136
Write at 191232 copy of 539392
Write at 191488 copy of 539648
Write at 191744 copy of 539904
Write at 192000 copy of 540160
Write at 192256 copy of 540416
Write at 192512 copy of 540672
Write at 192768 copy of 540928
Write at 193024 copy of 541184
Write at 193280 copy of 541440
Write at 193536 copy of 541696
Write at 193792 copy of 541952
Write at 194048 copy of 542208
Write at 194304 copy of 542464
Write at 194560 copy of 542720
Write at 194816 copy of 542976
Write at 195072 copy of 543232
Write at 195328 copy of 543488
Write at 195584 copy of 543744
Write at 195840 copy of 544000
Write at 196096 copy of 544256
Write at 196352 copy of 544512
Write at 196608 copy of 544768
Write at 196864 copy of 545024
Write at 197120 copy of 545280
Write at 197376 copy of 545536
Write at 197632 copy of 545792
Write at 197888 copy of 546048
Write at 198144 copy of 546304
Write at 198400 copy of 546560
Write at 198656 copy of 546816
Write at 198912 copy of 547072
Write at 199168 copy of 547328
Write at 199424 copy of 547584
Write at 199680 copy of 547840
Write at 199936 copy of 548096
Write at 200192 copy of 548352
Write at 200448 copy of 548608
Write at 200704 copy of 548864
Write at 200960 copy of 549120
Write at 201216 copy of 549376
Write at 201472 copy of 549632
Write at 201728 copy of 549888
Write at 201984 copy of 550144
Write at 202240 copy of 550400
Write at 202496 copy of 550656
Write at 202752 copy of 550912
Write at 203008 copy of 551168
Write at 203264 copy of 551424
Write at 203520 copy of 551680
Write at 203776 copy of 551936
Write at 204032 copy of 552192
Write at 204288 copy of 552448
Write at 204544 copy of 552704
Write at 204800 copy of 552960
Write at 205056 copy of 553216
Write at 205312 copy of 553472
Write at 205568 copy of 553728
Write at 205824 copy of 553984
Write at 206080 copy of 554240
Write at 206336 copy of 554496
Write at 206592 copy of 554752
Write at 206848 copy of 555008
Write at 207104 copy of 555264
Write at 207360 copy of 555520
Write at 207616 copy of 555776
Write at 207872 copy of 556032
Write at 208128 copy of 556288
Write at 208384 copy of 556544
Write at 208640 copy of 556800
Write at 208896 copy of 557056
Write at 209152 copy of 557312
Write at 209408 copy of 557568
Write at 209664 copy of 557824
Write at 209920 copy of 558080
Write at 210176 copy of 558336
Write at 210432 copy of 558592
Write at 210688 copy of 558848
Write at 210944 copy of 559104
Write at 211200 copy of 559360
Write at 211456 copy of 559616
Write at 211712 copy of 559872
Write at 211968 copy of 560128
Write at 212224 copy of 560384
Write at 212480 copy of 560640
Write at 212736 copy of 560896
Write at 212992 copy of 561152
Write at 213248 copy of 561408
Write at 213504 copy of 561664
Write at 213760 copy of 561920
Write at 214016 copy of 562176
Write at 214272 copy of 562432
Write at 214528 copy of 562688
Write at 214784 copy of 562944
Write at 215040 copy of 563200
Write at 215296 copy of 563456
Write at 215552 copy of 563712
Write at 215808 copy of 563968
Write at 216064 copy of 564224
Write at 216320 copy of 564480
Write at 216576 copy of 564736
Write at 216832 copy of 564992
Write at 217088 copy of 565248
Write at 217344 copy of 565504
Write at 217600 copy of 565760
Write at 217856 copy of 566016
Write at 218112 copy of 566272
Write at 218368 copy of 566528
Write at 218624 copy of 566784
Write at 218880 copy of 567040
Write at 219136 copy of 567296
Write at 219392 copy of 567552
Write at 219648 copy of 567808
Write at 219904 copy of 568064
Write at 220160 copy of 568320
Write at 220416 copy of 568576
Write at 220672 copy of 568832
Write at 220928 copy of 569088
Write at 221184 copy of 569344
Write at 221440 copy of 569600
Write at 221696 copy of 569856
Write at 221952 copy of 570112
Write at 222208 copy of 570368
Write at 222464 copy of 570624
Write at 222720 copy of 570880
Write at 222976 copy of 571136
Write at 223232 copy of 571392
Write at 223488 copy of 571648
Write at 223744 copy of 571904
Write at 224000 copy of 572160
Write at 224256 copy of 572416
Write at 224512 copy of 572672
Write at 224768 copy of 572928
Write at 225024 copy of 573184
Write at 225280 copy of 573440
Write at 225536 copy of 573696
Write at 225792 copy of 573952
Write at 226048 copy of 574208
Write at 226304 copy of 574464
Write at 226560 copy of 574720
Write at 226816 copy of 574976
Write at 227072 copy of 575232
Write at 227328 copy of 575488
Write at 227584 copy of 575744
Write at 227840 copy of 576000
Write at 228096 copy of 576256
Write at 228352 copy of 576512
Write at 228608 copy of 576768
Write at 228864 copy of 577024
Write at 229120 copy of 577280
Write at 229376 copy of 577536
Write at 229632 copy of 577792
Write at 229888 copy of 578048
Write at 230144 copy of 578304
Write at 230400 copy of 578560
Write at 230656 copy of 578816
Write at 230912 copy of 579072
Write at 231168 copy of 579328
Write at 231424 copy of 579584
Write at 231680 copy of 579840
Write at 231936 copy of 580096
Write at 232192 copy of 580352
Write at 232448 copy of 580608
Write at 232704 copy of 580864
Write at 232960 copy of 581120
Write at 233216 copy of 581376
Write at 233472 copy of 581632
Write at 233728 copy of 581888
Write at 233984 copy of 582144
Write at 234240 copy of 582400
Write at 234496 copy of 582656
Write at 234752 copy of 582912
Write at 235008 copy of 583168
Write at 235264 copy of 583424
Write at 235520 copy of 583680
Write at 235776 copy of 583936
Write at 236032 copy of 584192
Write at 236288 copy of 584448
Write at 236544 copy of 584704
Write at 236800 copy of 584960
Write at 237056 copy of 585216
Write at 237312 copy of 585472
Write at 237568 copy of 585728
Write at 237824 copy of 585984
Write at 238080 copy of 586240
Write at 238336 copy of 586496
Write at 238592 copy of 586752
Write at 238848 copy of 587008
Write at 239104 copy of 587264
Write at 239360 copy of 587520
Write at 239616 copy of 587776
Write at 239872 copy of 588032
Write at 240128 copy of 588288
Write at 240384 copy of 588544
Write at 240640 copy of 588800
Write at 240896 copy of 589056
Write at 241152 copy of 589312
Write at 241408 copy of 589568
Write at 241664 copy of 589824
Write at 241920 copy of 590080
Write at 242176 copy of 590336
Write at 242432 copy of 590592
Write at 242688 copy of 590848
Write at 242944 copy of 591104
Write at 243200 copy of 591360
Write at 243456 copy of 591616
Write at 243712 copy of 591872
Write at 243968 copy of 592128
Write at 244224 copy of 592384
Write at 244480 copy of 592640
Write at 244736 copy of 592896
Write at 244992 copy of 593152
Write at 245248 copy of 593408
Write at 245504 copy of 593664
Write at 245760 copy of 593920
Write at 246016 copy of 594176
Write at 246272 copy of 594432
Write at 246528 copy of 594688
Write at 246784 copy of 594944
Write at 247040 copy of 595200
Write at 247296 copy of 595456
Write at 247552 copy of 595712
Write at 247808 copy of 595968
Write at 248064 copy of 596224
Write at 248320 copy of 596480
Write at 248576 copy of 596736
Write at 248832 copy of 596992
Write at 249088 copy of 597248
Write at 249344 copy of 597504
Write at 249600 copy of 597760
Write at 249856 copy of 598016
Write at 250112 copy of 598272
Write at 250368 copy of 598528
Write at 250624 copy of 598784
Write at 250880 copy of 599040
Write at 251136 copy of 599296
Write at 251392 copy of 599552
Write at 251648 copy of 599808
Write at 251904 copy of 600064
Write at 252160 copy of 600320
Write at 252416 copy of 600576
Write at 252672 copy of 600832
Write at 252928 copy of 601088
Write at 253184 copy of 601344
Write at 253440 copy of 601600
Write at 253696 copy of 601856
Write at 253952 copy of 602112
Write at 254208 copy of 602368
Write at 254464 copy of 602624
Write at 254720 copy of 602880
Write at 254976 copy of 603136
Write at 255232 copy of 603392
Write at 255488 copy of 603648
Write at 255744 copy of 603904
Write at 256000 copy of 604160
Write at 256256 copy of 604416
Write at 256512 copy of 604672
Write at 256768 copy of 604928
Write at 257024 copy of 605184
Write at 257280 copy of 605440
Write at 257536 copy of 605696
Write at 257792 copy of 605952
Write at 258048 copy of 606208
Write at 258304 copy of 606464
Write at 258560 copy of 606720
Write at 258816 copy of 606976
Write at 259072 copy of 607232
Write at 259328 copy of 607488
Write at 259584 copy of 607744
Write at 259840 copy of 608000
Write at 260096 copy of 608256
Write at 260352 copy of 608512
Write at 260608 copy of 608768
Write at 260864 copy of 609024
Write at 261120 copy of 609280
Write at 261376 copy of 609536
Write at 261632 copy of 609792
Write at 261888 copy of 610048
Write at 262144 copy of 610304
Write at 262400 copy of 610560
Write at 262656 copy of 610816
Write at 262912 copy of 611072
Write at 263168 copy of 611328
Write at 263424 copy of 611584
Write at 263680 copy of 611840
Write at 263936 copy of 612096
Write at 264192 copy of 612352
Write at 264448 copy of 612608
Write at 264704 copy of 612864
Write at 264960 copy of 613120
Write at 265216 copy of 613376
Write at 265472 copy of 613632
Write at 265728 copy of 613888
Write at 265984 copy of 614144
Write at 266240 copy of 614400
Write at 266496 copy of 614656
Write at 266752 copy of 614912
Write at 267008 copy of 615168
Write at 267264 copy of 615424
Write at 267520 copy of 615680
Write at 267776 copy of 615936
Write at 268032 copy of 616192
Write at 268288 copy of 616448
Write at 268544 copy of 616704
Write at 268800 copy of 616960
Write at 269056 copy of 617216
Write at 269312 copy of 617472
Write at 269568 copy of 617728
Write at 269824 copy of 617984
Write at 270080 copy of 618240
Write at 270336 copy of 618496
Write at 270592 copy of 618752
Write at 270848 copy of 619008
Write at 271104 copy of 619264
Write at 271360 copy of 619520
Write at 271616 copy of 619776
Write at 271872 copy of 620032
Write at 272128 copy of 620288
Write at 272384 copy of 620544
Write at 272640 copy of 620800
Write at 272896 copy of 621056
Write at 273152 copy of 621312
Write at 273408 copy of 621568
Write at 273664 copy of 621824
Write at 273920 copy of 622080
Write at 274176 copy of 622336
Write at 274432 copy of 622592
Write at 274688 copy of 622848
Write at 274944 copy of 623104
Write at 275200 copy of 623360
Write at 275456 copy of 623616
Write at 275712 copy of 623872
Write at 275968 copy of 624128
Write at 276224 copy of 624384
Write at 276480 copy of 624640
Write at 276736 copy of 624896
Write at 276992 copy of 625152
Write at 277248 copy of 625408
Write at 277504 copy of 625664
Write at 277760 copy of 625920
Write at 278016 copy of 626176
Write at 278272 copy of 626432
Write at 278528 copy of 626688
Write at 278784 copy of 626944
Write at 279040 copy of 627200
Write at 279296 copy of 627456
Write at 279552 copy of 627712
Write at 279808 copy of 627968
Write at 280064 copy of 628224
Write at 280320 copy of 628480
Write at 280576 copy of 628736
Write at 280832 copy of 628992
Write at 281088 copy of 629248
Write at 281344 copy of 629504
Write at 281600 copy of 629760
Write at 281856 copy of 630016
Write at 282112 copy of 630272
Write at 282368 copy of 630528
Write at 282624 copy of 630784
Write at 282880 copy of 631040
Write at 283136 copy of 631296
Write at 283392 copy of 631552
Write at 283648 copy of 631808
Write at 283904 copy of 632064
Write at 284160 copy of 632320
Write at 284416 copy of 632576
Write at 284672 copy of 632832
Write at 284928 copy of 633088
Write at 285184 copy of 633344
Write at 285440 copy of 633600
Write at 285696 copy of 633856
Write at 285952 copy of 634112
Write at 286208 copy of 634368
Write at 286464 copy of 634624
Write at 286720 copy of 634880
Write at 286976 copy of 635136
Write at 287232 copy of 635392
Write at 287488 copy of 635648
Write at 287744 copy of 635904
Write at 288000 copy of 636160
Write at 288256 copy of 636416
Write at 288512 copy of 636672
Write at 288768 copy of 636928
Write at 289024 copy of 637184
Write at 289280 copy of 637440
Write at 289536 copy of 637696
Write at 289792 copy of 637952
Write at 290048 copy of 638208
Write at 290304 copy of 638464
Write at 290560 copy of 638720
Write at 290816 copy of 638976
Write at 291072 copy of 639232
Write at 291328 copy of 639488
Write at 291584 copy of 639744
Write at 291840 copy of 640000
Write at 292096 copy of 640256
Write at 292352 copy of 640512
Write at 292608 copy of 640768
Write at 292864 copy of 641024
Write at 293120 copy of 641280
Write at 293376 copy of 641536
Write at 293632 copy of 641792
Write at 293888 copy of 642048
Write at 294144 copy of 642304
Write at 294400 copy of 642560
Write at 294656 copy of 642816
Write at 294912 copy of 643072
Write at 295168 copy of 643328
Write at 295424 copy of 643584
Write at 295680 copy of 643840
Write at 295936 copy of 644096
Write at 296192 copy of 644352
Write at 296448 copy of 644608
Write at 296704 copy of 644864
Write at 296960 copy of 645120
Write at 297216 copy of 645376
Write at 297472 copy of 645632
Write at 297728 copy of 645888
Write at 297984 copy of 646144
Write at 298240 copy of 646400
Write at 298496 copy of 646656
Write at 298752 copy of 646912
Write at 299008 copy of 647168
Write at 299264 copy of 647424
Write at 299520 copy of 647680
Write at 299776 copy of 647936
Write at 300032 copy of 648192
Write at 300288 copy of 648448
Write at 300544 copy of 648704
Write at 300800 copy of 648960
Write at 301056 copy of 649216
Write at 301312 copy of 649472
Write at 301568 copy of 649728
Write at 301824 copy of 649984
Write at 302080 copy of 650240
Write at 302336 copy of 650496
Write at 302592 copy of 650752
Write at 302848 copy of 651008
Write at 303104 copy of 651264
Write at 303360 copy of 651520
Write at 303616 copy of 651776
Write at 303872 copy of 652032
Write at 304128 copy of 652288
Write at 304384 copy of 652544
Write at 304640 copy of 652800
Write at 304896 copy of 653056
Write at 305152 copy of 653312
Write at 305408 copy of 653568
Write at 305664 copy of 653824
Write at 305920 copy of 654080
Write at 306176 copy of 654336
Write at 306432 copy of 654592
Write at 306688 copy of 654848
Write at 306944 copy of 655104
Write at 307200 copy of 655360
Write at 307456 copy of 655616
Write at 307712 copy of 655872
Write at 307968 copy of 656128
Write at 308224 copy of 656384
Write at 308480 copy of 656640
Write at 308736 copy of 656896
Write at 308992 copy of 657152
Write at 309248 copy of 657408
Write at 309504 copy of 657664
Write at 309760 copy of 657920
Write at 310016 copy of 658176
Write at 310272 copy of 658432
Write at 310528 copy of 658688
Write at 310784 copy of 658944
Write at 311040 copy of 659200
Write at 311296 copy of 659456
Write at 311552 copy of 659712
Write at 311808 copy of 659968
Write at 312064 copy of 660224
Write at 312320 copy of 660480
Write at 312576 copy of 660736
Write at 312832 copy of 660992
Write at 313088 copy of 661248
Write at 313344 copy of 661504
Write at 313600 copy of 661760
Write at 313856 copy of 662016
Write at 314112 copy of 662272
Write at 314368 copy of 662528
Write at 314624 copy of 662784
Write at 314880 copy of 663040
Write at 315136 copy of 663296
Write at 315392 copy of 663552
Write at 315648 copy of 663808
Write at 315904 copy of 664064
Write at 316160 copy of 664320
Write at 316416 copy of 664576
Write at 316672 copy of 664832
Write at 316928 copy of 665088
Write at 317184 copy of 665344
Write at 317440 copy of 665600
Write at 317696 copy of 665856
Write at 317952 copy of 666112
Write at 318208 copy of 666368
Write at 318464 copy of 666624
Write at 318720 copy of 666880
Write at 318976 copy of 667136
Write at 319232 copy of 667392
Write at 319488 copy of 667648
Write at 319744 copy of 667904
Write at 320000 copy of 668160
Write at 320256 copy of 668416
Write at 320512 copy of 668672
Write at 320768 copy of 668928
Write at 321024 copy of 669184
Write at 321280 copy of 669440
Write at 321536 copy of 669696
Write at 321792 copy of 669952
Write at 322048 copy of 670208
Write at 322304 copy of 670464
Write at 322560 copy of 670720
Write at 322816 copy of 670976
Write at 323072 copy of 671232
Write at 323328 copy of 671488
Write at 323584 copy of 671744
Write at 323840 copy of 672000
Write at 324096 copy of 672256
Write at 324352 copy of 672512
Write at 324608 copy of 672768
Write at 324864 copy of 673024
Write at 325120 copy of 673280
Write at 325376 copy of 673536
Write at 325632 copy of 673792
Write at 325888 copy of 674048
Write at 326144 copy of 674304
Write at 326400 copy of 674560
Write at 326656 copy of 674816
Write at 326912 copy of 675072
Write at 327168 copy of 675328
Write at 327424 copy of 675584
Write at 327680 copy of 675840
Write at 327936 copy of 676096
Write at 328192 copy of 676352
Write at 328448 copy of 676608
Write at 328704 copy of 676864
Write at 328960 copy of 677120
Write at 329216 copy of 677376
Write at 329472 copy of 677632
Write at 329728 copy of 677888
Write at 329984 copy of 678144
Write at 330240 copy of 678400
Write at 330496 copy of 678656
Write at 330752 copy of 678912
Write at 331008 copy of 679168
Write at 331264 copy of 679424
Write at 331520 copy of 679680
Write at 331776 copy of 679936
Write at 332032 copy of 680192
Write at 332288 copy of 680448
Write at 332544 copy of 680704
Write at 332800 copy of 680960
Write at 333056 copy of 681216
Write at 333312 copy of 681472
Write at 333568 copy of 681728
Write at 333824 copy of 681984
Write at 334080 copy of 682240
Write at 334336 copy of 682496
Write at 334592 copy of 682752
Write at 334848 copy of 683008
Write at 335104 copy of 683264
Write at 335360 copy of 683520
Write at 335616 copy of 683776
Write at 335872 copy of 684032
Write at 336128 copy of 684288
Write at 336384 copy of 684544
Write at 336640 copy of 684800
Write at 336896 copy of 685056
Write at 337152 copy of 685312
Write at 337408 copy of 685568
Write at 337664 copy of 685824
Write at 337920 copy of 686080
Write at 338176 copy of 686336
Write at 338432 copy of 686592
Write at 338688 copy of 686848
Write at 338944 copy of 687104
Write at 339200 copy of 687360
Write at 339456 copy of 687616
Write at 339712 copy of 687872
Write at 339968 copy of 688128
Write at 340224 copy of 688384
Write at 340480 copy of 688640
Write at 340736 copy of 688896
Write at 340992 copy of 689152
Write at 341248 copy of 689408
Write at 341504 copy of 689664
Write at 341760 copy of 689920
Write at 342016 copy of 690176
Write at 342272 copy of 690432
Write at 342528 copy of 690688
Write at 342784 copy of 690944
Write at 343040 copy of 691200
Write at 343296 copy of 691456
Write at 343552 copy of 691712
Write at 343808 copy of 691968
Write at 344064 copy of 692224
Write at 344320 copy of 692480
Write at 344576 copy of 692736
Write at 344832 copy of 692992
Write at 345088 copy of 693248
Write at 345344 copy of 693504
Write at 345600 copy of 693760
Write at 345856 copy of 694016
Write at 346112 copy of 694272
Write at 346368 copy of 694528
Write at 346624 copy of 694784
Write at 346880 copy of 695040
Write at 347136 copy of 695296
Write at 347392 copy of 695552
Write at 347648 copy of 695808
Write at 347904 copy of 696064
Write at 348160 copy of 696320
Write at 348416 copy of 696576
Write at 348672 copy of 696832
Write at 348928 copy of 697088
Write at 349184 copy of 697344
Write at 349440 copy of 697600
Write at 349696 copy of 697856
Write at 349952 copy of 698112
Write at 350208 copy of 698368
Write at 350464 copy of 698624
Write at 350720 copy of 698880
Write at 350976 copy of 699136
Write at 351232 copy of 699392
Write at 351488 copy of 699648
Write at 351744 copy of 699904
Write at 352000 copy of 700160
Write at 352256 copy of 700416
Write at 352512 copy of 700672
Write at 352768 copy of 700928
Write at 353024 copy of 701184
Write at 353280 copy of 701440
Write at 353536 copy of 701696
Write at 353792 copy of 701952
Write at 354048 copy of 702208
Write at 354304 copy of 702464
Write at 354560 copy of 702720
Write at 354816 copy of 702976
Write at 355072 copy of 703232
Write at 355328 copy of 703488
Write at 355584 copy of 703744
Write at 355840 copy of 704000
Write at 356096 copy of 704256
Clear rom at position 57000
SPIEraseSector at position 0x57000 sector 87
SPIEraseSector at position 0x58000 sector 88
SPIEraseSector at position 0x59000 sector 89
SPIEraseSector at position 0x5a000 sector 90
SPIEraseSector at position 0x5b000 sector 91
SPIEraseSector at position 0x5c000 sector 92
SPIEraseSector at position 0x5d000 sector 93
SPIEraseSector at position 0x5e000 sector 94
SPIEraseSector at position 0x5f000 sector 95
SPIEraseSector at position 0x60000 sector 96
SPIEraseSector at position 0x61000 sector 97
SPIEraseSector at position 0x62000 sector 98
SPIEraseSector at position 0x63000 sector 99
SPIEraseSector at position 0x64000 sector 100
SPIEraseSector at position 0x65000 sector 101
SPIEraseSector at position 0x66000 sector 102
SPIEraseSector at position 0x67000 sector 103
SPIEraseSector at position 0x68000 sector 104
SPIEraseSector at position 0x69000 sector 105
SPIEraseSector at position 0x6a000 sector 106
SPIEraseSector at position 0x6b000 sector 107
SPIEraseSector at position 0x6c000 sector 108
SPIEraseSector at position 0x6d000 sector 109
SPIEraseSector at position 0x6e000 sector 110
SPIEraseSector at position 0x6f000 sector 111
SPIEraseSector at position 0x70000 sector 112
SPIEraseSector at position 0x71000 sector 113
SPIEraseSector at position 0x72000 sector 114
SPIEraseSector at position 0x73000 sector 115
SPIEraseSector at position 0x74000 sector 116
SPIEraseSector at position 0x75000 sector 117
SPIEraseSector at position 0x76000 sector 118
SPIEraseSector at position 0x77000 sector 119
SPIEraseSector at position 0x78000 sector 120
SPIEraseSector at position 0x79000 sector 121
SPIEraseSector at position 0x7a000 sector 122
SPIEraseSector at position 0x7b000 sector 123
SPIEraseSector at position 0x7c000 sector 124
SPIEraseSector at position 0x7d000 sector 125
SPIEraseSector at position 0x7e000 sector 126
SPIEraseSector at position 0x7f000 sector 127
SPIEraseSector at position 0x80000 sector 128
SPIEraseSector at position 0x81000 sector 129
SPIEraseSector at position 0x82000 sector 130
SPIEraseSector at position 0x83000 sector 131
SPIEraseSector at position 0x84000 sector 132
SPIEraseSector at position 0x85000 sector 133
SPIEraseSector at position 0x86000 sector 134
SPIEraseSector at position 0x87000 sector 135
SPIEraseSector at position 0x88000 sector 136
SPIEraseSector at position 0x89000 sector 137
SPIEraseSector at position 0x8a000 sector 138
SPIEraseSector at position 0x8b000 sector 139
SPIEraseSector at position 0x8c000 sector 140
SPIEraseSector at position 0x8d000 sector 141
SPIEraseSector at position 0x8e000 sector 142
SPIEraseSector at position 0x8f000 sector 143
SPIEraseSector at position 0x90000 sector 144
SPIEraseSector at position 0x91000 sector 145
SPIEraseSector at position 0x92000 sector 146
SPIEraseSector at position 0x93000 sector 147
SPIEraseSector at position 0x94000 sector 148
SPIEraseSector at position 0x95000 sector 149
SPIEraseSector at position 0x96000 sector 150
SPIEraseSector at position 0x97000 sector 151
SPIEraseSector at position 0x98000 sector 152
SPIEraseSector at position 0x99000 sector 153
SPIEraseSector at position 0x9a000 sector 154
SPIEraseSector at position 0x9b000 sector 155
SPIEraseSector at position 0x9c000 sector 156
SPIEraseSector at position 0x9d000 sector 157
SPIEraseSector at position 0x9e000 sector 158
SPIEraseSector at position 0x9f000 sector 159
SPIEraseSector at position 0xa0000 sector 160
SPIEraseSector at position 0xa1000 sector 161
SPIEraseSector at position 0xa2000 sector 162
SPIEraseSector at position 0xa3000 sector 163
SPIEraseSector at position 0xa4000 sector 164
SPIEraseSector at position 0xa5000 sector 165
SPIEraseSector at position 0xa6000 sector 166
SPIEraseSector at position 0xa7000 sector 167
SPIEraseSector at position 0xa8000 sector 168
SPIEraseSector at position 0xa9000 sector 169
SPIEraseSector at position 0xaa000 sector 170
SPIEraseSector at position 0xab000 sector 171
Writing default boot config.
Header size: 632064
Booting at ram 640256.
sp 0x3ffff600
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0xffffffef, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3
AndreaGreco commented 5 years ago

Try with same firmware flash blink.bin I inside of your firmware. This confirm you that your code works. Obviously after you need reflash with esp tools your firmware.

Let me know

kiralikbeyin commented 5 years ago

@AndreaGreco I already flashed blink.bin it works.

http_client_ota.c firmware is 265k

Not i am trying to find a way to put 666k ... @apiel

aboot.h

//#define ROM_SIZE 0x55000 // 348160 bytes ABOOT ORGINAL
//#define ROM_SIZE 0x42000 // 270336 bytes
//#define ROM_SIZE 0x50000 // 327680 bytes
#define ROM_SIZE 0xAF000 // 716800 bytes

#define ROM_ADDR_1 0x2000
//#define ROM_ADDR_2 ROM_SIZE + ROM_ADDR_1 //ABOOT ORGINAL
//#define ROM_ADDR_2 0x42000
#define ROM_ADDR_2 0x51000

I got "Dowloaded image binary checsum is fallied " error so i changed Rboot_verified to 1 ...

esp-open-rtos/extras/http_client_ota/http_client_ota.c

    Rboot_verified = rboot_verify_image(rboot_config.roms[slot], &boot_dimension, (const char **) &error_message);
    Rboot_verified = 1;
AndreaGreco commented 5 years ago

You must store all code that is execute OTA process All bootloader function all OTA code... In a fixed sector that is not erased during flashing operation.

But, http_ota_client is not written with this purpose.

At now I'm over the beach. Maybe when I back can checkout your source code if possible and try to understand exactly what are you doing. Maybe together can found a solution.

But form here I cannot help you more.

I will back at 26/08

kiralikbeyin commented 5 years ago

ok @AndreaGreco thanks maybe someone reads these before you come back.

I only changed

define ROM_SIZE 0x55000 // 348160 bytes

to

define ROM_SIZE 0x78000 // 491520 bytes

https://github.com/apiel/aboot/blob/master/aboot/aboot.h

453k firmware uploaded (not blink.bin)

but when i try

define ROM_SIZE 0xAF000 // 716800 bytes


dhcp client start...
ip:192.168.0.11,mask:255.255.255.0,gw:192.168.0.1
[OTA]   HTTP client task starting
[OTA]   Image will be saved in OTA slot 1
[OTA]   OTA magic 225
[OTA]   flash_offset 1773568
[OTA]   MAX_IMAGE_SIZE 1048576
rboot_verify_image: Bad second magic
Error:Ota has completed upgrade process, all ready for system software reset
Delay 1
Delay 2
Delay 3
Reset
rm match
del if0
usl
sul 0 0

ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x3ffe8000, len 500, room 16
tail 4
chksum 0xf1
load 0x40100000, len 708, room 4

0x40100000: _stext at ??:?

tail 0
chksum 0x21
csum 0x21
Writing default boot config.
We should copy the new Rom from 0xb1000 to 0x2000.
Clear rom at position 2000
SPIEraseSector at position 0x2000 sector 2
SPIEraseSector at position 0x3000 sector 3
SPIEraseSector at position 0x4000 sector 4
SPIEraseSector at position 0x5000 sector 5
SPIEraseSector at position 0x6000 sector 6
SPIEraseSector at position 0x7000 sector 7
SPIEraseSector at position 0x8000 sector 8
SPIEraseSector at position 0x9000 sector 9
SPIEraseSector at position 0xa000 sector 10
SPIEraseSector at position 0xb000 sector 11
SPIEraseSector at position 0xc000 sector 12
SPIEraseSector at position 0xd000 sector 13
SPIEraseSector at position 0xe000 sector 14
SPIEraseSector at position 0xf000 sector 15
SPIEraseSector at position 0x10000 sector 16
SPIEraseSector at position 0x11000 sector 17
SPIEraseSector at position 0x12000 sector 18
SPIEraseSector at position 0x13000 sector 19
SPIEraseSector at position 0x14000 sector 20
SPIEraseSector at position 0x15000 sector 21
SPIEraseSector at position 0x16000 sector 22
SPIEraseSector at position 0x17000 sector 23
SPIEraseSector at position 0x18000 sector 24
SPIEraseSector at position 0x19000 sector 25
SPIEraseSector at position 0x1a000 sector 26
SPIEraseSector at position 0x1b000 sector 27
SPIEraseSector at position 0x1c000 sector 28
SPIEraseSector at position 0x1d000 sector 29
SPIEraseSector at position 0x1e000 sector 30
SPIEraseSector at position 0x1f000 sector 31
SPIEraseSector at position 0x20000 sector 32
SPIEraseSector at position 0x21000 sector 33
SPIEraseSector at position 0x22000 sector 34
SPIEraseSector at position 0x23000 sector 35
SPIEraseSector at position 0x24000 sector 36
SPIEraseSector at position 0x25000 sector 37
SPIEraseSector at position 0x26000 sector 38
SPIEraseSector at position 0x27000 sector 39
SPIEraseSector at position 0x28000 sector 40
SPIEraseSector at position 0x29000 sector 41
SPIEraseSector at position 0x2a000 sector 42
SPIEraseSector at position 0x2b000 sector 43
SPIEraseSector at position 0x2c000 sector 44
SPIEraseSector at position 0x2d000 sector 45
SPIEraseSector at position 0x2e000 sector 46
SPIEraseSector at position 0x2f000 sector 47
SPIEraseSector at position 0x30000 sector 48
SPIEraseSector at position 0x31000 sector 49
SPIEraseSector at position 0x32000 sector 50
SPIEraseSector at position 0x33000 sector 51
SPIEraseSector at position 0x34000 sector 52
SPIEraseSector at position 0x35000 sector 53
SPIEraseSector at position 0x36000 sector 54
SPIEraseSector at position 0x37000 sector 55
SPIEraseSector at position 0x38000 sector 56
SPIEraseSector at position 0x39000 sector 57
SPIEraseSector at position 0x3a000 sector 58
SPIEraseSector at position 0x3b000 sector 59
SPIEraseSector at position 0x3c000 sector 60
SPIEraseSector at position 0x3d000 sector 61
SPIEraseSector at position 0x3e000 sector 62
SPIEraseSector at position 0x3f000 sector 63
SPIEraseSector at position 0x40000 sector 64
SPIEraseSector at position 0x41000 sector 65
SPIEraseSector at position 0x42000 sector 66
SPIEraseSector at position 0x43000 sector 67
SPIEraseSector at position 0x44000 sector 68

ets Jan  8 2013,rst cause:4, boot mode:(3,6)

wdt reset
load 0x3ffe8000, len 500, room 16
tail 4
chksum 0xf1
load 0x40100000, len 708, room 4

0x40100000: _stext at ??:?

tail 0
chksum 0x21
csum 0x21
Writing default boot config.
We should copy the new Rom from 0xb1000 to 0x2000.
Clear rom at position 2000
SPIEraseSector at position 0x2000 sector 2
SPIEraseSector at position 0x3000 sector 3
SPIEraseSector at position 0x4000 sector 4
SPIEraseSector at position 0x5000 sector 5
SPIEraseSector at position 0x6000 sector 6
SPIEraseSector at position 0x7000 sector 7
SPIEraseSector at position 0x8000 sector 8
SPIEraseSector at position 0x9000 sector 9
SPIEraseSector at position 0xa000 sector 10
SPIEraseSector at position 0xb000 sector 11
SPIEraseSector at position 0xc000 sector 12
SPIEraseSector at position 0xd000 sector 13
SPIEraseSector at position 0xe000 sector 14
SPIEraseSector at position 0xf000 sector 15
SPIEraseSector at position 0x10000 sector 16
SPIEraseSector at position 0x11000 sector 17
SPIEraseSector at position 0x12000 sector 18
SPIEraseSector at position 0x13000 sector 19
SPIEraseSector at position 0x14000 sector 20
SPIEraseSector at position 0x15000 sector 21
SPIEraseSector at position 0x16000 sector 22
SPIEraseSector at position 0x17000 sector 23
SPIEraseSector at position 0x18000 sector 24
SPIEraseSector at position 0x19000 sector 25
SPIEraseSector at position 0x1a000 sector 26
SPIEraseSector at position 0x1b000 sector 27
SPIEraseSector at position 0x1c000 sector 28
SPIEraseSector at position 0x1d000 sector 29
SPIEraseSector at position 0x1e000 sector 30
SPIEraseSector at position 0x1f000 sector 31
SPIEraseSector at position 0x20000 sector 32
SPIEraseSector at position 0x21000 sector 33
SPIEraseSector at position 0x22000 sector 34
SPIEraseSector at position 0x23000 sector 35
SPIEraseSector at position 0x24000 sector 36
SPIEraseSector at position 0x25000 sector 37
SPIEraseSector at position 0x26000 sector 38
SPIEraseSector at position 0x27000 sector 39
SPIEraseSector at position 0x28000 sector 40
SPIEraseSector at position 0x29000 sector 41
SPIEraseSector at position 0x2a000 sector 42
SPIEraseSector at position 0x2b000 sector 43
SPIEraseSector at position 0x2c000 sector 44
SPIEraseSector at position 0x2d000 sector 45
SPIEraseSector at position 0x2e000 sector 46
SPIEraseSector at position 0x2f000 sector 47
SPIEraseSector at position 0x30000 sector 48
SPIEraseSector at position 0x31000 sector 49
SPIEraseSector at position 0x32000 sector 50
SPIEraseSector at position 0x33000 sector 51
SPIEraseSector at position 0x34000 sector 52
SPIEraseSector at position 0x35000 sector 53
SPIEraseSector at position 0x36000 sector 54
SPIEraseSector at position 0x37000 sector 55
SPIEraseSector at position 0x38000 sector 56
SPIEraseSector at position 0x39000 sector 57
SPIEraseSector at position 0x3a000 sector 58
SPIEraseSector at position 0x3b000 sector 59
SPIEraseSector at position 0x3c000 sector 60
SPIEraseSector at position 0x3d000 sector 61
SPIEraseSector at position 0x3e000 sector 62
SPIEraseSector at position 0x3f000 sector 63
SPIEraseSector at position 0x40000 sector 64
SPIEraseSector at position 0x41000 sector 65
SPIEraseSector at position 0x42000 sector 66
SPIEraseSector at position 0x43000 sector 67
SPIEraseSector at position 0x44000 sector 68
SPIEraseSector at position 0x45000 sector 69
SPIEraseSector at position 0x46000 sector 70
SPIEraseSector at position 0x47000 sector 71
SPIEraseSector at position 0x48000 sector 72
SPIEraseSector at position 0x49000 sector 73
SPIEraseSector at position 0x4a000 sector 74
SPIEraseSector at position 0x4b000 sector 75
SPIEraseSector at position 0x4c000 sector 76
SPIEraseSector at position 0x4d000 sector 77
SPIEraseSector at position 0x4e000 sector 78
SPIEraseSector at position 0x4f000 sector 79
SPIEraseSector at position 0x50000 sector 80
SPIEraseSector at position 0x51000 sector 81
SPIEraseSector at position 0x52000 sector 82
SPIEraseSector at position 0x53000 sector 83
SPIEraseSector at position 0x54000 sector 84
SPIEraseSector at position 0x55000 sector 85
SPIEraseSector at position 0x56000 sector 86
SPIEraseSector at position 0x57000 sector 87
SPIEraseSector at position 0x58000 sector 88
SPIEraseSector at position 0x59000 sector 89
SPIEraseSector at position 0x5a000 sector 90
SPIEraseSector at position 0x5b000 sector 91
SPIEraseSector at position 0x5c000 sector 92
SPIEraseSector at position 0x5d000 sector 93
SPIEraseSector at position 0x5e000 sector 94
SPIEraseSector at position 0x5f000 sector 95
SPIEraseSector at position 0x60000 sector 96
SPIEraseSector at position 0x61000 sector 97
SPIEraseSector at position 0x62000 sector 98
SPIEraseSector at position 0x63000 sector 99
SPIEraseSector at position 0x64000 sector 100
SPIEraseSector at position 0x65000 sector 101
SPIEraseSector at position 0x66000 sector 102
SPIEraseSector at position 0x67000 sector 103
SPIEraseSector at position 0x68000 sector 104
SPIEraseSector at position 0x69000 sector 105
SPIEraseSector at position 0x6a000 sector 106
SPIEraseSector at position 0x6b000 sector 107
SPIEraseSector at position 0x6c000 sector 108
SPIEraseSector at position 0x6d000 sector 109
SPIEraseSector at position 0x6e000 sector 110
SPIEraseSector at position 0x6f000 sector 111
SPIEraseSector at position 0x70000 sector 112
SPIEraseSector at position 0x71000 sector 113
SPIEraseSector at position 0x72000 sector 114
SPIEraseSector at position 0x73000 sector 115
SPIEraseSector at position 0x74000 sector 116
SPIEraseSector at position 0x75000 sector 117
SPIEraseSector at position 0x76000 sector 118
SPIEraseSector at position 0x77000 sector 119
SPIEraseSector at position 0x78000 sector 120
SPIEraseSector at position 0x79000 sector 121
SPIEraseSector at position 0x7a000 sector 122
SPIEraseSector at position 0x7b000 sector 123
SPIEraseSector at position 0x7c000 sector 124
SPIEraseSector at position 0x7d000 sector 125
SPIEraseSector at position 0x7e000 sector 126
SPIEraseSector at position 0x7f000 sector 127
SPIEraseSector at position 0x80000 sector 128
SPIEraseSector at position 0x81000 sector 129
SPIEraseSector at position 0x82000 sector 130
SPIEraseSector at position 0x83000 sector 131
SPIEraseSector at position 0x84000 sector 132
SPIEraseSector at position 0x85000 sector 133
SPIEraseSector at position 0x86000 sector 134
SPIEraseSector at position 0x87000 sector 135
SPIEraseSector at position 0x88000 sector 136
SPIEraseSector at position 0x89000 sector 137
SPIEraseSector at position 0x8a000 sector 138
SPIEraseSector at position 0x8b000 sector 139
SPIEraseSector at position 0x8c000 sector 140
SPIEraseSector at position 0x8d000 sector 141
SPIEraseSector at position 0x8e000 sector 142
SPIEraseSector at position 0x8f000 sector 143
SPIEraseSector at position 0x90000 sector 144
SPIEraseSector at position 0x91000 sector 145
SPIEraseSector at position 0x92000 sector 146
SPIEraseSector at position 0x93000 sector 147
SPIEraseSector at position 0x94000 sector 148
SPIEraseSector at position 0x95000 sector 149
SPIEraseSector at position 0x96000 sector 150
SPIEraseSector at position 0x97000 sector 151
SPIEraseSector at position 0x98000 sector 152
SPIEraseSector at position 0x99000 sector 153
SPIEraseSector at position 0x9a000 sector 154
SPIEraseSector at position 0x9b000 sector 155
SPIEraseSector at position 0x9c000 sector 156
SPIEraseSector at position 0x9d000 sector 157
SPIEraseSector at position 0x9e000 sector 158
SPIEraseSector at position 0x9f000 sector 159
SPIEraseSector at position 0xa0000 sector 160
SPIEraseSector at position 0xa1000 sector 161
SPIEraseSector at position 0xa2000 sector 162
SPIEraseSector at position 0xa3000 sector 163
SPIEraseSector at position 0xa4000 sector 164
SPIEraseSector at position 0xa5000 sector 165
SPIEraseSector at position 0xa6000 sector 166
SPIEraseSector at position 0xa7000 sector 167
SPIEraseSector at position 0xa8000 sector 168
SPIEraseSector at position 0xa9000 sector 169
SPIEraseSector at position 0xaa000 sector 170
SPIEraseSector at position 0xab000 sector 171
SPIEraseSector at position 0xac000 sector 172
SPIEraseSector at position 0xad000 sector 173
SPIEraseSector at position 0xae000 sector 174
SPIEraseSector at position 0xaf000 sector 175
SPIEraseSector at position 0xb0000 sector 176
Write at 8192 copy of 724992
Write at 12288 copy of 729088
Write at 16384 copy of 733184
Write at 20480 copy of 737280
Write at 24576 copy of 741376
Write at 28672 copy of 745472
Write at 32768 copy of 749568
Write at 36864 copy of 753664
Write at 40960 copy of 757760
Write at 45056 copy of 761856
Write at 49152 copy of 765952
Write at 53248 copy of 770048
Write at 57344 copy of 774144
Write at 61440 copy of 778240
Write at 65536 copy of 782336
Write at 69632 copy of 786432
Write at 73728 copy of 790528
Write at 77824 copy of 794624
Write at 81920 copy of 798720
Write at 86016 copy of 802816
Write at 90112 copy of 806912
Write at 94208 copy of 811008
Write at 98304 copy of 815104
Write at 102400 copy of 819200
Write at 106496 copy of 823296
Write at 110592 copy of 827392
Write at 114688 copy of 831488
Write at 118784 copy of 835584
Write at 122880 copy of 839680
Write at 126976 copy of 843776
Write at 131072 copy of 847872
Write at 135168 copy of 851968
Write at 139264 copy of 856064
Write at 143360 copy of 860160
Write at 147456 copy of 864256
Write at 151552 copy of 868352
Write at 155648 copy of 872448
Write at 159744 copy of 876544
Write at 163840 copy of 880640
Write at 167936 copy of 884736
Write at 172032 copy of 888832
Write at 176128 copy of 892928
Write at 180224 copy of 897024
Write at 184320 copy of 901120
Write at 188416 copy of 905216
Write at 192512 copy of 909312
Write at 196608 copy of 913408
Write at 200704 copy of 917504
Write at 204800 copy of 921600
Write at 208896 copy of 925696
Write at 212992 copy of 929792
Write at 217088 copy of 933888
Write at 221184 copy of 937984
Write at 225280 copy of 942080
Write at 229376 copy of 946176
Write at 233472 copy of 950272
Write at 237568 copy of 954368
Write at 241664 copy of 958464
Write at 245760 copy of 962560
Write at 249856 copy of 966656
Write at 253952 copy of 970752
Write at 258048 copy of 974848
Write at 262144 copy of 978944
Write at 266240 copy of 983040
Write at 270336 copy of 987136
Write at 274432 copy of 991232
Write at 278528 copy of 995328
Write at 282624 copy of 999424
Write at 286720 copy of 1003520
Write at 290816 copy of 1007616
Write at 294912 copy of 1011712
Write at 299008 copy of 1015808
Write at 303104 copy of 1019904
Write at 307200 copy of 1024000
Write at 311296 copy of 1028096
Write at 315392 copy of 1032192
Write at 319488 copy of 1036288
Write at 323584 copy of 1040384
Write at 327680 copy of 1044480
Write at 331776 copy of 1048576
Write at 335872 copy of 1052672
Write at 339968 copy of 1056768
Write at 344064 copy of 1060864
Write at 348160 copy of 1064960
Write at 352256 copy of 1069056
Write at 356352 copy of 1073152
Write at 360448 copy of 1077248
Write at 364544 copy of 1081344
Write at 368640 copy of 1085440
Write at 372736 copy of 1089536
Write at 376832 copy of 1093632
Write at 380928 copy of 1097728
Write at 385024 copy of 1101824
Write at 389120 copy of 1105920
Write at 393216 copy of 1110016
Write at 397312 copy of 1114112
Write at 401408 copy of 1118208
Write at 405504 copy of 1122304
Write at 409600 copy of 1126400
Write at 413696 copy of 1130496
Write at 417792 copy of 1134592
Write at 421888 copy of 1138688
Write at 425984 copy of 1142784
Write at 430080 copy of 1146880
Write at 434176 copy of 1150976
Write at 438272 copy of 1155072
Write at 442368 copy of 1159168
Write at 446464 copy of 1163264
Write at 450560 copy of 1167360
Write at 454656 copy of 1171456
Write at 458752 copy of 1175552
Write at 462848 copy of 1179648
Write at 466944 copy of 1183744
Write at 471040 copy of 1187840
Write at 475136 copy of 1191936
Write at 479232 copy of 1196032
Write at 483328 copy of 1200128
Write at 487424 copy of 1204224
Write at 491520 copy of 1208320
Write at 495616 copy of 1212416
Write at 499712 copy of 1216512
Write at 503808 copy of 1220608
Write at 507904 copy of 1224704
Write at 512000 copy of 1228800
Write at 516096 copy of 1232896
Write at 520192 copy of 1236992
Write at 524288 copy of 1241088
Write at 528384 copy of 1245184
Write at 532480 copy of 1249280
Write at 536576 copy of 1253376
Write at 540672 copy of 1257472
Write at 544768 copy of 1261568
Write at 548864 copy of 1265664
Write at 552960 copy of 1269760
Write at 557056 copy of 1273856
Write at 561152 copy of 1277952
Write at 565248 copy of 1282048
Write at 569344 copy of 1286144
Write at 573440 copy of 1290240
Write at 577536 copy of 1294336
Write at 581632 copy of 1298432
Write at 585728 copy of 1302528
Write at 589824 copy of 1306624
Write at 593920 copy of 1310720
Write at 598016 copy of 1314816
Write at 602112 copy of 1318912
Write at 606208 copy of 1323008
Write at 610304 copy of 1327104
Write at 614400 copy of 1331200
Write at 618496 copy of 1335296
Write at 622592 copy of 1339392
Write at 626688 copy of 1343488
Write at 630784 copy of 1347584
Write at 634880 copy of 1351680
Write at 638976 copy of 1355776
Write at 643072 copy of 1359872
Write at 647168 copy of 1363968
Write at 651264 copy of 1368064
Write at 655360 copy of 1372160
Write at 659456 copy of 1376256
Write at 663552 copy of 1380352
Write at 667648 copy of 1384448
Write at 671744 copy of 1388544
Write at 675840 copy of 1392640
Write at 679936 copy of 1396736
Write at 684032 copy of 1400832
Write at 688128 copy of 1404928
Write at 692224 copy of 1409024
Write at 696320 copy of 1413120
Write at 700416 copy of 1417216
Write at 704512 copy of 1421312
Write at 708608 copy of 1425408
Write at 712704 copy of 1429504
Write at 716800 copy of 1433600
Write at 720896 copy of 1437696
Clear rom at position b1000
SPIEraseSector at position 0xb1000 sector 177
SPIEraseSector at position 0xb2000 sector 178
SPIEraseSector at position 0xb3000 sector 179
SPIEraseSector at position 0xb4000 sector 180
SPIEraseSector at position 0xb5000 sector 181
SPIEraseSector at position 0xb6000 sector 182
SPIEraseSector at position 0xb7000 sector 183
SPIEraseSector at position 0xb8000 sector 184
SPIEraseSector at position 0xb9000 sector 185
SPIEraseSector at position 0xba000 sector 186
SPIEraseSector at position 0xbb000 sector 187
SPIEraseSector at position 0xbc000 sector 188
SPIEraseSector at position 0xbd000 sector 189
SPIEraseSector at position 0xbe000 sector 190
SPIEraseSector at position 0xbf000 sector 191
SPIEraseSector at position 0xc0000 sector 192
SPIEraseSector at position 0xc1000 sector 193
SPIEraseSector at position 0xc2000 sector 194
SPIEraseSector at position 0xc3000 sector 195
SPIEraseSector at position 0xc4000 sector 196
SPIEraseSector at position 0xc5000 sector 197
SPIEraseSector at position 0xc6000 sector 198
SPIEraseSector at position 0xc7000 sector 199
SPIEraseSector at position 0xc8000 sector 200
SPIEraseSector at position 0xc9000 sector 201
SPIEraseSector at position 0xca000 sector 202
SPIEraseSector at position 0xcb000 sector 203
SPIEraseSector at position 0xcc000 sector 204
SPIEraseSector at position 0xcd000 sector 205
SPIEraseSector at position 0xce000 sector 206
SPIEraseSector at position 0xcf000 sector 207
SPIEraseSector at position 0xd0000 sector 208
SPIEraseSector at position 0xd1000 sector 209
SPIEraseSector at position 0xd2000 sector 210
SPIEraseSector at position 0xd3000 sector 211
SPIEraseSector at position 0xd4000 sector 212
SPIEraseSector at position 0xd5000 sector 213
SPIEraseSector at position 0xd6000 sector 214
SPIEraseSector at position 0xd7000 sector 215
SPIEraseSector at position 0xd8000 sector 216
SPIEraseSector at position 0xd9000 sector 217
SPIEraseSector at position 0xda000 sector 218
SPIEraseSector at position 0xdb000 sector 219
SPIEraseSector at position 0xdc000 sector 220
SPIEraseSector at position 0xdd000 sector 221
SPIEraseSector at position 0xde000 sector 222
SPIEraseSector at position 0xdf000 sector 223
SPIEraseSector at position 0xe0000 sector 224
SPIEraseSector at position 0xe1000 sector 225
SPIEraseSector at position 0xe2000 sector 226
SPIEraseSector at position 0xe3000 sector 227
SPIEraseSector at position 0xe4000 sector 228
SPIEraseSector at position 0xe5000 sector 229
SPIEraseSector at position 0xe6000 sector 230
SPIEraseSector at position 0xe7000 sector 231
SPIEraseSector at position 0xe8000 sector 232
SPIEraseSector at position 0xe9000 sector 233
SPIEraseSector at position 0xea000 sector 234
SPIEraseSector at position 0xeb000 sector 235
SPIEraseSector at position 0xec000 sector 236
SPIEraseSector at position 0xed000 sector 237
SPIEraseSector at position 0xee000 sector 238
SPIEraseSector at position 0xef000 sector 239
SPIEraseSector at position 0xf0000 sector 240
SPIEraseSector at position 0xf1000 sector 241
SPIEraseSector at position 0xf2000 sector 242
SPIEraseSector at position 0xf3000 sector 243
SPIEraseSector at position 0xf4000 sector 244
SPIEraseSector at position 0xf5000 sector 245
SPIEraseSector at position 0xf6000 sector 246
SPIEraseSector at position 0xf7000 sector 247
SPIEraseSector at position 0xf8000 sector 248
SPIEraseSector at position 0xf9000 sector 249
SPIEraseSector at position 0xfa000 sector 250
SPIEraseSector at position 0xfb000 sector 251
SPIEraseSector at position 0xfc000 sector 252
SPIEraseSector at position 0xfd000 sector 253
SPIEraseSector at position 0xfe000 sector 254
SPIEraseSector at position 0xff000 sector 255
SPIEraseSector at position 0x100000 sector 256
SPIEraseSector at position 0x101000 sector 257
SPIEraseSector at position 0x102000 sector 258
SPIEraseSector at position 0x103000 sector 259
SPIEraseSector at position 0x104000 sector 260
SPIEraseSector at position 0x105000 sector 261
SPIEraseSector at position 0x106000 sector 262
SPIEraseSector at position 0x107000 sector 263
SPIEraseSector at position 0x108000 sector 264
SPIEraseSector at position 0x109000 sector 265
SPIEraseSector at position 0x10a000 sector 266
SPIEraseSector at position 0x10b000 sector 267
SPIEraseSector at position 0x10c000 sector 268
SPIEraseSector at position 0x10d000 sector 269
SPIEraseSector at position 0x10e000 sector 270
SPIEraseSector at position 0x10f000 sector 271
SPIEraseSector at position 0x110000 sector 272
SPIEraseSector at position 0x111000 sector 273
SPIEraseSector at position 0x112000 sector 274
SPIEraseSector at position 0x113000 sector 275
SPIEraseSector at position 0x114000 sector 276
SPIEraseSector at position 0x115000 sector 277
SPIEraseSector at position 0x116000 sector 278
SPIEraseSector at position 0x117000 sector 279
SPIEraseSector at position 0x118000 sector 280
SPIEraseSector at position 0x119000 sector 281
SPIEraseSector at position 0x11a000 sector 282
SPIEraseSector at position 0x11b000 sector 283
SPIEraseSector at position 0x11c000 sector 284
SPIEraseSector at position 0x11d000 sector 285
SPIEraseSector at position 0x11e000 sector 286
SPIEraseSector at position 0x11f000 sector 287
SPIEraseSector at position 0x120000 sector 288
SPIEraseSector at position 0x121000 sector 289
SPIEraseSector at position 0x122000 sector 290
SPIEraseSector at position 0x123000 sector 291
SPIEraseSector at position 0x124000 sector 292
SPIEraseSector at position 0x125000 sector 293
SPIEraseSector at position 0x126000 sector 294
SPIEraseSector at position 0x127000 sector 295
SPIEraseSector at position 0x128000 sector 296
SPIEraseSector at position 0x129000 sector 297
SPIEraseSector at position 0x12a000 sector 298
SPIEraseSector at position 0x12b000 sector 299
SPIEraseSector at position 0x12c000 sector 300
SPIEraseSector at position 0x12d000 sector 301
SPIEraseSector at position 0x12e000 sector 302
SPIEraseSector at position 0x12f000 sector 303
SPIEraseSector at position 0x130000 sector 304
SPIEraseSector at position 0x131000 sector 305
SPIEraseSector at position 0x132000 sector 306
SPIEraseSector at position 0x133000 sector 307
SPIEraseSector at position 0x134000 sector 308
SPIEraseSector at position 0x135000 sector 309
SPIEraseSector at position 0x136000 sector 310
SPIEraseSector at position 0x137000 sector 311
SPIEraseSector at position 0x138000 sector 312
SPIEraseSector at position 0x139000 sector 313
SPIEraseSector at position 0x13a000 sector 314
SPIEraseSector at position 0x13b000 sector 315
SPIEraseSector at position 0x13c000 sector 316
SPIEraseSector at position 0x13d000 sector 317
SPIEraseSector at position 0x13e000 sector 318
SPIEraseSector at position 0x13f000 sector 319
SPIEraseSector at position 0x140000 sector 320
SPIEraseSector at position 0x141000 sector 321
SPIEraseSector at position 0x142000 sector 322
SPIEraseSector at position 0x143000 sector 323
SPIEraseSector at position 0x144000 sector 324
SPIEraseSector at position 0x145000 sector 325
SPIEraseSector at position 0x146000 sector 326
SPIEraseSector at position 0x147000 sector 327
SPIEraseSector at position 0x148000 sector 328
SPIEraseSector at position 0x149000 sector 329
SPIEraseSector at position 0x14a000 sector 330
SPIEraseSector at position 0x14b000 sector 331
SPIEraseSector at position 0x14c000 sector 332
SPIEraseSector at position 0x14d000 sector 333
SPIEraseSector at position 0x14e000 sector 334
SPIEraseSector at position 0x14f000 sector 335
SPIEraseSector at position 0x150000 sector 336
SPIEraseSector at position 0x151000 sector 337
SPIEraseSector at position 0x152000 sector 338
SPIEraseSector at position 0x153000 sector 339
SPIEraseSector at position 0x154000 sector 340
SPIEraseSector at position 0x155000 sector 341
SPIEraseSector at position 0x156000 sector 342
SPIEraseSector at position 0x157000 sector 343
SPIEraseSector at position 0x158000 sector 344
SPIEraseSector at position 0x159000 sector 345
SPIEraseSector at position 0x15a000 sector 346
SPIEraseSector at position 0x15b000 sector 347
SPIEraseSector at position 0x15c000 sector 348
SPIEraseSector at position 0x15d000 sector 349
SPIEraseSector at position 0x15e000 sector 350
SPIEraseSector at position 0x15f000 sector 351
Writing default boot config.
Header size: 632064
Booting at ram 640256.
sp 0x3ffff710
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0xffffffef, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
epc1=0x40001800, epc2=0x00000000, epc3=0x00000000, excvaddr=0x00007ff0, depc=0x00000000
Fatal exception (28):
apiel commented 5 years ago

Can you give more details about the hardware you try to flash? Cause there is many kind of esp8266 and there is as well different options to flash your hardware depending of the size of his characteristic... For example I had lot issue for getting OTA to work on some sonoff devices and this was the reason why I was writing aboot (heavily inspired by rboot). But eventhough, I never really managed to get stable results, it was somehow working but not all the time. From what I remember, the only way to make OTA working properly was to use an arduino firmware instead of esp-open-rtos. Also using the arduino SDK will make your life much easier since there is much bigger community. Esp-open-rtos is not that's trivial and you might encounter multiple issue that are often difficult to solve. In another way, you will learn a lot as well ;-)

kiralikbeyin commented 5 years ago

@apiel thanks for reply.

I always use nodemcu v3 (lolin) if code works i try with sonoff or other things. (qio mode works but i will try with dio also for nodemcu)

Your aboot lib works up to 450k firmware.

1-Which seems easy but dont know how to make because arduino use eboot. I am using 666k esp-open-rtos firmware. I can use arduino OTA if i can switch back to esp-open-rtos : 666k esp-open-rtos -> 265k arduino update -> new 667k esp-open-rtos

Two steps update : 1-Trigger update with normal 666k firmware. 2-Get an 265k updater firmware. 3-265k updater will get new 667k firmware

2-aboot modification and https://github.com/SuperHouse/esp-open-rtos/blob/master/examples/http_client_ota/http_get.c

This code works with http_get.c example. blink and a 450k firmware is ok..

#define ROM_SIZE 0xA6000 // 679936 bytes

#define ROM_ADDR_1 0x2000
#define ROM_ADDR_2 0x44000 
void clear_rom(uint32 pos) {
    uint32 end = 0x40000 ; //pos + ROM_SIZE;
    ets_printf("Clear rom at position %x\n", pos);
    for(;pos < end; pos += SECTOR_SIZE) {
        ets_printf("SPIEraseSector at position 0x%x sector %d\n", pos, pos / SECTOR_SIZE);
        if (SPIEraseSector(pos / SECTOR_SIZE) != 0) {
            ets_printf("SPIEraseSector err at position 0x%x sector %d\n", pos, pos / SECTOR_SIZE);
            return;
        }
    }
}
void clear_rom2(uint32 pos) {
    uint32 end = 0x100000;
    ets_printf("Clear rom at position %x\n", pos);
    for(;pos < end; pos += SECTOR_SIZE) {
        ets_printf("SPIEraseSector at position 0x%x sector %d\n", pos, pos / SECTOR_SIZE);
        if (SPIEraseSector(pos / SECTOR_SIZE) != 0) {
            ets_printf("SPIEraseSector err at position 0x%x sector %d\n", pos, pos / SECTOR_SIZE);
            return;
        }
    }
}
void copy_rom() {
    uint8 buffer[BUFFER_SIZE];
    uint32 pos = 0;
    uint32 end = ROM_SIZE;
    for(; pos < end; pos += BUFFER_SIZE) {
        ets_printf("Write at %d copy of %d\n", ROM_ADDR_1 + pos, ROM_ADDR_2 + pos);
        if (SPIRead(ROM_ADDR_2 + pos, buffer, BUFFER_SIZE) != 0) {
            ets_printf("read err %d\n", ROM_ADDR_2 + pos);
            return;
        }
        SPIWrite(ROM_ADDR_1 + pos, buffer, BUFFER_SIZE);
    }
}

uint32 NOINLINE find_image(void) {
    uint32 runAddr;
    uint8 rom_to_boot;

    rom_to_boot = write_conf(NO); // Sometime it reboot before to finish the copy, so lets update the current_rom only when copy is finished
    if (rom_to_boot > 0) {
        ets_printf("We should copy the new Rom from 0x%x to 0x%x.\r\n", ROM_ADDR_2, ROM_ADDR_1);
        //clear_rom(ROM_ADDR_1);
        copy_rom();
            clear_rom2(0xE4000);
//  clear_rom(ROM_ADDR_2);
        write_conf(YES);
    } else {
//  clear_rom(ROM_ADDR_2);
            clear_rom2(0xE4000);

    }
apiel commented 5 years ago

10 days is nothing... OTA and bootloader are not that simple.

If your code is working on nodemcu, it will not necessarily work on sonoff. Some of the sonoff have very small memory size. Also some version are using 8266, some 8285... The basic sonoff, with 1 relay has different versions, with different type of memory. If I remember correctly, you have to flash them in dout.

You seem to have a problem of memory size, if I remember correctly rboot split the memory in 2 equivalent size space so this might not fit for you. But nothing stop you to customize rboot to use fix sizes. After you could try to have small ota firmware on one first boot position and then the big firmware on the second position, and keep it fix. So when you run your ota update it would always go on the second boot position. Even if theoretically this could work, it might still be buggy, because of erasing and writing issue that sometimes randomly happen. I think I was able to get some better result by erasing memory when firmware start before anything else. If you manage to get all that stuff working well would be great that you write an article and share it with us ;-)

Last thing, you should seriously think about to reduce the size of your big firmware. Be careful with this microcontroller, even if it's super powerful don't try to do to much, try to keep simple. Especially try to avoid speudo multitasking that's come with rtos, because it's not the purpose of this microcontroller.