Scipt は md コマンドを使用して Uboot を介して DVR からメモリをダンプします。

Scipt は md コマンドを使用して Uboot を介して DVR からメモリをダンプします。

だから私はこの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の提案がありますか?

ベストアンサー1

おすすめ記事