Перейти к содержанию
    

система с Microblaze: как-то можно из SDK прогрузить большой объём данных в память, подключенную к процу?

Здравствуйте. Есть отладка SP605, система с микроблэйзом. На плате есть параллельная флешка 32М, которая к нему подцеплена. Нужно эту флешку изначально прогрузить большим объёмом данных (коэффициенты условно говоря. Один раз залил - больше не трогаешь всю жизнь). Как это лучше сделать?

Можно ли как-то имитировать из программы микроблэйза чтение из файла (ну типа воспользоваться функциями fopen() и им подобными), в то время как файл находится у меня на компе, к которому отладка подключена через JTAG и на котором крутится SDK?

Видится ещё вариант передавать данные по имеющемуся на борту ком-порту, но это во-первых медленно (?), а во-вторых на боевой плате ком-порта может не быть, вариант с прогрузкой через жтаг был бы более универсален.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Допустим если остановиться на ком-порте, то чтобы передавать файлы нужен какой-то протокол. Помню во времена пищащих модемов для телефонных линий был протокол zmodem. Что-то подобное есть готовое для microblaze? Чтобы самому не изобретать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так и грузите через JTAG. Только подходящее ядро в XPS нужно подцепить. А в SDK - Xilinx Tools -> Program Flash.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Можно попробовать. Правда я уже начал подумывать заюзать CompactFlash (вот тема соседняя), на неё записать файл с компа через кардридер. А в программе микроблэйза надо будет вычитать из файла.

 

А в предложенном Вами варианте о каком подходящем ядре в XPS идёт речь? Я поставил предлагаемое стандартное ядро для этой отладочной платы для работы с параллельным флешем. Но флеш то параллельный, а жтаг последовательный, как это грузить из компа - так разве можно? Может тогда вместо параллельной флеши таким же макаром через жтаг грузить CompactFlash? Так получится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Загрузите в область данных флеши и читайте оттуда - кто мешает - если тем более не надо менять их

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ИМХО, для начала стоит определиться, какой функционал нужен. :biggrin:

Если это какой-то отладочный стенд. И параметры туда пишутся один раз на этапе калибровке, то параллельная флэш и заливка через JTAG образа стандартными средствами от XILINX.

Если же иногда надо менять, да ещё и обычному пользователю, то карточка с файловой системой всяко удобнее.

А если надо удалять удалённо, то тут протокол обмена надо поднимать + контроль успешности записи, незатираемый golden image и всё такое.

Все три варианта имеют право на жизнь, но решаются совершенно разным способом. :smile3046:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ИМХО, для начала стоит определиться, какой функционал нужен. :biggrin:

Если это какой-то отладочный стенд. И параметры туда пишутся один раз на этапе калибровке, то параллельная флэш и заливка через JTAG образа стандартными средствами от XILINX.

Я сначала не знал, что параллельную флешь можно через жтаг стандартными средствами прошить. Оказалось это просто хитро называется BPI Flash, а я её искал как parallel flash. Теперь нашёл. Значит проблема отпадает.

 

Если же иногда надо менять, да ещё и обычному пользователю, то карточка с файловой системой всяко удобнее.

А если надо удалять удалённо, то тут протокол обмена надо поднимать + контроль успешности записи, незатираемый golden image и всё такое.

Да, в соседней ветке я уже отписался, что разобрался, как работать с карточкой. Так что теперь проблем нет, буду работать с карточкой лучше.

 

 

Загрузите в область данных флеши и читайте оттуда - кто мешает - если тем более не надо менять их
Будьте добры пожалуйста поподробнее, что значит "загрузить в область данных флеши"? В чью область данных? Микроблэйза? Короче непонятно... Предупреждаю, что новичок в этом, так что вопросы могут быть тривиальными ))

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот на картинке нарисовал где это поставить потом только файл добавить надо будет - вроде для bpi flash нужно байты свапить

и потом читайте их на здоровье микроблейзом (только надо добавить флеш контроллер)

post-877-1414587817_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Решил для себя проблему прогрузки больших данных так:

 

post-13271-1418810108_thumb.png

 

Я в начале спрашивал про flash, но в конечном счёте данные мне нужны были в DDR. Таким действием я напрямую в DDR и кидаю данные перед каждым стартом программы. Удобно. Знал бы сразу... а то уже реализовал чтение с CompactFlash (см. ссылку на тему выше), времени кучу потратил, пока боролся с её багами...

Скорость прогрузки примерно та же. Достоинство - грузит с первого раза (с флэшки почему-то часто ошибки чтения были, приходилось перечитывать), не потребляет программное место и не требует места в памяти данных под кэш.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И вот тут ответ, как настроить, если таймаут загрузки истекает раньше, чем ваши данные успели прогрузиться:

http://forums.xilinx.com/t5/Embedded-Proce...ht/false#M13864

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...