Команды U-Boot

  Инфо      Память      Хранилище    Выполнение    Загрузка    Окружение    FDT    Sunxi  

  base      cmp      cp    crc32    itest    loop    md    mm    mw    nm    pbread  

cmp *


Сравнение памяти (memory compare)

Help: => help cmp cmp - memory compare Usage: cmp [.b, .w, .l] addr1 addr2 count =>
Результат выполнения команды для Orange Pi Zero2:

=>cmp 0x10000 0x20000 0x400 word at 0x00010000 (0x00) != word at 0x00020000 (0xea0002be) Total of 0 word(s) were the same =>

С помощью команды cmp можно проверить, идентично ли содержимое двух областей памяти.

Команда проверит либо всю область, как указано в третьем аргументе (длина), либо остановится на первом различии.


=> cmp 0x100000 0x200000 0x400 word at 0x00100000 (0x8083764e) != word at 0x00200000 (0x27051956) Total of 0 words were the same => md 0x100000 0xc 00100000: 8083764e bd86200a 60a19054 2c12c402 ..vN.. .`..T,... 00100010: c101d028 00438198 7ab01239 62406128 ...(.C..z..9b@a( 00100020: 0c900d05 320b4581 1ca3d0a2 c498293a ....2.E.......): => md 0x200000 0xc 00200000: 27051956 552d426f 6f742032 3030392e '..VU-Boot 2009. 00200010: 31312e31 20284665 62203035 20323031 11.1 (Feb 05 201 00200020: 30202d20 30383a35 373a3132 29000000 0 - 08:57:12)... =>

Как и большинство команд памяти, cmp может обращаться к памяти разного размера: как 32-битные (длинное слово), 16-битные (слово) или 8-битные (байтовые) данные.

Если команда вызывается как cmp , то размер по умолчанию 32 бита (длинные слова). То же самое можно выбрать явно, набрав вместо этого cmp.l .

Если вы хотите получить доступ к памяти как к 16-битным или словным данным, вы можете использовать cmp.w .

Для доступа к памяти в виде 8-битных (байтовых) данных используйте cmp.b .

  !   Внимание ! Обратите внимание, что аргумент count указывает количество элементов данных для обработки, то есть количество длинных слов или слов или байтов для сравнения.


=> cmp.l 0x100000 0x200000 0x400 word at 0x00100000 (0x8083764e) != word at 0x00200000 (0x27051956) Total of 0 words were the same => cmp.w 0x100000 0x200000 0x800 halfword at 0x00100000 (0x8083) != halfword at 0x00200000 (0x2705) Total of 0 halfwords were the same => cmp.b 0x100000 0x200000 0x1000 byte at 0x00100000 (0x80) != byte at 0x00200000 (0x27) Total of 0 bytes were the same =>