Ник:
Пароль:

Контакты

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 » FAQ
Программирование и загрузка AT91SAM9260
Pavel Ivanchenko
Добавлено 17.08.2009 17:12 Редактировалось 17.08.2009 17:16
0
Сообщение: 1
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Процессор AT91SAM9260 может иметь несколько источников загрузки:
  • SPI DataFlash
  • NOR Flash
  • NAND Flash
    Первоначальный загрузчик (нестираемый) в определенной последовательности анализирует (сначала DataFlash, потом NAND Flash) наличие приложения во внешнем ЗУ по содержимому 0х14 вектора таблицы прерываний, в котором размещается размер исполняемого приложения. Найдя первое внешнее ЗУ с "внятным" размером приложения, процессор копирует его себе во внутреннюю память и запускает его. Так как процессор имеет всего две страницы внутренней памяти, каждая размером по 4К, отсюда проистекает накладываемое ограничение на максимальный размер кода (и объема переменных) первого исполняемого приложения, по этой причине, как правило, первым исполняемым приложением является загрузчик второго уровня который конфигурирует требуемые периферийные модули (как минимум внешней памяти), копирует из внешних ЗУ в RAM/SDRAM приложение и передает ему управление. Если процессор не находит приложений ни в одном из внешних источников, загрузчик переходит в режим работы с утилитой SAM-BA.
    Для программирования подключенных к процессору ЗУ, Atmel выпустила утилиту SAM-BA, которая может подключатся к процессору через различные интерфейсы:
  • COM порт (UDBG 115200n8)
  • USB
  • JTAG (J-link, MT-Link, JetSeven ...)
    В случае подключения через COM порт или USB, предварительно, нужно не дать возможность процессору запустить загрузчик второго уровня, для чего и нужны разрываемые перемычки на сигналах выбора кристалла внешних ЗУ. Причем, при подключении через USB недостаточно перезапустить процессор кнопкой сброса, нужно отключить/подключить питание системы. В случае подключения через JTAG этого не требуется. После выбора платформы, интерфейса и успешного подключения к плате можно приступать к программированию:
    DataFlash
    В начале необходимо перейти на закладку "DataFlash" выполнить скрипт "Enable Dataflash on CS0", в ходе работы которого SAM-BA проинициализирует SPI модуль и определит модель внешней DataFlash. После этого нужно/можно записать загрузчик второго уровня (так называемый bootstrap) с помощью скрипта "Send Boot File", особенностью этого скрипта является то что он подсчитывает размер приложения и подставляет это значение в таблицу векторов, т.е. если Вы просто запишите загрузчик по адресу 0 - процессор его не запустит. После этого, если загрузчик второго уровня будет оперировать с DataFlash, можно записать по определенному адресу (исходя из загрузчика) основное приложение.
    NAND Flash
    Все действия аналогичны операциям с DataFlash, сперва выполняем скрипт "NandFlash Init", после чего записываем загрузчик второго уровня скриптом "NandFlash Send Boot File", а после записываем само приложение. Следует учесть, что чтение/запись у NAND Flash осуществляется страницами а стирание блоками, поэтому, приложение лучше размещать на границе блоков, чтобы при обновлении приложения не приходилось обновлять загрузчик.
  • Спуститься к концу Подняться к началу
    Персональная информация
    Egel
    Добавлено 26.08.2009 11:14 Сообщение: 2
    Egel
    0

    Регистрация: 26.08.2009
    Здравствуйте!
    На плате AT91SAM9260-SIM508 пробую подключиться через COM. Linux запускается нормально.
    Убираю две перемычки, включаю питание, HyperTerminal пишет UBoot. Пробую запустить SAM-BA, выбираю мой COM и плату AT91SAM9260, жму.
    Окно исчезает и не появляется. Процесс висит. Если нажимаю кнопку перезагрузки на плате, то возникает окно SAM-BA с ошибкой, что не проинициализировалась SRAM, жму далее появляется нормальное окно SAM-BA - модель процессора определяется нормально, SRAM естественно не видит, ни один скрипт не работает.
    VIsta стоит - хотя и самбу тоже под висту скачивал. Что может быть? HyperTerminal это и должен писать?

    Спасибо заранее
    Спуститься к концу Подняться к началу
    Персональная информация
    Pavel Ivanchenko
    Добавлено 26.08.2009 11:46 Редактировалось 26.08.2009 20:56 Сообщение: 3
    Pavel Ivanchenko
    Admin
    4.39

    Пункты: 92788
    Регистрация: 24.03.2009
    Пол: Мужчина
    Нужно предварительно скопировать скрипты описания архитектуры для SAM-BA, те что в комплекте, в последствии загрузки SAM-BA выбирать "at91sam9260-sk" архитектуру.
    При запуске платы с разомкнутыми перемычками в терминале должно появляться:
    RomBoot
    >
    Что говорит о том что загрузчик остановился и готов к соединению с SAM-BA.
    Спуститься к концу Подняться к началу
    Персональная информация
    XeBiT
    Добавлено 17.12.2009 19:11 Сообщение: 4
    XeBiT
    0

    Регистрация: 09.12.2009
    Пробовал использовать SAM-BA через JTAG(mt-link): скорость работы в разы медленнее (читал nand, примерно 1 мегабайт в минуту!), чем с USB (примерно 3 мб в мин, что в общем то соответствует usb передаче типа interrupt).

    В связи с этим вопросы:
    1) как повысить скорость работы с jtag.
    2) можно ли в самбе общаться с контроллером пакетами типа bulk? может драйвер какой поставить?
    3) каким еще высокоскоростным способом можно заливать nand?
    Спуститься к концу Подняться к началу
    Персональная информация
    sasamy
    Добавлено 18.12.2009 20:17 Редактировалось 18.12.2009 20:20 Сообщение: 5
    sasamy
    4.71

    Пункты: 83534
    Регистрация: 14.08.2009
    Цитата
    3) каким еще высокоскоростным способом можно заливать nand?


    В linux - по сети на раздел mtd c любой сетефой фс - c nfs, samba через fuse и тд
    Спуститься к концу Подняться к началу
    Персональная информация
    XeBiT
    Добавлено 21.12.2009 04:22 Редактировалось 21.12.2009 06:42 Сообщение: 6
    XeBiT
    0

    Регистрация: 09.12.2009
    в поставляемой плате sk-at91sam9260-sim300 залитый софт отличается от того, что проходит тут. Так например в u-boot не работает run tftp_update , пишет :
    ## Error: "tftp_update" not defined
    в линуксе ./etc/rc.d/rc.s и в помине нет (используемого в примере и-нет радио), нет fdisk, format (хотя может это нормально).
    Можно ли где-нибудь взять другие образы nand? или скажите как это все починить...

    Да, и как запустить tftp сервер на прилагаемом образе линукса. Открываю через wmware player, нормально запускается, в системе (под виндами) появляется VMware Network Adapter VMnet1 и VMware Network Adapter VMnet8 (кстати откуда он взялся), настраиваю им ip 192.168.0.2 и 192.168.0.3. Сам хост (винды) имеет при этом 192.168.0.1. В линухе по ifconfig выдает 192.168.0.2. Вроде все правильно? Как проверить работу тфтп сервера? В u-boot набираю tftpboot, ничего не происходит.
    Спуститься к концу Подняться к началу
    Персональная информация
    Pavel Ivanchenko
    Добавлено 21.12.2009 11:28 Сообщение: 7
    Pavel Ivanchenko
    Admin
    4.39

    Пункты: 92788
    Регистрация: 24.03.2009
    Пол: Мужчина
    Разные платы - разное содержимое корневой и наличие скриптов, tftp_update это для плат у которых ОС и корневая грузится из DataFlsh, для обновления NAND идет скрипт nand_update.
    TFTP сервер должен подниматься автоматически при запуске системы, первым делом убедитесь из под вины в нормальном пинге 192.168.0.2, если по этому вопросу далее возникнут проблемы, создайте отдельную тему.
    Спуститься к концу Подняться к началу
    Персональная информация
    nic888
    Добавлено 10.03.2010 06:30 Сообщение: 8
    nic888
    0

    Регистрация: 10.09.2009
    А почему SAM-BA отказало. Если выбираешь плату говорит No process ID, если выбираю no board нормально загружается.
    Перекопировал скрипты для NO BOARD он естественно пишет регистры не найдены. До этого он работал и стер с флешки u-boot. Перемычку убирал. SAM-BA пробовал через COM USB и jtag.
    MT_link работает только commander и j-mem. J-flash не может перезагрузить процессор(хотя commander может). Плюс при кнопке detect он обнаруживает ядро через раз(хотя вся плата и mt-link в порядке. Менял adaptive clocking на фиксированный, не помогло.
    Спуститься к концу Подняться к началу
    Персональная информация
    Форум » starterkit.ru » FAQ