угу, тут все понятно, я свое время наступал на грабли - хорошо помимо 1>CODR прописывать 0>SODR в соответствующий разряд и наоборот..
да, привел чисто для примера как выглядит начало дизасма для загрузчика PXA270 (под руку подвернулся)
я проглядел - что у вас за плата - или что-то самосборное? и способ загрузки и запуска своего кода?
кстати, Саша (sasami) правильно посоветовал поискать на atmel.com примеры приложений (там их дофига), как говорится - "все давно придумано и написано"
чисто для анализа - вот кусок начального загрузчика (к сожалению от nuc950), просто посмотреть на синтаксис и ключи. я, когда писал на асме, потом код скармливал дизассемблеру, чтобы посмотреть - все ли правильно нагенерилось :)
Мне просто интересно сколько лет он собирается делать диплом с темой
если элементарно не хочет проинициализировать основные устройства. процессор стартует на частоте 32 кГц на внутренней sram 4 кбайт без внешней sdram. При этом все лепит на асме и очевидно не читал даташит - чтобы gpio заработал ему хотя бы нужно клок включить в pmc.
На самом деле анализ спектра сводится к элементарному интегрированю в дискретном пробразовании фурье из множественных выборок аналоговой функции.
Програмно интгралы вичисляются элементарно. Есть куча методов. Самый простой и довольно точный метод Рунге-Кута это всего 5-7 операторов на языке высокого уровня. Ну да, на асме придется расширить код, но это не смертельно. Далее сгенерировать график на жки - это просто, в свое время проектировал систему отображения информации на панели ГИПС-16, знаю что старье, но тем не менее.
Вся беда в том чтобы мой код выполнялся.
Обсуждать чужие планы конечно легко, но лучше бы посоветовали чего полезного. Нигде ведь нормально не написано как по шагам запустить прогу с нуля. Вот и приходится тыкаться и тупить.
я бы и попробовал посоветовать, да так и не увидел вашу методу попыток запуска бинарника и собственно на чем запускаете.. (не пустобрехства ради) понять где возможная ошибка
если используете Самбу, то она вполне может что-нить самостоятельно настроить и не сообщить об этом..
вытащите с atmel.com хотя бы исходники bootstrap для 9260 - чтобы понять стартовые телодвижения
Решил сделать по нормальному.
Изучил бутстрап. В нем сказано, что заливать его надо самбой в датафлэш с адреса 0х0, что исполняемая программа должна находится по адресу 0х8000, что после инициализации бутстрап копирует ее в sdram в адрес 0х23F00000.
Сделал как написано, а далее непонятное для меня явление:
проверяя адрес 0х23F00000 увидел там свою прогу, но как она могла там оказаться, если моя SDRAM кончается адресом 0х22000000 (начало на 0х20000000, 32МБ) а дальше никаких памятей нет.
на оригинальных китах от Атмела ставят 64МБ - это надо учитывать при адаптации всей цепочки оригинальных исходников на 32МБ плату SK..
в частности в файле \board\at91sam9260ek\dataflash\at91sam9260ek.h
исправить #define JUMP_ADDR 0x23F00000 /* Final Jump Address */ куда-нить пониже в диапазон свой памяти
эффект считывания с "фантомной" памяти связан с физическим сигналом Chip Select 1/SDRAMC, которым выбирается SDRAM банк в дипазоне адресов 0x2000.0000-0x2fff.ffff. Т.о. при 32МБ считывая с шагом адреса 0х0200.0000 получим одинаковое содержимое
зы где-могу ошибиться, но примерно как-то так..
зы2 я бы не "терзал" dataflash, а грузил бы либо самбой в SRAM/SDRAM либо посредством uboot туда же. Dataflash целее будет
То что надо заменить #define JUMP_ADDR 0x23F00000 это я понял.
В папке с бутстрапом в доке написано что его потом надо дополнительно скомпилить для получения нового бинарника командой make. Я так понял что это делается в Buildenv.bat в той же папке. Но дело в том что после команды make консоль мне выдает что "make не является внутренней или внешней командой..."
Ввожу так, как в документации:
>cd \boards\at91sam9260ek\dataflash
>make
а далее ругательства.
И еще поскажите плиз, могу ли я в #define JUMP_ADDR указать самое начало моего ОЗУ?
Заранее благодарен за разьяснения