Jump to content

    
Sign in to follow this  
Krys

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

Recommended Posts

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

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

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


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

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

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

 

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

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

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

 

 

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

 

Share this post


Link to post
Share on other sites

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

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

post-877-1414587817_thumb.jpg

Share this post


Link to post
Share on other sites

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

 

post-13271-1418810108_thumb.png

 

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this