Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Старый форум » SK-MAT91SAM9XE512
Загрузка прошивки
voyt (Guest)
Добавлено 30.11.1999 00:00 Редактировалось 21.01.2009 19:30
0
Сообщение: 1
voyt (Guest)

Topic opened
Спуститься к концу Подняться к началу
voyt (Guest)
Добавлено 20.06.2008 16:18 Редактировалось 20.06.2008 16:18 Сообщение: 2
voyt (Guest)

Как я понял алгоритм:
1) Скопировать содержимое архива AT91SAM9260-SK в каталог "УСТАНОВЛЕННЫЙ_AT91-ISP v1.11/SAM-BA v2.7/lib"
2) Добавить строку в файл "SAM-BA v2.7/lib/boards.tcl":
"AT91SAM9260-SK" "AT91SAM9260-SK/AT91SAM9260-SK.tcl"
3) J6 отключаем, подключам usb кабель
4) Вкл питание
5) Заускаем SAM-BA.exe
6) Выбираем
connection: /usb/ARM0
board: AT91SAM9260-SK
Жмем Connect
7) После того как появится окно вкл J6 ( подсоединяем DataFlash )
8) Выбираем подкладку "DataFlash AT45DB/DCB"
9) В поле Scripts выбираем "Enable Dataflash on CS0", жмем Execute
После выполнения скрипта можем работать с Dataflash.

Теперь вопросы.
1) Стоит задача считать прошивку из DataFlash ( хочу забэкапить "заводскую" прошивку ).
Ставлю начальный адрес 0x0, Size:0x400000. Программа зависает.
Address - это адрес относительно Dataflash или адрес относительно микроконтроллера ( т.е. внутр памяти )?
2) Загрузка прошивки, я так понимаю, делается с помощью скрипта "Send Boot file". Можно в двух словах о последовательности действий? Может даже расскажите как прошить и boostrap и ядро одновременно.

Тут у меня возникла идея. Моя рабочая ОС - GNU/Linux. Решил, что, если буду дальше плотно и много работать с эти камнем, то попробую написать под эту ОС систему загрузки прошивок через USB. Благо, протокол открыт ( описан в даташите ). Алгоритм примерно такой как и у SAM-BA. А то как-то напряжно запускать vmware только для прошивки....

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно voyt 20.06.2008 г. в 16:23:35
Спуститься к концу Подняться к началу
voyt (Guest)
Добавлено 23.06.2008 13:04 Редактировалось 23.06.2008 13:04 Сообщение: 3
voyt (Guest)

Разобрался. Оказывается SAM-BA не зависает, а очень долго считывает. Задал Address: 0x0, Size(For recieve file):0x3fffff. Так он загружал больше 10 минут.
Интересно, это только у меня так долго или у всех так?
Прикинул: 4 Мб / 600 сек ~= 56 кбит/с - может это из-за того что UART поверх USB работает на такой скорости?
В общем напряжно программировать 4 Мб 10 мин...

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно voyt 23.06.2008 г. в 13:09:42
Спуститься к концу Подняться к началу
starterkit (Guest)
Добавлено 23.06.2008 13:07 Редактировалось 23.06.2008 13:07 Сообщение: 4
starterkit (Guest)

Сори за задержку, вечером прокомментирую.
Спуститься к концу Подняться к началу
voyt (Guest)
Добавлено 23.06.2008 16:02 Редактировалось 23.06.2008 16:02 Сообщение: 5
voyt (Guest)

Вроде бы разобрался с распределением базовых программ в DataFlash:
0x00000 - 0x00E18 - Bootstrap
0x08000 - 0x1C3D4 - u-boot
Адресное поле я вычислил по размерам бинарников. Даже для проверки считал из DataFlah'a по эти адресам данные и проверил в hex-редакторе на совпадение с откомпилированными бинарниками - почти 100% совпадение ( пару байт в некоторых местах не совпадает - то ли компилятор разных версий, то ли считал с ошибками).
Хотя в конфиге bootstrap'а размер, загружаемого u-boot'a, указан - 0x30000, что будет поболее чем 0x1C3D4 - 0x08000 = 0x143D4. Но я так понял - это про запас, если u-boot увеличится или для выравнивания.
В конфиге Bootstrap'a определно, что u-boot загружается в sdram под адресу 0x21D00000. Вот это не совсем понятно. Получается, что SDRAMC ( или MATRIX или схема так спаяна - еще не разобрался, кто за это отвечает ) сконфигурирован так, чтобы адресное пространство SDRAM ложилось на подпространство 0x21D00000 - (0x21D00000+32 MB)? Тогда почему так сделано? Почему не использовалось 0x20000000 - (0x20000000 + 32 MB) как на SAM9260-EK? Неудобно получается - придется переделывать скрипты линкера для примеров атмела...
Да и еще не понял, где лежат ядро и рутфс - начал ковырять исходники u-boot'а, пока еще не разобрался... Но это пока не важно, потому что планирую запустить примера атмела без u-boot'a, т.е. bootstrap -> пример

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно voyt 23.06.2008 г. в 16:07:06
Спуститься к концу Подняться к началу
voyt (Guest)
Добавлено 23.06.2008 16:42 Редактировалось 23.06.2008 16:42 Сообщение: 6
voyt (Guest)

