Я скомпилировал простой бинарный файл (hello.bin) и сохранил его на карту памяти.
Я использую комплект разработчика NXP Sabre с четырехъядерным процессором i.mx 6. Я запустил U-boot и пытаюсь получить доступ к двоичному файлу и запустить его.
Hello.bin доступен, потому что работает следующая команда:
=> fatload mmc 1:4 0x20005000 hello.bin
reading hello.bin
Я так понимаю файл должен загружаться в оперативную память по адресу 0x20005000
Итак, я хочу проверить, есть ли двоичный файл
=> md 0x20005000
20005000: 464c457f 00010101 00000000 00000000 .ELF............
20005010: 00280002 00000001 00010315 00000034 ..(.........4...
20005020: 000028f4 05000400 00200034 00280009 .(......4. ...(.
20005030: 00240025 70000001 00000454 00010454 %.$....pT...T...
Выглядит нормально, так как начальные биты совпадают с файлом, который я скопировал на SD-карту.
Когда я пытаюсь запустить двоичный файл, устройство сообщает о неопределенной инструкции:
=> go 0x20005000
## Starting application at 0x20005000 ...
undefined instruction
pc : [<20005158>] lr : [<4ff71403>]
reloc pc : [<e7897158>] lr : [<17803403>]
sp : 4f56dd50 ip : 00000000 fp : 00000002
r10: 4f56f938 r9 : 4f56deb0 r8 : 4ffc3c40
r7 : 4ff713d9 r6 : 00000002 r5 : 20005000 r4 : 4f56f93c
r3 : 20005000 r2 : 4f56f93c r1 : 4f56f93c r0 : 00000000
Flags: nzCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...
Спасибо за вашу помощь