У меня есть MPC5200 v2.2, Core v1.4 на phyCORE-MPC5200-крошечный совет. DRAM 64 МБ, FLASH 16 МБ. RTOS VxWorks 6.9.Почему U-Boot (DENX) остается в загрузочном цикле и дает «Исключение программы»?
У меня возникли проблемы при загрузке встроенной системы, и он остается в загрузочном цикле, когда U-Boot/uboot (DENX) пытается загрузить изображение загрузки, говоря: «Исключить проверку программы».
Для отладки во время разработки я использую TFTP-сервер для загрузки двоичного файла vxWorks непосредственно в ОЗУ (команда U-Boot: 'tftpboot 0x100000 vxWorks.bin'). В этом случае все работает нормально. Для выпуска чистый * .bin файл VxWorks (размер 8,07 МБ (8,462.808 байт)) сжимается и упаковывается в файл образа совместимого с U-Boot (с информацией о заголовке загрузчика) и результирующим размером 5, 25 МБ (5,509,763 байт). Файл изображения помещается на флеш, откуда он несжатый и загружается в ОЗУ (команда U-Boot: «bootm 0xff800000»). После этого вызывается вышеупомянутое исключение, что приводит к циклу перезагрузки (см. Снимок экрана ниже).
Я уже исследовал, что если подготовленное изображение имеет размер менее 5 МБ, U-Boot загружает его без ошибок. Может быть, и несжатый размер файла может быть проблемой ?! (На 8Мбах?)
У вас есть какие-либо идеи, как эта проблема может быть решена?
Не размещайте изображения текста! – Olaf
Кажется, что проблема возникла из-за ограничения в 8 Мбайт в U-Boot при использовании команды bootm. Любые идеи о том, как обойти этот предел bootm? – Chris
Я исследовал, что неудачной точкой является неутешительный шаг «bootm». Через TFTP (и команду «cp») я скопировал несжатый двоичный файл и сжатое изображение во флэш. Затем я снова попытался загрузить сжатое изображение с помощью bootm. После ожидаемого сбоя и сброса я смог сравнить несжатые данные (по «bootm») в ОЗУ с несжатыми двоичными данными во флэш-памяти (с помощью команды «cmp»). Точно после 8mb данные больше не совпадают! Во втором тесте я создал несжатое изображение, которое «bootm» может загрузиться без проблем. Есть идеи? – Chris