Да, еще идея - выложить в раздел файлы - оригинальную прошивку ( я уже себе сделал резервную копию) и другие послезные файлы ( исходники ). Также неплохо было бы оформить изменения исходников и добавление новых драйверов ( u-boot, bootstrap и т.п. ) в виде патчей - удобно смотреть, что изменено и легче портировать на другие версии.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно voyt 23.06.2008 г. в 16:43:18
Спуститься к концу Подняться к началу
starterkit (Guest)
Добавлено 23.06.2008 18:09 Редактировалось 23.06.2008 18:09 Сообщение: 7
starterkit (Guest)

Итак, по порядку:
1) SAM-BA может не только через USB работать, так же и через COM-порт (для этого и идет в комплекте кабель, при этом джампера J7,J8 нужно перевести в положение 2-3), а так же через JTAG (J-Link, JetLink5, MT-Link) при этом не нужно будет джампер J6 перед перезагрузкой разрывать.
2) Вообще, через САМБУ не обязательно образы ядра и корневой ФС заливать, как Вы верно заметили это получится ОЧЕНЬ долго. Достаточно загрузить u-boot, далее через него можно залить DataFlash через разные интерфейсы: Ethernet - TFTP (сервер 192.168.0.2 запускается при старте виртуальной машины) обновить образы можно командой run tftp_update, так же через UART командой loadb XXXXXXXX передать через терминалку по kermit протоколу нужный образ а потом скопировать его в DataFlash. В принципе, еще USB карточка должна подключаться, у меня с "наскоку" не вышло, упорствовать не стал.
3)Скрипт САМБы "Send Boot file" сам сразу заливает загрузчик по адресу 0. Перед записью, сектора стирать не нужно, это происходит автоматом.
4)Стартовый адрес u-boot 0x21D00000 сделан таким чтоб он не пересекался с ядром (0х20000000) и корневой ФС (0х21100000).
5)Исходники ядра лежал /home/user/src/linux-2.6.24 скрипты для конфига и сборки make_menuconfig и make_kernel, последний после сборки сжимает и подготавливает ядро ("приклеивает лайбу" для u-boot) после копирует его в папку TFTP сервера.
6) Коренвая ФС создается в "ручную" (без builtrootfs), лежит в /home/user/src/rootfs. Порядок манипуляций: а)запускаете скрипт mount_ramdisk добавляете/удаляете необходимое, б)запускаете скрипт umount_ramdisk. Утилиты для коревой ФС (busybox ...) лежат /home/user/utils

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно starterkit 23.06.2008 г. в 18:10:24
Спуститься к концу Подняться к началу
starterkit (Guest)
Добавлено 23.06.2008 20:06 Редактировалось 23.06.2008 20:06 Сообщение: 8
starterkit (Guest)

Сейчас заметил, при старте виртуальной машины не поднимается интерфейс eth0, от чего все сетевые возможности отключаются (в частности TFTP сервер). Для включения, в терминале введите команду ifconfig eth0 192.168.0.2 up.
Спуститься к концу Подняться к началу
voyt (Guest)
Добавлено 25.06.2008 11:02 Редактировалось 25.06.2008 11:02 Сообщение: 9
voyt (Guest)

Спасибо большое за информацию. Буду разбираться...
Пока у меня стоит задача запустить stand-alone прогу, а с линуксом буду позже разбираться...
Кстати, насчет виртуальной машины. Чтобы заработал "Autofit Guest" нужно установить VMWare Tools: В меню "VM" -> "Install VMWare Tools.." Далее в виртуальной машине в консоли:
Код

$ su
# mount /dev/hdc /media/cdrecorder/
# cd /media/cdrecorder/
# rpm -Uhv VMwareTools-6.0.3-80004.i386.rpm
# vmware-config-tools.pl

Далее жать всегда ентер. Потом перезагрузить машину.
Нужно также поставить галку в меню VMWare: "View" -> "Autofit Guest".
Теперь размер экрана будет подстраиваться под размер окна VMWare, а не 640x480!

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно voyt 25.06.2008 г. в 11:05:32
Спуститься к концу Подняться к началу
starterkit (Guest)
Добавлено 25.06.2008 11:24 Редактировалось 25.06.2008 11:24 Сообщение: 10
starterkit (Guest)

Спасибо за участие!
Я всегда в консолях работаю, в Х-ы очень редко переключаюсь, для активации нужно нажать Alt+Ctrl+F(1-5).
После входа запускаю mc.
Спуститься к концу Подняться к началу
Форум » starterkit.ru » Старый форум » SK-MAT91SAM9XE512