Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: система с Microblaze: как-то можно из SDK прогрузить большой объём данных в память, подключенную к процу?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Krys
Здравствуйте. Есть отладка SP605, система с микроблэйзом. На плате есть параллельная флешка 32М, которая к нему подцеплена. Нужно эту флешку изначально прогрузить большим объёмом данных (коэффициенты условно говоря. Один раз залил - больше не трогаешь всю жизнь). Как это лучше сделать?
Можно ли как-то имитировать из программы микроблэйза чтение из файла (ну типа воспользоваться функциями fopen() и им подобными), в то время как файл находится у меня на компе, к которому отладка подключена через JTAG и на котором крутится SDK?
Видится ещё вариант передавать данные по имеющемуся на борту ком-порту, но это во-первых медленно (?), а во-вторых на боевой плате ком-порта может не быть, вариант с прогрузкой через жтаг был бы более универсален.
Krys
Допустим если остановиться на ком-порте, то чтобы передавать файлы нужен какой-то протокол. Помню во времена пищащих модемов для телефонных линий был протокол zmodem. Что-то подобное есть готовое для microblaze? Чтобы самому не изобретать?
Corvus
Так и грузите через JTAG. Только подходящее ядро в XPS нужно подцепить. А в SDK - Xilinx Tools -> Program Flash.
Krys
Спасибо. Можно попробовать. Правда я уже начал подумывать заюзать CompactFlash (вот тема соседняя), на неё записать файл с компа через кардридер. А в программе микроблэйза надо будет вычитать из файла.

А в предложенном Вами варианте о каком подходящем ядре в XPS идёт речь? Я поставил предлагаемое стандартное ядро для этой отладочной платы для работы с параллельным флешем. Но флеш то параллельный, а жтаг последовательный, как это грузить из компа - так разве можно? Может тогда вместо параллельной флеши таким же макаром через жтаг грузить CompactFlash? Так получится?
vitus_strom
Загрузите в область данных флеши и читайте оттуда - кто мешает - если тем более не надо менять их
Corvus
ИМХО, для начала стоит определиться, какой функционал нужен. biggrin.gif
Если это какой-то отладочный стенд. И параметры туда пишутся один раз на этапе калибровке, то параллельная флэш и заливка через JTAG образа стандартными средствами от XILINX.
Если же иногда надо менять, да ещё и обычному пользователю, то карточка с файловой системой всяко удобнее.
А если надо удалять удалённо, то тут протокол обмена надо поднимать + контроль успешности записи, незатираемый golden image и всё такое.
Все три варианта имеют право на жизнь, но решаются совершенно разным способом. smile3046.gif
Krys
Цитата(Corvus @ Oct 28 2014, 22:19) *
ИМХО, для начала стоит определиться, какой функционал нужен. :biggrin:
Если это какой-то отладочный стенд. И параметры туда пишутся один раз на этапе калибровке, то параллельная флэш и заливка через JTAG образа стандартными средствами от XILINX.
Я сначала не знал, что параллельную флешь можно через жтаг стандартными средствами прошить. Оказалось это просто хитро называется BPI Flash, а я её искал как parallel flash. Теперь нашёл. Значит проблема отпадает.

Цитата(Corvus @ Oct 28 2014, 22:19) *
Если же иногда надо менять, да ещё и обычному пользователю, то карточка с файловой системой всяко удобнее.
А если надо удалять удалённо, то тут протокол обмена надо поднимать + контроль успешности записи, незатираемый golden image и всё такое.
Да, в соседней ветке я уже отписался, что разобрался, как работать с карточкой. Так что теперь проблем нет, буду работать с карточкой лучше.


Цитата(vitus_strom @ Oct 28 2014, 17:22) *
Загрузите в область данных флеши и читайте оттуда - кто мешает - если тем более не надо менять их
Будьте добры пожалуйста поподробнее, что значит "загрузить в область данных флеши"? В чью область данных? Микроблэйза? Короче непонятно... Предупреждаю, что новичок в этом, так что вопросы могут быть тривиальными ))
vitus_strom
Вот на картинке нарисовал где это поставить потом только файл добавить надо будет - вроде для bpi flash нужно байты свапить
и потом читайте их на здоровье микроблейзом (только надо добавить флеш контроллер)
Krys
vitus_strom, спасибо, полезная инфа.
Krys
Решил для себя проблему прогрузки больших данных так:

Нажмите для просмотра прикрепленного файла

Я в начале спрашивал про flash, но в конечном счёте данные мне нужны были в DDR. Таким действием я напрямую в DDR и кидаю данные перед каждым стартом программы. Удобно. Знал бы сразу... а то уже реализовал чтение с CompactFlash (см. ссылку на тему выше), времени кучу потратил, пока боролся с её багами...
Скорость прогрузки примерно та же. Достоинство - грузит с первого раза (с флэшки почему-то часто ошибки чтения были, приходилось перечитывать), не потребляет программное место и не требует места в памяти данных под кэш.
Krys
И вот тут ответ, как настроить, если таймаут загрузки истекает раньше, чем ваши данные успели прогрузиться:
http://forums.xilinx.com/t5/Embedded-Proce...ht/false#M13864
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.