|
BF-533 STAMP |
|
|
|
Apr 4 2006, 12:09
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 7-02-06
Пользователь №: 14 076

|
Кто нибудь со STAMP ом работал?? Прошивать нужно через JTAG или можно через COM. При попытке прошить в VisualDSP выдает: Loading: "F:\ADSP-BF533-STAMP\kernel\images\linux.dxe"... No ELF section .processor found; assuming ADSP-BF533. Load complete.
|
|
|
|
|
Apr 4 2006, 13:05
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 7-02-06
Пользователь №: 14 076

|
Цитата(jojo @ Apr 4 2006, 14:26)  Свои программы прошиваю через JTAG (EMU-AD) через plugin VDSP и драйвер соотв. ПЗУ. а схема есть??
|
|
|
|
|
Apr 4 2006, 14:13
|
Знающий
   
Группа: Свой
Сообщений: 574
Регистрация: 9-10-04
Из: FPGA-city
Пользователь №: 827

|
Схемы нет, это коммерческий эмулятор. Где-то пробегала схема эмулятора от отладочной платы, кажется, EZKit для 21160 и VID/PID константы к ней. Через нее тоже можно шить ПЗУ Blackfina.
Само ПЗУ, то, которое в BGA - можно шить через uboot, прошитый на фабрике. Сложнее будет, если этот uboot затереть. Тогда, наверное, надо из сериального ПЗУ загрузиться (его нет на плате и я не смотрел, допускает ли схема такую погрузку). А дальше все понятно.
|
|
|
|
|
Apr 5 2006, 07:08
|
Участник

Группа: Свой
Сообщений: 22
Регистрация: 9-12-04
Пользователь №: 1 425

|
STAMP поставляется с прошитой ucLinux. Если прошивка присутствует, то подключаем COM порт к внешней Linux машине запускаем терминал, включаем плату и видим в терминале приветствие и командную строку ucLinux. С помощью утилиты UBoot грузим свой проект в ОЗУ и выполняем. Если появляется желание прошить свой проект во flash, грузим проект программатор (он есть в примерах) и даем ему команду шить flash. ucLinux при этом будет затерт и о следующих прошивках надо позаботится самому. Если же ucLinux уже стерт то загрузить программатор в ОЗУ можно только через JTAG или внешнюю последовательную flash. Есть еще вариант загрузки в SPI slave mode, я делал для этого переходник с LPT порта (см. режимы загрузки в AD-шном app note EE240).
|
|
|
|
|
Apr 5 2006, 08:43
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 7-02-06
Пользователь №: 14 076

|
Вчера весь день продолбался...оказалось шнурок комовский не рабочий Подскажите с чего лучше начать освоение
|
|
|
|
|
Apr 5 2006, 08:53
|
Участник

Группа: Свой
Сообщений: 22
Регистрация: 9-12-04
Пользователь №: 1 425

|
Драйвер для 533 EZ Lite лежит в "VDSP4\Blackfin\Flash Programmer Drivers\ADSP-BF533 EZ-kit Lite". На EZ Lite применены STM-овские PSD = flash+FPGA, а на STAMP стоит тоже STM-овская flash 4МВ. По сути - этот драйвер обычная программа для BF, которая сначала загружается по JTAG, затем запускается и получает по JTAG команды и буфера с данными для записи, синхронизируясь с верхним процессом с помощью макроса-точки останова.
|
|
|
|
|
Apr 5 2006, 09:28
|
Участник

Группа: Свой
Сообщений: 22
Регистрация: 9-12-04
Пользователь №: 1 425

|
Система команд у PSD4256 на EZ Lite такаяже, как у M29W320DB на STAMP. Для доступа к flash на STAMP PF0 и PF1 должны быть в 0, они туда притянуты резисторами R22, R23 (STAMP v1.0), так что драйвер должен подойти без переделки. Но чтобы им воспользоваться в STAMP надо иметь эмулятор. Если эмулятора нет и вы не любитель Linux проще работать с EZ Lite...
|
|
|
|
|
Apr 5 2006, 09:58
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(appsoft @ Apr 5 2006, 15:53)  Драйвер для 533 EZ Lite лежит в "VDSP4\Blackfin\Flash Programmer Drivers\ADSP-BF533 EZ-kit Lite". На EZ Lite применены STM-овские PSD = flash+FPGA, а на STAMP стоит тоже STM-овская flash 4МВ. По сути - этот драйвер обычная программа для BF, которая сначала загружается по JTAG, затем запускается и получает по JTAG команды и буфера с данными для записи, синхронизируясь с верхним процессом с помощью макроса-точки останова. Про это все в курсе. Вопрос в том, как написать свой драйвер для более другой ПЗУ, нежели та, которая стоит в китах. Для этого должны быть где-то документированы требования к драйверу - типа, какие функции он должен иметь, как взаимодействовать и т.д. В общем, проблему программирования флеши я решил, но не с помощью встроенного плагина, а более другим способом. Просто стало интересно, неужели что-то пропустил и не увидел спецификацию драйвера. Ну, и в любом случае интересно, как у них там организовано это дело (чтобы со своим вариантом сравнить - должно быть в принципе так же).
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 5 2006, 14:48
|
Участник

