그래서 저는 이 DVR을 가지고 있고 잠겨 있으므로 U-boot에서 md 명령을 사용하여 메모리를 덤프해야 하지만 u-Boot는 약 15초마다 재부팅하므로 메모리를 덩어리로 덤프해야 합니다. 이는 제 쉘 스크립트입니다.
#!/usr/bin/expect
# Replace with the actual serial port of your device (e.g., /dev/ttyACM0)
set serial_port "/dev/ttyACM0"
# Replace with the starting memory address
set start_address 0xe1000000
# Replace with the size of each chunk
set chunk_size 0x3E00
# Replace with the target address to stop at
set stop_address 0xE100BA00
# Open a connection to the serial port
spawn cu -l $serial_port -s 115200
# Expect the message to stop autoboot
expect "Hit any key to stop autoboot:"
send "\r"
#after 2000
# Set the initial address
set current_address $start_address
# Dump memory in chunks
while {$current_address < $stop_address} {
# Send the md command to the bootloader for the current chunk
send "md $current_address $chunk_size\r"
# Wait for the bootloader's response
expect "Hit any key to stop autoboot:"
send "\r"
# Send any key to continue (press Enter)
send "\r"
# Update the current address for the next chunk
set current_address [expr {$current_address + $chunk_size}]
}
# Close the connection
send "\x03" ;# Send Ctrl+C to stop autoboot if needed
send "exit\r"
expect eof
따라서 처음 전원을 켤 때 메모리에서 첫 번째 블록의 내용을 인쇄하지만 재부팅 후 장치는 시작 시 "\r"을 전송하며 "자동 시작을 중지하려면 아무 키나 누르십시오."가 작동하지 않습니다. 이유를 모르겠어요. tnx에 대한 제안이 있나요?