LINUX.ORG.RU

История изменений

Исправление IvanR, (текущая версия) :

нашел в описании uboot

# fatload usb <dev>[:partition] <loadAddress> <bootfilename>

This command reads file bootfilename from device dev, partition partition of the USB flash disk into
the RAM address loadAddress.

в uboot есть команда printenv, вот что она показывает:

loadaddr=0x42000000
...
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}

то есть, можно стчитать, что ядро загружено в ram по адресу 0x42000000 и регистр IP, в случае arm PC показывает на смещение в ядре относительно адреса 0x42000000, значит нам нужно взять адрес в PC и вычесть из него адрес 0x42000000, тогда мы получим адрес относительно начала сегмента кода в ядре, я правильно понял? тогда мы можем с помощью addr2line найти файл и строку в которой происходит сбой?

хотя наверно не получится, оно грузится по этому адресу с учетом заголовков

Исправление IvanR, :

нашел в описании uboot

# fatload usb <dev>[:partition] <loadAddress> <bootfilename>

This command reads file bootfilename from device dev, partition partition of the USB flash disk into
the RAM address loadAddress.

в uboot есть команда printenv, вот что она показывает:

loadaddr=0x42000000
...
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}

то есть, можно стчитать, что ядро загружено в ram по адресу 0x42000000 и регистр IP, в случае arm PC показывает на смещение в ядре относительно адреса 0x42000000, значит нам нужно взять адрес в PC и вычесть из него адрес 0x42000000, тогда мы получим адрес относительно начала сегмента кода в ядре, я правильно понял? тогда мы можем с помощью addr2line найти файл и строку в которой происходит сбой?

Исходная версия IvanR, :

нашел в описании uboot

[code]

fatload usb [:partition]

This command reads file bootfilename from device dev, partition partition of the USB flash disk into the RAM address loadAddress. [/code]

в uboot есть команда printenv, вот что она показывает:

[code] loadaddr=0x42000000 … loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image} [/code]

то есть, можно стчитать, что ядро загружено в ram по адресу 0x42000000 и регистр IP, в случае arm PC показывает на смещение в ядре относительно адреса 0x42000000, значит нам нужно взять адрес в PC и вычесть из него адрес 0x42000000, тогда мы получим адрес относительно начала сегмента кода в ядре, я правильно понял? тогда мы можем с помощью addr2line найти файл и строку в которой происходит сбой?