Группа: Свой
Сообщений: 22
Регистрация: 9-12-04
Пользователь №: 1 425

|
Цитата(dxp @ Apr 5 2006, 13:58)  Цитата(appsoft @ Apr 5 2006, 15:53)  Драйвер для 533 EZ Lite лежит в "VDSP4\Blackfin\Flash Programmer Drivers\ADSP-BF533 EZ-kit Lite". На EZ Lite применены STM-овские PSD = flash+FPGA, а на STAMP стоит тоже STM-овская flash 4МВ. По сути - этот драйвер обычная программа для BF, которая сначала загружается по JTAG, затем запускается и получает по JTAG команды и буфера с данными для записи, синхронизируясь с верхним процессом с помощью макроса-точки останова.
Про это все в курсе. Вопрос в том, как написать свой драйвер для более другой ПЗУ, нежели та, которая стоит в китах. Для этого должны быть где-то документированы требования к драйверу - типа, какие функции он должен иметь, как взаимодействовать и т.д. В общем, проблему программирования флеши я решил, но не с помощью встроенного плагина, а более другим способом. Просто стало интересно, неужели что-то пропустил и не увидел спецификацию драйвера. Ну, и в любом случае интересно, как у них там организовано это дело (чтобы со своим вариантом сравнить - должно быть в принципе так же). Если посмотреть на исходник драйвера BF533EzFlash.c, лежащий в указаном выше каталоге, то видны функции: WriteFlash, ReadFlash, PollToggleBit, EraseFlash. Начало EraseFlash выглядит так: ERROR_CODE EraseFlash() { ERROR_CODE ErrorCode = NO_ERR; // tells us if there was an error erasing flash // *****Flash A***** // erase contents in Main Flash Array WriteFlash( 0x0AAA, 0xaa ); WriteFlash( 0x0554, 0x55 ); WriteFlash( 0x0AAA, 0x80 ); WriteFlash( 0x0AAA, 0xaa ); WriteFlash( 0x0554, 0x55 ); WriteFlash( 0x0AAA, 0x10 ); // poll until the command has completed ErrorCode = PollToggleBit(0x0000); // only erase if we didn't fail the previous erase if( ErrorCode == NO_ERR ) { // erase contents in Boot Flash Array WriteFlash( 0x200AAA, 0xaa ); WriteFlash( 0x200554, 0x55 ); WriteFlash( 0x200AAA, 0x80 ); WriteFlash( 0x200AAA, 0xaa ); WriteFlash( 0x200554, 0x55 ); WriteFlash( 0x200AAA, 0x10 ); // poll until the command has completed ErrorCode = PollToggleBit(0x200000); } Исходя из этого, драйвер можно адаптировать не вникая в его структуру и интерфейс. Меняем адреса/значения перекомпилируем драйвер и вперед. Максимальные изменения могут потребоваться если flash пишется блоком, например как AT29xxxx. Тогда придется заглянуть в функцию уровнем выше: WriteData, и адаптировать ее.
|
|
|
|
|
Apr 6 2006, 05:03
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(appsoft @ Apr 5 2006, 21:48)  Если посмотреть на исходник драйвера BF533EzFlash.c, лежащий в указаном выше каталоге, то видны функции: WriteFlash, ReadFlash, PollToggleBit, EraseFlash. Начало EraseFlash выглядит так:
ERROR_CODE EraseFlash() { ERROR_CODE ErrorCode = NO_ERR; // tells us if there was an error erasing flash
WriteFlash( 0x200AAA, 0x10 ); ... // poll until the command has completed ErrorCode = PollToggleBit(0x200000); }
Исходя из этого, драйвер можно адаптировать не вникая в его структуру и интерфейс. Меняем адреса/значения перекомпилируем драйвер и вперед. Максимальные изменения могут потребоваться если flash пишется блоком, например как AT29xxxx. Тогда придется заглянуть в функцию уровнем выше: WriteData, и адаптировать ее. Понятно, спасибо. Т.е. все-таки не документировано, надо по аналогии делать. Функции функциями, а взаимодействие надо, имхо, все же четко представлять. Имхо, более правильно свой плагин написать или внешний клиент (как я и сделал).
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 6 2006, 09:56
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 7-02-06
Пользователь №: 14 076

|
Цитата(appsoft @ Apr 5 2006, 10:08)  ... Есть еще вариант загрузки в SPI slave mode, я делал для этого переходник с LPT порта (см. режимы загрузки в AD-шном app note EE240). а существует ли вообще возможность закрузки программ через Com-port (RS232) который стоит на плате рядом с ethernet разьемом? И может быть еще ворианты загрузки? например ethernet потому что програматора нет есть только BF-533-STAMP
Сообщение отредактировал 3HaK - Apr 6 2006, 10:02
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|