Доброго времени суток!
Опыта разработки приложений под ARM9 мало, можно считать, что вообще нет... С встроенным Линуксом разобрался и решил перейти к более сложному.
Решил написать "стандалоун" приложение для SK-AT91SAM9XE512 (ARM - AT91SAM9260)
Приложение в дальнейшем будет работать по сети...
Для начала я взял пример от Atmel - "basic-emac-uip-helloworld-project".
Скомпилировал его в IAR 5.4 - получил 2 файла: "at91sam9260_sdram.bin" и "at91sam9260_sdram.out".
Я хочу залить на плату получившийся проект. На данный момент на плате стоит встроенный линукс. Собственно хотелось бы залить таким образом что бы не снести оттуда линукс. Насколько я понимаю необходимо лить сразу в оперативную память... Вопрос следующий какими средствами и как лучше выполнить эту задачу? Средствами SAM-BA через USB или u-boot через tftpboot? Собственно пересмотрев форум выделил эти 2 варианта, но конкретных инструкций найти не получилось... Помогите новичку разобраться с этим вопросом... Интересует наиболее простой в реализации способ и наиболее эффективный
хм.. для отладки бинарника останавливаете загрузку Uboot
вводите команду help, изучаете, printenv изучаете
потом там же набираете команду tftpboot адрес-куда-грузить файл-который-грузить
потом go адрес-куда-грузить
предполагаю, что надо проверить компиляцию вашего файл-который-грузить на предмет работы с адреса адрес-куда-грузить
это для отладки приложения в ОЗУ
для запуска из флеша будет чуть по другому
Прошу прощения, что не отписался сразу - занят был...
Да, спасибо, Ваше сообщение очень помогло)
Если Вас не сильно затруднит, не могли бы Вы поделиться способом заливки приложений в флеш?
Собственно еще одно замечание по tftpboot: изредка не инициализируется EMAC и соответственно команда по сети не забирает образ... с чем это может быть связано?
Привожу пример 2 загрузок, первая успешная, вторая не очень)
И есть еще несколько вопросов, немного не по теме:
1. на какой частоте U-boot инициализирует процессор? И как можно изменить частоту процессора, насколько я понял PLLA/PLLB не используются при выборе рабочей частоты процессора...
2. Какова скорость работы (частота) GPIO для AT91SAM9260? Насколько я понял она должна быть приблизительно равна основной частоте, но по факту получилось что частота меандра для следующего асмовского кода (инициализацию не привожу, только запись в регистры PIO) равна ~7Мгц(мерял осциллографом)...то есть значительно ниже чем частота работы процессора....
Код записи в PIOB в регистры SODR, CORD. Меандр немного не семетричный, то есть 0 "длинее" за счет команды перехода, но это время значительно меньше чем основной период.
на все вопросы ответить точно не смогу, что знаю, то скажу :)
у меня такое возникало при прямом включение между платой и нотбуком, плата при каждой перезагрузке кладет линк, в ответ ноут клал свой, и заодно и интерфейс VmWare.. опытным путем вычислил, что перед командой tftpboot достаточно пингануть хост типа ping 192.168.0.2 и коннект был стабилен. Теперь использую хаб между платой и ноутом - таких проблем больше нет..
собственно их как минимум два - вы их сами называли
- посредством утилиты Samba, конектитесь к плате, активизируете аплет нужного флеша и зашиваете свой бинарник в нужное место. тут главное - не потереть загрузчики и прочее содержимое флеша
- посредством команд самого Uboot - если в юбуте дать команду printenv, то можно посмотреть на примере скрипта обновления ядра+рутфс как это делать (tftp_update)
т.е. по сетке в ОЗУ загрузить свой бинарник и командой Uboot записать его во флеш. опять же не промахнуться с адресами :)
- вероятно есть еще вариант (теоретический) - загрузить линукс на плате, "отъесть" часть флеша под jffs и туда (на флеш) копировать утилитой из-под линукса бинарник. единственное - надо как-то выяснять адрес (абсолютный) бинарника во флеше для запуска его из Uboot..
при загрузке ядро пишет частоту, что-то вроде 198МГц..
как менять - не знаю. надо или форум шерстить или доку на проц читать или аппноты Атмеловские..
сами же написали 7МГц - эта голая никуда неприменимая максимальная частота.
я читал об измерение, что где-то в районе 3МГц..
сам в свое время был этим сильно удивлен, но АРМ слабо "заточен" под GPIO, кроме специально разработанных для этого (фигурируют слова типа FastGPIO) м.б. Samsung (не помню)