After running the script (with minor updates):
Code:
...
+ /bin/dd if=/tmp/t1.bin of=/dev/mmcblk0p1 bs=4096 seek=57 count=1
+ set 1+0 records in 1+0 records out 4096 bytes (4.0KB) copied, 0.003026 seconds, 1.3MB/s
+ OK=1+0
+ BYTES=4096
+ [ 1+0 = 1+0 ]
+ /bin/dd if=/dev/mmcblk0p1 of=/tmp/t2.bin bs=4096 skip=57 count=1
+ set 1+0 records in 1+0 records out 4096 bytes (4.0KB) copied, 0.002108 seconds, 1.9MB/s
+ OK=1+0
+ BYTES=4096
+ [ 1+0 = 1+0 ]
+ cmp -s /tmp/t1.bin /tmp/t2.bin
+ [ 0 -eq 0 ]
+ BLK=58
+ TOT=237568
+ continue
+ [ 1+0 = 1+0 ]
+ /bin/dd if=/mnt/us/mmcblk0p1.img of=/tmp/t1.bin bs=4096 skip=58 count=1
+ set 1+0 records in 1+0 records out 4096 bytes (4.0KB) copied, 0.001844 seconds, 2.1MB/s
+ Ret1=1+0
+ Sze1=4096
+ /bin/dd if=/dev/mmcblk0p1 of=/tmp/t2.bin bs=4096 skip=58 count=1
+ set 1+0 records in 1+0 records out 4096 bytes (4.0KB) copied, 0.001273 seconds, 3.1MB/s
+ Ret2=1+0
+ Sze2=4096
+ [ 1+0 = 1+0 ]
+ [ 1+0 = 1+0 ]
+ cmp -s /tmp/t1.bin /tmp/t2.bin
+ [ 1 -eq 0 ]
+ /bin/dd if=/tmp/t1.bin of=/dev/mmcblk0p1 bs=4096 seek=58 count=1
+ set 1+0 records in 1+0 records out 4096 bytes (4.0KB) copied, 0.002816 seconds, 1.4MB/s
+ OK=1+0
+ BYTES=4096
+ [ 1+0 = 1+0 ]
+ /bin/dd if=/dev/mmcblk0p1 of=/tmp/t2.bin bs=4096 skip=58 count=1
boot: C def:rst:reset=hard:version=174700
kernel: E wdog:Abnormal reset detected but saved buffer invalid:
.. and hangs.
It either hangs after some time or when accessing some particular address in flash memory.