Проблема: После выполнения манипуляций приведенных в инструкции и запуска платы получаю полное отсутствие активности в DBGU (Пришлось сбрасывать Flash битом ERASE).
Далее место скрипта «Boot from Flash (GPNVM3)» сделал «Boot from ROM (GPNVM3)» (то есть пользую вшитый загрузчик) поидее после этих манируляций алгоритм загрузки совместим c AT91SAM9260. Тогда делаю следующее действие: вычитываю содержимое DataFlash из SK-AT91SAM9260 и заливаю в DataFlash своей платы. При старте в DBGU получаю:
И все, активности нет, то есть плата ждет подключения SAM-BA, не смотря на прошитые Flash'ы.
Далее нашел информацию что при заливки прошивки нужно использовать не кнопку «Send File» а скрипт «Send Boot File». Но тут столкнулся с проблемой что такого скрипта нет в SAM-BA 2.10(впрочем и на других версиях проверял) для данного кристалла. Пробовал для платы SK-AT91SAM9260 и соответствующего процессора, нужный скрипт имеется…
Решил поколядовать с SAM-BA’ой то есть в конфиге для ХЕ512 добавил строчку:
В соответствующие секции для Flash, DataFlash, NANDFlash. Но при запуске этих скриптов получал ошибку в сам-бе:
Уже подумываю прошить нужным скриптом DataFlash на плате SK-AT91SAM9260 и перепаять на целевую плату… но это слегка бредово…
Что я не правильно делаю? Почему плата не грузится? Кто-то сталкивался с подобными проблемами?
Прошу поделиться опытом...
P.S. Понимаю что проблема скорее всего решается примитивно, но найти решение самому не получись…
у меня нет ХЕ512, могу только потеоретизировать..
недавно давал похожий совет по 9260, вполне можно применить и тут (ничего нового):
чем смотреть на унылое Romboot>, лучше убедиться глазами в терминалке или осциллографом, что хотя бы Bootstrap работает. И это при условие исправного "самодельного" железа.
Для начала добейтесь сигнала что бутстрап добежал до конца и готов к запуску..
вдогонку - датафлеш можно и не выпаивать, соединить обе платы по питанию, АРМ хе512 взвесить постоянным ресетом и пробросить несколько проводков до второй платы между Dataflash, а на исходной снять перемычку CS_DF..
Спасибо за рекомендации.
Собственно мне кажется что тут "затык" в том что отсутствует скрипт "Send Boot File" для процессора AT91SAMXE512 в SAM-BA.
Ведь этот скрипт нужно использовать при заливке?
Да и при использовании загрузки с ROM должна грузиться как минимум с DataFlash...с 100% рабочей прошивкой (которая работает на SAM9260)
Конечно может быть аппаратная ошибка, но с DataFlash SAM-BA нормально работает....
Да и если брать Bootstrap которая приведена по ссылке, то там при старте Bootstrap отзывается в DBGU....
По поводу конфигурации платы, за основу была взята схема SK-AT91SAM9260, естественно принципиальная схема аналогичная, печатная плата совершенно другая.
Прошу прощения, Вы меня не правильно поняли... точнее я не правильно выразился.
Я имел ввиду что при успешном запуске бутстрэп чего то бы и сказал бы в DBGU. А такого к сожалению не было...
Насколько я понимаю тогда проблема аппаратная?
Не могли бы Вы глянуть схему включения арма в плате? (я привожу только критичные узлы связанные с работой ARM'a).
К сожалению я не смог приложить схему к посту, схема доступна по адресу(выложил на свой ftp): ftp://81.24.214.35/ARM_1.pdf
с новой самосборной платой всегда приходится решать комплекс программно-аппаратных проблем..
при таком раскладе начните все же с нуля (я бы пошел по такому пути) - взять исходники бутстрапа, в самом-самом начале поставить цикл с "поднять/опустить любой свободный пин", туда осцилл и заставить бустрап это исполнить. этим вы временно отсекаете все железо, кроме факта контролируемого запуска.
Получив гарантированный запуск начального бинарника остальное будет делом техники, вывод в DBGU, PLL, SDRAM.
Повторюсь, я не работал с хе512, т.ч. могу посоветовать последовать совету Саши и почитать внимательно раздел Power On Sequence для XE512, возможно вы где-то упустили что-то важное с с т.з. начальной загрузки..
посмотрел, визуально все вроде на месте, но я не занимался проектировкой под АРМ, и запросто могу не увидеть некие тонкости..
кстати, как вариант, пощупайте осциллом DTXD пин 22 АРМа в момент попытки работы Bootstrap, этим отсечете возможную неисправность adm3202..
Доброго времени суток!
Был занят другими делами, так что пришлось немного отложить поднятие платы.
Немного продвинулся, но возник ряд вопросов(опять...):
Завел BootStrap. Решил сразу воспользоваться встроенной flash и поместил BootStrap туда.
В качестве исходного BootStrap взял версию 1.16. Далее немного переписал код BootStrap что бы исходный код программы грузился так же из flash (компилировал с помощью компилятора arm-none-linux-gnueabi- который идет в образе линукса). Туда же (в flash)записал простейшую программу написанную в iar. То есть BootStrap лежит по адресу 0x200000, а программу я положил по адресу 0x202000. Залил все это в плату и получил:
1. При первом старте плата в DBGU выдает "крякозяблы", при втором все нормально... но:
2. Когда передаю управление загруженной программе, программа выполняется частично, как видно в терминале не дописалась фраза...
Привожу листинги BootStrap и main.c для IAR-проекта.
BootStrap. main.c
BootStrap. ...\nandflash\at91sam92xeek.h
IAR main.c
Терминал:
Подскажите пожалуйста, почему может обрываться выполнение программы?
P.S.: За оптимальностью не гнался поскольку для загрузчика ограничение по коду в 32к.