|
2 страниц
1 2 >
|
 |
Ответов
(1 - 19)
|
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
|
|
|
|
|
Apr 6 2006, 12:29
|
Участник

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

|
Цитата(3HaK @ Apr 6 2006, 13:56)  а существует ли вообще возможность закрузки программ через Com-port (RS232) который стоит на плате рядом с ethernet разьемом? И может быть еще ворианты загрузки? например ethernet потому что програматора нет есть только BF-533-STAMP Варианты аппаратной загрузки BF533: параллельная flash (на stamp в ней зашит ucLinux), последовательная flash на SPI, и по SPI с HOST контроллера (SPI slave mode). Загрузили свою программу в одном из этих режимов - остальной код грузите откуда хотите, хоть по RS232, хоть по Ethernet. Если у вас только STAMP советую сначала убедится что на нем запускается ucLinux и воспользоваться его загрузчиком UBoot. Как правило это подразумевает, что загруженная программа будет выполняться под ucLinux. Но это не обязательно. Никто не мешает вновь запущенному процессу не возвращать управление ядру, переопределить вектора прерывания, и записать на место ucLinux свой код (для начала только в ОЗУ, а не во flash), и передать этому коду управление. После сброса платы опять стартует ucLinux, так и отлаживаете свой код.
Сообщение отредактировал appsoft - Apr 6 2006, 12:31
|
|
|
|
|
Apr 7 2006, 13:24
|
Участник

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

|
Цитата(appsoft @ Apr 6 2006, 15:29)  ....Если у вас только STAMP советую сначала убедится что на нем запускается ucLinux и воспользоваться его загрузчиком UBoot. Как правило это подразумевает, что загруженная программа будет выполняться под ucLinux. Но это не обязательно. Никто не мешает вновь запущенному процессу не возвращать управление ядру, переопределить вектора прерывания, и записать на место ucLinux свой код (для начала только в ОЗУ, а не во flash), и передать этому коду управление. После сброса платы опять стартует ucLinux, так и отлаживаете свой код. ucLinux на STAMPе установлен и запускается...пока не могу поднять ethernet. Пожалуйста можно поподробнее про UBoot. Он должен быть установлен и запускаеться на самом BlackFine или на машине к которой подключен STAMP??? Нет ли каких либо документов или ссылок по Cygvin (он как то криво работает... не могу собрать ядро...вернее само ядро собираеться а файл Linux.dxe не создаеться) или лучше не мучиться и нормальный linux поставить??
|
|
|
|
|
Mar 13 2009, 02:15
|
Участник

Группа: Участник
Сообщений: 61
Регистрация: 2-02-08
Пользователь №: 34 687

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

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Цитата(3HaK @ Apr 7 2006, 15:24)  ucLinux на STAMPе установлен и запускается...пока не могу поднять ethernet. Пожалуйста можно поподробнее про UBoot. Он должен быть установлен и запускаеться на самом BlackFine или на машине к которой подключен STAMP??? Это загрузчик по типу GRUB или LILO но для встраиваемых систем (особенности архитектур, гибкость сборки и конфигурации). Набираете uboot в Googl'е и читаете. Цитата(3HaK @ Apr 7 2006, 15:24)  Нет ли каких либо документов или ссылок по Cygwin (он как то криво работает... не могу собрать ядро...вернее само ядро собираеться а файл Linux.dxe не создаеться) или лучше не мучиться и нормальный linux поставить?? ??? эээ...это Вы чем вообще его вообще собираете? И что пытаетесь получить? Почему *.dxe? Зайдите сюда, и скачайте компилер GCC blackFin для win32. Но я к сожалению им никогда не пользовался, ничего не подскажу. Но если там "все так же" - в makefile'е указывайте путь где он у Вас лежит и будет Вам счастье... P.S.: прошу прощения не посмотрел на дату поста
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|