Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » ARM
Запись "станд-элоун" приложений в ARM
Fireball
Добавлено 04.06.2010 20:36
0
Сообщение: 1
Fireball
0

Пункты: 1075
Регистрация: 16.02.2010
Доброго времени суток!
Опыта разработки приложений под 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 варианта, но конкретных инструкций найти не получилось... Помогите новичку разобраться с этим вопросом... Интересует наиболее простой в реализации способ и наиболее эффективный
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 04.06.2010 20:45 Редактировалось 04.06.2010 23:42 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
хм.. для отладки бинарника останавливаете загрузку Uboot
вводите команду help, изучаете, printenv изучаете
потом там же набираете команду
tftpboot адрес-куда-грузить файл-который-грузить
потом
go адрес-куда-грузить
предполагаю, что надо проверить компиляцию вашего файл-который-грузить на предмет работы с адреса адрес-куда-грузить

это для отладки приложения в ОЗУ
для запуска из флеша будет чуть по другому

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.06.2010 09:09 Сообщение: 3
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
так типа как - помогло или что-то непонятно?

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Fireball
Добавлено 08.06.2010 13:57 Сообщение: 4
Fireball
0

Пункты: 1075
Регистрация: 16.02.2010
Прошу прощения, что не отписался сразу - занят был...
Да, спасибо, Ваше сообщение очень помогло)
Если Вас не сильно затруднит, не могли бы Вы поделиться способом заливки приложений в флеш?

Собственно еще одно замечание по tftpboot: изредка не инициализируется EMAC и соответственно команда по сети не забирает образ... с чем это может быть связано?

Привожу пример 2 загрузок, первая успешная, вторая не очень)
Код
RomBOOT
>Start AT91Bootstrap...
Copy application ...
Run ...


U-Boot 1.1.5 (May 21 2008 - 12:39:37)

DRAM: 32 MB
DataFlash:AT45DB321
Nb pages: 8192
Page Size: 528
Size= 4325376 bytes
Logical address: 0xC0000000
Area 0: C0000000 to C0003FFF (RO)
Area 1: C0004000 to C0007FFF
Area 2: C0008000 to C0037FFF (RO)
Area 3: C0038000 to C041FFFF
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
KS8721 PHY Detected
ETH: 100M Full Duplex.
End of Autonegociation
Hit any key to stop autoboot: 0
U-Boot> setenv serverip 192.168.0.102
U-Boot> tftpboot 0x20000000 at91sam9260_sdram.bin
TFTP from server 192.168.0.102; our IP address is 192.168.0.136
Filename 'at91sam9260_sdram.bin'.
Load address: 0x20000000
Loading: T ######
done
Bytes transferred = 28068 (6da4 hex)
U-Boot>
RomBOOT
>Start AT91Bootstrap...
Copy application ...
Run ...


U-Boot 1.1.5 (May 21 2008 - 12:39:37)

DRAM: 32 MB
DataFlash:AT45DB321
Nb pages: 8192
Page Size: 528
Size= 4325376 bytes
Logical address: 0xC0000000
Area 0: C0000000 to C0003FFF (RO)
Area 1: C0004000 to C0007FFF
Area 2: C0008000 to C0037FFF (RO)
Area 3: C0038000 to C041FFFF
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
KS8721 PHY Detected
No link
MAC: error during RMII initialization
Hit any key to stop autoboot: 0
U-Boot> setenv serverip 192.168.0.102
U-Boot> tftpboot 0x20000000 at91sam9260_sdram.bin
KS8721 PHY Detected
No link
MAC: error during RMII initialization
TFTP from server 192.168.0.102; our IP address is 192.168.0.136
Filename 'at91sam9260_sdram.bin'.
Load address: 0x20000000
Loading: *


И есть еще несколько вопросов, немного не по теме:
1. на какой частоте U-boot инициализирует процессор? И как можно изменить частоту процессора, насколько я понял PLLA/PLLB не используются при выборе рабочей частоты процессора...
2. Какова скорость работы (частота) GPIO для AT91SAM9260? Насколько я понял она должна быть приблизительно равна основной частоте, но по факту получилось что частота меандра для следующего асмовского кода (инициализацию не привожу, только запись в регистры PIO) равна ~7Мгц(мерял осциллографом)...то есть значительно ниже чем частота работы процессора....
Код записи в PIOB в регистры SODR, CORD. Меандр немного не семетричный, то есть 0 "длинее" за счет команды перехода, но это время значительно меньше чем основной период.
Код
asm("mov r0, #-1 \n"
"mov r1, #1072 \n"
"mov r2, #1072 \n"
"orr r2, r2, #4 \n"
"test: str r0, [r1, #-0xE00] \n"
"str r0, [r2, #-0xE00] \n"
"b test \n"
);
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 08.06.2010 14:50 Редактировалось 08.06.2010 14:59 Сообщение: 5
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
на все вопросы ответить точно не смогу, что знаю, то скажу :)

Цитата
изредка не инициализируется EMAC и соответственно команда по сети не забирает образ... с чем это может быть связано?

у меня такое возникало при прямом включение между платой и нотбуком, плата при каждой перезагрузке кладет линк, в ответ ноут клал свой, и заодно и интерфейс VmWare.. опытным путем вычислил, что перед командой tftpboot достаточно пингануть хост типа ping 192.168.0.2 и коннект был стабилен. Теперь использую хаб между платой и ноутом - таких проблем больше нет..

Цитата
поделиться способом заливки приложений в флеш?

собственно их как минимум два - вы их сами называли
- посредством утилиты Samba, конектитесь к плате, активизируете аплет нужного флеша и зашиваете свой бинарник в нужное место. тут главное - не потереть загрузчики и прочее содержимое флеша
- посредством команд самого Uboot - если в юбуте дать команду printenv, то можно посмотреть на примере скрипта обновления ядра+рутфс как это делать (tftp_update)
т.е. по сетке в ОЗУ загрузить свой бинарник и командой Uboot записать его во флеш. опять же не промахнуться с адресами :)
- вероятно есть еще вариант (теоретический) - загрузить линукс на плате, "отъесть" часть флеша под jffs и туда (на флеш) копировать утилитой из-под линукса бинарник. единственное - надо как-то выяснять адрес (абсолютный) бинарника во флеше для запуска его из Uboot..

Цитата
1. на какой частоте U-boot инициализирует процессор? И как можно изменить частоту процессора, насколько я понял PLLA/PLLB не используются при выборе рабочей частоты процессора...

при загрузке ядро пишет частоту, что-то вроде 198МГц..
как менять - не знаю. надо или форум шерстить или доку на проц читать или аппноты Атмеловские..

Цитата
2. Какова скорость работы (частота) GPIO для AT91SAM9260?

сами же написали 7МГц - эта голая никуда неприменимая максимальная частота.
я читал об измерение, что где-то в районе 3МГц..
сам в свое время был этим сильно удивлен, но АРМ слабо "заточен" под GPIO, кроме специально разработанных для этого (фигурируют слова типа FastGPIO) м.б. Samsung (не помню)

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » ARM